移位操作为 二进制的移位!!!
首先需要转换为 二进制,再进行移位
ADC
加法进位DATA SEGMENT X DD 6A6A6A6AH DATA ENDS CODE SEGMENT 'CODE' ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX ;---- MOV AX , WORD PTR X MOV BX , WORD PTR X + 2 SHL AX , 1 RCL BX , 1 ADC AX , 0 MOV WORD PTR X , AX MOV WORD PTR X + 2 , BX MOV AX , WORD PTR X MOV BX , WORD PTR X + 2 ;--- MOV AH , 4CH INT 21H CODE ENDS END START
数据段代码
DATA SEGMENT X DD 6A6A6A6AH DATA ENDS
低位
和 高位
MOV AX , WORD PTR X MOV BX , WORD PTR X + 2
字节(Byte) 有8位
字(Word) 由 两个字节(byte)组成(16位)
双字(DoubleWord) 由 两个字(word) 组成
(32位)
SHL AX , 1
RCL BX , 1
在上一步,我已经完成了低位的左移,CF中已经有 低位的最高位的值了
此时我进行循环左移
ADC AX , 0
MOV WORD PTR X , AX MOV WORD PTR X + 2 , BX
MOV AX , WORD PTR X MOV BX , WORD PTR X + 2
6A6A6A6A
对应二进制左移
一位后,结果就是D4D4D4D4