data segment
dat db 6ah
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov dl,dat
mov al,dl
mov cl,4
shr dl,cl
add dl,30h
mov ah,02h
int 21h
mov dl,al
and dl,0fh
add dl,37h
int 21h
mov ah,4ch
int 21h
code ends
end start
把字节存储单元上DAT中的两位十六进制数据6AH,显示到屏幕上。其中画线部分用AL为什么出错,换成Bl就可以,书本上是AL,但是运行出来显示的 结果不是6A,而是6=,
。图片是我用DUBUG调试的,其中为什么AX=076A变成AX=0774?