在emu8086中如何用键盘输入任意一个十进制数并保存在变量x中
时间: 2024-02-25 15:57:37 浏览: 52
在emu8086中,可以使用`int 21h`中断来接收键盘输入。以下是一个示例代码,演示如何接收一个十进制数并将其保存在变量x中:
```
.MODEL SMALL
.STACK 100H
.DATA
x DW ? ;定义一个字变量x,用于保存输入的数值
.CODE
MAIN PROC
MOV AX, @DATA ;初始化数据段寄存器
MOV DS, AX
;显示提示信息
MOV AH, 09H
LEA DX, msg
INT 21H
;接收键盘输入
MOV AH, 01H
INT 21H
;将字符转换为数字
SUB AL, '0'
MOV BL, AL
;循环接收输入,直到输入回车
LOOP_INPUT:
MOV AH, 01H
INT 21H
;如果输入为回车,则退出循环
CMP AL, 0DH
JE EXIT_INPUT
;将字符转换为数字并累加到x中
SUB AL, '0'
MOV CL, 10
MUL CL
ADD BL, AL
JMP LOOP_INPUT
EXIT_INPUT:
;将结果保存到x中
MOV x, BX
;显示输入的数值
MOV AH, 09H
LEA DX, output_msg
INT 21H
;结束程序
MOV AH, 4CH
INT 21H
msg DB '请输入一个十进制数(以回车结束):$'
output_msg DB '您输入的数值为:$'
MAIN ENDP
END MAIN
```
在这个示例代码中,我们首先使用`int 21h`中断来显示一个提示信息,然后使用`int 21h`中断接收键盘输入,并将输入的字符转换为数字。我们使用循环来接收多个字符,并将它们累加到变量x中,直到输入回车为止。最后,我们将x中保存的数值显示出来,然后结束程序。