SHL移位规则0CFE左移:高位←一低位SAL右移:高位→低位CFEF0移出位进入CF标志SHRCF0对移位指令,移出CF标志后丢失SARCF5逻辑左移、算术左移的结果相同逻辑右移,新移入的信息以0填入算术右移,保持最高有效位原来的值(符号为不变)
⚫ 移位规则 ▲ 左移: 高位 ← 低位 右移: 高位 → 低位 ▲ 移出位进入CF标志 ▲ 对移位指令,移出CF标志后丢失 ▲ 逻辑左移、算术左移的结果相同 ▲ 逻辑右移,新移入的信息以0填入 算术右移,保持最高有效位原来的值(符号为不变) CF 0 CF 0 SHL SAL 0 CF CF SHR SAR
例若(AL)=96H,CF=0执行SHLAL,10010110执行前:(AL)=96H,CF=0000001执行后:(AL)=2CH,CF=1例若(AL)=96H,CF=0,(CL)=2执行 SAR AL,CL0010执行前:(AL)=96H,CF=0执行后:CF(AL)=E5H ,CF=1
例 若(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[eLROL oprd,[eL-CFoprd,ROR.一一CF←RCL oprd,[aLCF-oprd,RCR
3. 循环移位指令 指令格式 执行操作 CF CF CF CF ROL oprd, 1 CL ROR oprd, 1 CL RCL oprd, 1 CL RCR oprd, 1 CL
ROLCFEROR-CFRCLDCFRCR移位规则1CF低位左移:高位←一右移:高位→低位移出位进入CF标志对循环移位指令,改变各位的位置,信息不丢失带进位循环移位,CF标志参加循环移位
⚫ 移位规则 ▲ 左移: 高位 ← 低位 右移: 高位 → 低位 ▲ 移出位进入CF标志 ▲ 对循环移位指令,改变各位的位置,信息不丢失 ▲ 带进位循环移位,CF标志参加循环移位 ROL CF CF CF CF ROR RCL RCR
例若(AL)= 96H,CF=0执行ROLAL,1CF=0,(AL)=96h执行前:CF-1, (AL)=2Dh执行后例若(AL)= 96H,CF=0,(CL)=2执行 RCR AL,CL0010CF=0,(AL)=96H执行前:CF=0,(AL)=4BH:0右移1位CF=1,(AL)=25H再右移1位:0
例 若(AL)= 96H, CF=0 执行 ROL AL, 1 执行前: 1 0 0 1 0 1 1 0 CF=0 , (AL)=96h 执行后: 0 0 1 0 1 1 0 1 CF=1, (AL)=2Dh 例 若(AL)= 96H, CF=0, (CL)=2 执行 RCR AL, CL 执行前: 1 0 0 1 0 1 1 0 CF=0 , (AL)=96H 右 移 1 位 :0 1 0 0 1 0 1 1 CF=0 , (AL)=4BH 再右移1位:0 0 1 0 0 1 0 1 CF=1 , (AL)=25H