注意事项:SHLAL, 1oprd可以是reg/memSHRAL, CL可进行字节或字操作ROLBX, 1RCRAL, CL源操作数为移位的次数为1可在指令中直接给出当移位次数大于1时,移位次数需由CL给出SHL BL, AL XRCR AX, 5目的操作数类型决定操作类型字节操作SAL BL,CL字操作ROL BX,CL
注意事项: SHL AL, 1 SHR AL, CL ROL BX, 1 RCR AL, CL ⚫源操作数为移位的次数 为1可在指令中直接给出 大于1时,移位次数需由CL给出 RCR AX,5 SHL BL, AL ⚫ 目的操作数类型决定操作类型 SAL BL,CL 字节操作 ROL BX,CL 字操作 当移位次数 ⚫ oprd可以是reg/mem ⚫ 可进行字节或字操作
SHL AL, 1CF F0ROL BX, 1CF对标志位的影响移位指令:①据结果设置CF、SF、ZF、PF,对AF无定义②OF只在移位次数为1时有效,其他无定义移位后,最高有效位发生变化,则OF=1,否则为0对循环移位指令:①据移位结果设置CF,对其他标志无影响②OF标志与移位指令同
SHL AL, 1 ROL BX, 1 ⚫ 对标志位的影响 ▲移位指令: ①据结果设置CF、SF、ZF、PF,对AF无定义 ②OF只在移位次数为1时有效,其他无定义 移位后,最高有效位发生变化,则OF=1,否则为0 ▲对循环移位指令: ①据移位结果设置CF,对其他标志无影响 ②OF标志与移位指令同 CF 0 CF
逻辑移位可用于无符号数乘除算术移位、、带符号数、、左移一次,相当于乘2右移一次,相当于除2例将AL中的带符号数乘10,若(AL)=XSALAL.1; (AL)=2XMOVBLAL; (BL)=2XSALAL,1; (AL)=4XSALAL1; (AL)=8XADD AL,BL; (AL)=(8X+2X)=10X
逻辑移位可用于无符号数乘除 算术移位 、 带符号数 、 左移一次,相当于乘2 右移一次,相当于除2 例 将AL中的带符号数乘10 , 若(AL)=X SAL AL ,1 ; (AL)=2X MOV BL,AL ; (BL)=2X SAL AL ,1 ; (AL)=4X SAL AL ,1 ; (AL)=8X ADD AL ,BL ; (AL)=(8X+2X)=10X
5.控制转移指令在8086/8088中,指令的地址固定由CS和IP两个寄存器决定。寄存器组DSAXAHALES地址加法器BXBHBISS地址总线ABCXCLCHCS指令1DHDIDXSI地指令2IPDI址译码器指令3数据总线DBBP数据暂存器SP指令41总线指令队列数据1控制总线CB运算器接口数据2控制数据3电路指令译码器PSW标志寄存器执行部件控制电路总线内存CPU
5.控制转移指令 在8086/8088中,指令的地址固定由CS和IP两个寄存器决定。 DS ES SS CS IP 数据暂存器 PSW标志 寄存器 执行部件控制电路 指令译码器 AX BX CX DX AH BH CH DH SI DI BP SP AL BL CL DL 寄存器组 指 令 队 列 总线 接口 控制 电路 运 算 器 地 址 加 法 器 、 指令1 指令2 指令3 指令4 、 数据1 数据2 数据3 、 地址总线AB 数据总线DB 控制总线CB 地 址 译 码 器 CPU 总线 内存
CS和IP两寄存器的内容决定了程序的流程CS:IPBB00指令101B1指令220改变CS和IP寄存器的值90指令3→就改变了程序执行的流程CS:IP指令n指令n+1指令n+3→
⚫ CS和IP两寄存器的内容决定了程序的流程 改变CS和IP寄存器的值, 就改变了程序执行的流程。 BB 00 01 B1 20 90 . . . . . . 指令1 指令2 指令3 指令n 指令n+1 指令n+3 CS:IP CS:IP