asslandat43b.dat

来自「这是一个包含多个语言的指令集」· DAT 代码 · 共 15 行

DAT
15
字号
 说明: 1. 本指令组只影响标志CF、OF.OF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=1.
 ----
       2. 由于是循环移位,所以对字节移位8次; 对字移位16次,就可恢复为原操作数.由于带CF的循环移位,可以将CF            的内容移入,所以可以利用它实现多字节的循环.

       3. 示例: 将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 + =
减小字号Ctrl + -
显示快捷键?