检测点14.2:编程,用加法和移位指令计算(ax) = (ax)x 10
- 提示:
(ax)x 10 = (ax) x 2 + (ax) x 8
assume cs:code
code segment
start: mov ax,0001H
mov bx,ax
mov dx,ax
shl bx,1
mov cl,3
shl dx,cl
mov ax,bx
add ax,dx
code ends
end start

检测点14.2.png
左移指令 shl
mov al,01001000B
shl al,1
执行后,
(al) = 1001000 0 B
CF = 0
二进制下, X左移一位,相当于 X = X*2
右移指令 shr
mov al,10000000 B
shl al,1
执行后,
(al) = 0 1000000B
CF = 0
二进制下, X右移一位,相当于 X = X÷2
移动多位
移动位数写入 CL
最后移出的一位写入 CF
