●移位规则 SHL ▲左移:高位←低位 CF+E +0 SAL 右移:高位→低位 CF+EL 0 ▲对移位指令,移出标志后丢失R ▲移出位进入CF标志 .CF SAR ▲逻辑左移、算术左移的结果相同 .CF ▲逻辑右移,新移入的信息以0填入 算术右移,保持最高有效位原来的值(符号为不变)
⚫ 移位规则 ▲ 左移: 高位 ← 低位 右移: 高位 → 低位 ▲ 移出位进入CF标志 ▲ 对移位指令,移出CF标志后丢失 ▲ 逻辑左移、算术左移的结果相同 ▲ 逻辑右移,新移入的信息以0填入 算术右移,保持最高有效位原来的值(符号为不变) CF 0 CF 0 SHL SAL 0 CF CF SHR SAR
例着(AL)=96H,CF=0 执行 SHL AL,1 执行前:(AL)=96HCF=0[10010110 执行后:(AL)=2CH,CF=1[00101100 例若(AL)=96H,CF=0,(CL)=2 执行 SAR AL,CL 执行前:(AL)=96CF=0[1001010 执行后:(AL)=ESH,CF=1口010个0cF
例 若(AL)=96H, CF=0 执行 SHL AL, 1 执行前:(AL)=96H ,CF=0 1 0 0 1 0 1 1 0 执行后:(AL)=2CH ,CF=1 0 0 1 0 1 1 0 0 执行前:(AL)=96H ,CF=0 1 0 0 1 0 1 1 0 执行后:(AL)=E5H ,CF=1 1 1 1 0 0 1 0 1 CF 例 若(AL)=96H, CF=0, (CL) =2 执行 SAR AL, CL
3.循环移位指令 指令格式 执行操作 CF ROL oprd,LCL 冖→CF ROR oprd,I CL CF←匚 RCL oprd, LCL RCR oprd,I CL CF
3. 循环移位指令 指令格式 执行操作 CF CF CF CF ROL oprd, 1 CL ROR oprd, 1 CL RCL oprd, 1 CL RCR oprd, 1 CL
ROL CF ROR →CF CF+ET RCL RCR ●移位规则 →CF ▲左移:高位←低位 右移:高位→低位 ▲移出位进入CF标志 ▲对循环移位指令,改变各位的位置,信息不丢失 ▲带进位循环移位,CF标志参加循环移位
⚫ 移位规则 ▲ 左移: 高位 ← 低位 右移: 高位 → 低位 ▲ 移出位进入CF标志 ▲ 对循环移位指令,改变各位的位置,信息不丢失 ▲ 带进位循环移位,CF标志参加循环移位 ROL CF CF CF CF ROR RCL RCR
例若(AL)=96H,CF=0 执行 ROL AL,1 执行前:r1 0(AL)=96H,CF=0 执行后:[o0|1011o (AL=2DH, CF=I 例若(AL)=96H,CF=0,(CL)=2 执行 RCR AL,CL 执行前:[100101 0(AL)=96HCF=0 执行后:[oo|10010A=2sHcF=1
例 若(AL)= 96H, CF=0 执行 ROL AL, 1 执行前: 1 0 0 1 0 1 1 0 (AL)=96H, CF=0 执行后: 0 0 1 0 1 0 1 1 (AL)=2DH, CF=1 例 若(AL)= 96H, CF=0, (CL)=2 执行 RCR AL, CL 执行前: 1 0 0 1 0 1 1 0 执行后: 0 0 1 0 0 1 0 1 (AL)=96H CF=0 (AL)=25H CF=1