怪问题???
下面的这个DOS汇编程序真让人费解,麻烦高手给看看问题出在哪了。
程序代码:
.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