注意事项: SHL AL. 1 ●oprd可以是reg/mem SHR AL. CL ROL BX. 1 可进行字节或字操作 RCR AL. CL ●源操作数为移位的次数 当移位次数为可在指令中直接给出 大于1时,移位次数需由CL给出 RCR AX, 5 X SHL BL. AL X ●目的操作数类型决定操作类型 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. 1 CF+EL +0 ROL BX. 1 CF+口 ●对标志位的影响 ▲移位指令: ①据结果设置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)=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
逻辑移位可用于无符号数乘除 算术移位 、、 带符号数 、、 左移一次,相当于乘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和卫两个寄存器决定。 寄存器组 ahA BH BL BX 地址总线AB CHI CL DH DL DX 地址加法器 指令1 地指令2 DI BP 数据总线DB 指令3 数据暂存器 址指令4 译 指 总线控制总线CB 数据1 运算器 接口 码 控制 数据2 列 电路 器数据3 指令译码器 PSW标志 寄存器 执行部件控制电路
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 地 址 译 码 器
●CS和IP两寄存器的内容决定了程序的流程 改变CS和寄存器的值, 就改变了程序执行的流程。 ●8086/8088中CS和IP的变化规则: 1) reset复位后,(CS)= FFFFH,(IP)=0 故8088从内存FFFF:000处取第一条指令执行, 第一条指令在内存的ROM区
⚫ CS和IP两寄存器的内容决定了程序的流程 ⚫ 8086/8088 中CS和IP的变化规则: 1) reset复位后,( CS ) = FFFFH,( IP ) = 0 故8088从内存FFFF:0000H处取第一条指令执行, 改变CS和IP寄存器的值, 就改变了程序执行的流程。 第一条指令在内存的ROM区