从键盘输入一个单个字符,显示该字符的ASCII码(十六进制),回车键退出循环,终止程序。
CODES SEGMENT
ASSUME CS:CODES
START:
MOV AH,01H
INT 21H
MOV bh,al ; 将输入的字符的ASCII码 放到BH
MOV cx,2 ; 设置两次循环
BR:
rol BX,1
rol BX,1 ; 采用循环左移 4次将ah中 高四位的值放到放到bl中
rol BX,1
rol BX,1
AND bl,0FH ; 用AND语句 实现bl中低四位为原值,高四位为0
CMP bl,00H ; 由于输入的是字符被存入的是ACSII码 只有字母和数字
JC SUN ; 判断是否是数字 是数字则跳转到NUM
CMP bl,09H
JBE num
CMP bl,0AH
JC SUN ; 字母中只能有ABCDEF所以除了ABCDEF外所有字母跳转到结束
CMP bl,0FH
jnbe SUN
ADD bl,37H ; 是字母就加上37H 就会转换为其字母对应的ACSII码
JMP output ; 例如 从A转换到41H
num:
ADD bl,30H
JMP output ; 是数字的话直接加上30H 转为其数字对应的ACSII码
output:
MOV dl,bl
MOV ah,02H
int 21H ; 输出
SUN:
loop BR
MOV ah,4ch
int 21H
CODES ENDS
END START


浙公网安备 33010602011771号