![]() |
#2
netsolo2008-10-19 16:11
|
麻烦高手给看看问题出在哪了。

.model small
.stack 200h
.CODE
START:
;mov ax,@data
;mov ds,ax
mov bl,0ffh
mov al,bl
call displayBit
;暂停,任意键关闭
mov ah,1
int 21h
mov ah,4ch ;结束,可以修改al设置返回码
int 21h
displayBit proc ;要显示的8位二进制放在al中
.386
pusha
mov cx,8
display:
shl al,1 ;将al的最高位送进CF
;push ax ;当我不加push ax与pop ax时运行结果就不对,
mov dl,0 ;加了就对了,难道哪条指令改变了al?
adc dl,0
or dl,30h ;转化为ASCII码
mov ah,2
int 21h
;pop ax
loop display
popa
ret
displayBit endp
END START
.stack 200h
.CODE
START:
;mov ax,@data
;mov ds,ax
mov bl,0ffh
mov al,bl
call displayBit
;暂停,任意键关闭
mov ah,1
int 21h
mov ah,4ch ;结束,可以修改al设置返回码
int 21h
displayBit proc ;要显示的8位二进制放在al中
.386
pusha
mov cx,8
display:
shl al,1 ;将al的最高位送进CF
;push ax ;当我不加push ax与pop ax时运行结果就不对,
mov dl,0 ;加了就对了,难道哪条指令改变了al?
adc dl,0
or dl,30h ;转化为ASCII码
mov ah,2
int 21h
;pop ax
loop display
popa
ret
displayBit endp
END START