将键盘输入的数字和大写字母的ASCII码转换为十六进制数,存放在TAB开始的位置,‘$’结束。 DATA SEGMENT ORG 2000H TAB DB 100 DUP(?) DATA EDNS 程序编写与程序调试、运行结果要求完整,数据正确。
时间: 2024-03-27 21:36:31 浏览: 52
好的,您的问题是如何将键盘输入的数字和大写字母的ASCII码转换为十六进制数并存放在TAB开始的位置,以‘$’结束。
以下是汇编语言的程序示例:
```
DATA SEGMENT
ORG 2000H
TAB DB 100 DUP(?)
DATA ENDS
MOV AH, 01h ; 从键盘输入一个字符
INT 21h ; 调用DOS中断
CMP AL, 0Dh ; 判断是否输入回车键
JE END ; 如果是,结束程序
CMP AL, '0' ; 判断是否是数字字符
JB INPUT ; 如果不是,跳转到输入下一字符
CMP AL, '9'
JA INPUT
SUB AL, 30h ; 转换数字字符为整型数字
JMP CONVERT
CMP AL, 'A' ; 判断是否是大写字母字符
JB INPUT ; 如果不是,跳转到输入下一字符
CMP AL, 'Z'
JA INPUT
SUB AL, 37h ; 转换大写字母字符为整型数字
CONVERT:
PUSH AX ; 保存原始数据
MOV BL, AL ; 复制原始数据
AND BL, 0Fh ; 取低四位
CMP BL, 0Ah ; 判断是否大于等于10
JB HEX ; 如果不是,跳转到转换为十六进制字符
ADD BL, 7h ; 如果是,转换为大写字母A-F
HEX:
MOV AL, BL ; 转换为十六进制字符
AND AL, 0Fh
CMP AL, 0Ah
JB END_CONVERT
ADD AL, 7h
END_CONVERT:
POP AX ; 恢复原始数据
MOV [TAB], AL ; 存储十六进制字符
INC TAB ; 指向下一个位置
CMP TAB, 100 ; 判断是否已经存满
JE END ; 如果是,结束程序
INPUT:
JMP DATA ; 输入下一字符
END:
MOV [TAB], '$' ; 存储结束标志
```
这个程序从键盘输入一个字符,然后判断是数字字符还是大写字母字符,如果是数字字符,则将其转换为整型数字;如果是大写字母字符,则将其转换为整型数字。接着,将整型数字转换为十六进制字符,并存储在TAB开始的位置,直到TAB存满或者输入回车键。最后,存储结束标志‘$’。
阅读全文