5.7 编写一个源程序,在键盘上按一个键,将其返回的ASCII码值显示出来,如果按下退格键(对应ASCII码是08H)则程序退出。请调用书中的HTOASC子程序。
时间: 2024-05-14 08:19:08 浏览: 68
下面是一个用汇编语言编写的程序,可以实现在键盘上按下一个键并显示其ASCII码值,如果按下退格键则程序退出。
```
.MODEL SMALL
.STACK 100H
.DATA
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
START:
;等待用户按下一个键
MOV AH, 00H
INT 16H
;如果按下的是退格键(ASCII码值为08H),则退出程序
CMP AL, 08H
JE EXIT
;转换ASCII码值为十六进制字符串并显示
PUSH AX
CALL HTOASC
MOV AH, 09H
INT 21H
POP AX
JMP START
EXIT:
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
```
以上程序中调用了书中提供的HTOASC子程序,可以将一个字节的值转换成两个十六进制字符表示的字符串。在显示时,使用了INT 21H中断调用的09H功能,可以显示字符串。程序在用户按下退格键时通过INT 21H中断调用的4CH功能退出运行。
相关问题
编写一个源程序,在键盘上按一个键,将其返回的ASCII码值显示出来,如果按下退格键(对应ASCII码是08H)则程序退出。请调用书中的HTOASC子程序。
以下是使用汇编语言编写的程序:
```
.model small
.stack 100h
.data
message db 'Press any key to get its ASCII code, press Backspace to exit.', '$'
.code
main proc
mov ax, @data
mov ds, ax
mov ah, 09h ; 显示提示信息
mov dx, offset message
int 21h
start:
mov ah, 00h ; 等待键盘输入
int 16h
cmp al, 08h ; 判断是否按下退格键
je exit
push ax ; 保存输入的键的ASCII码值
call HTOASC ; 转换成ASCII码并显示
pop ax ; 恢复输入的键的ASCII码值
jmp start ; 继续等待键盘输入
exit:
mov ah, 4ch ; 退出程序
int 21h
main endp
end main
```
程序流程如下:
1. 显示提示信息。
2. 进入循环,等待键盘输入。
3. 判断输入的键是否是退格键,如果是则退出程序。
4. 将输入的键的ASCII码值保存,并调用HTOASC子程序将其转换成ASCII码并显示。
5. 继续等待键盘输入。
需要注意的是,在使用HTOASC子程序时,需要将键的ASCII码值压入栈中,而在返回时也需要将其从栈中弹出。
编写一个汇编源程序,在键盘上按一个键,将其返回的ASCII码值显示出来,如果按下退格键(对应ASCII码是08H)则程序退出。请调用书中的HTOASC子程序。
以下是汇编源程序:
```
.MODEL SMALL
.STACK 100H
.DATA
MSG DB "Press a key: $"
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
MOV AH, 09H ;显示提示信息
MOV DX, OFFSET MSG
INT 21H
MOV AH, 00H ;读取键盘输入
INT 16H
CMP AL, 08H ;退格键
JE EXIT
PUSH AX ;保存输入字符的ASCII码值
MOV AH, 02H ;显示ASCII码值
MOV DL, AL
CALL HTOASC
POP AX ;恢复输入字符的ASCII码值
JMP MAIN ;继续循环等待输入
EXIT:
MOV AH, 4CH ;退出程序
INT 21H
MAIN ENDP
END MAIN
```
注:以上程序使用了书中提供的HTOASC子程序,需要将其放在同一源文件中。
相关推荐
![Asm](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)