📄 asslandat44.dat
字号:
循环移位指令
循环移位指令是指操作数首尾相连的移位操作。按进位标志CF是否参加循环移位,又可分为不带CF的循环移位和带CF的循环移位两类,每一 类都可进行左移或右移,循环移位的次数由COUNT操作数给出。
指令格式:ROL OPRD1,COUNT;不含进位标志位CF在循环中的左循环移位指令。
ROR OPRD1,COUNT;不含进位示志位CF在循环中的右循环移位指令。
RCL OPRD1,COUNT;带进位的左循环移位指令。
RCR OPRD1,COUNT;带进位的右循环移位指令
本指令组只影响标志CF、OF。OF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=1。由于是循环移位,所以对字 节移位8次;对字移位16次,就可恢复为原操作数。由于带CF的循环移位,可以将CF的内容移入,所以可以利用它实现多字节的循环。
例:将AL中的组合的两个BCD分解为两个未组合的BCD数,存于BH及BL寄存器中。程序为:
MOV AH,AL;保存AL内容至AH中
MOVCL,4;循环次数4送CL
SHR AL,CL;将AL右移4次,高4位移至低4位
MOV BH,AL;高位BCD送BH中
AND AH,0FH;得到低位BCD数
MOV BL,AH;低位BCD数送BL中
以上程序中的指令SHR AL,CL如改为SAR AL,CL,虽然最高4位可移入低4位,但最高位不为0,故应加入一条指令AND AL,0FH。否则,若最 高位不为0时,将得到错误结果。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -