练习1:用二进制显示所按键的ASCII码

题目:

写一个程序,用二进制显示所按键的ASCII码, 直到按下英文的句点符号. 则退出。

提示:调用 21H 01 号子功能可输入1个字符。参考“80x86汇编语言程序设计教程.pdf 143页。

 

源码:

ASSUME CS:CODE
CODE SEGMENT
START:
MOV AH, 01H    ;调用01子功能,接收1个按键输入
INT 21H       ;所按键保存在AL中
CMP AL, '.'
JZ EXIT
MOV BL, AL    ;这里AL的值还未改变
;如果写在下面中断之后会变成DL的值
MOV AH, 02H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
CALL OUTPUT
JMP START
EXIT: MOV AH, 4CH
INT 21H

OUTPUT PROC
;在原版里要先保存AX,BX,CX到SS
;退出过程时再还原现场,这里省略了
;似乎也没什么问题
;因为每一次寄存器的值都要重新写的
MOV CX, 8
TIMES: SHL BL, 1
JC ONE
MOV DL, 30h       ;这里MOV DL, '0'也可
JMP OVR
ONE: MOV DL, 31h   ;同理这里MOV DL,'1'也可
OVR: MOV AH, 02H
INT 21H
LOOP TIMES
MOV DL, 'B'
INT 21H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
RET               ;过程中的返回语句,必须有
OUTPUT ENDP

CODE ENDS
END START

你可能感兴趣的:(汇编,语言,output,X86)