如何用8086汇编语言实现程序,让用户随机输入两个一位数,然后计算它们的和,并将结果显示出来(无论和是一个还是两个数字位)?
时间: 2024-12-20 07:15:33 浏览: 18
要在8086汇编语言中实现这个简单的计算器程序,你需要使用指令集来接收用户输入,存储数据,进行加法运算,以及显示结果。以下是一个基本的示例代码片段:
```assembly
.model small
.stack 100h
.data
msg1 db '请输入第一个一位数:$'
msg2 db '请输入第二个一位数:$'
sum dw ?
result db 10 dup ('$')
.code
main proc
; 显示提示信息
mov ah, 9
lea dx, msg1
int 21h
mov ah, 1
int 21h
; 接收用户输入
mov ah, 1
mov dl, 1
int 21h
sub al, 30h ; 转换ASCII码为数值
mov bl, al
mov ah, 9
lea dx, msg2
int 21h
mov ah, 1
int 21h
mov ah, 1
int 21h
sub al, 30h ; 又一次接收并转换
add bl, al
; 加法运算
add ax, bx
mov sum, ax
; 检查和是否超过两位数
cmp ax, 10
ja display_result
; 和是一位数的情况
mov result, cl ; 存储低8位进制值
jmp end程序
display_result:
mov al, ah ; 存储高8位进制值到al
add dl, 30h ; 回转ASCII码
mov [result], dl
end程序:
; 显示结果
mov ah, 9
lea dx, result
int 21h
mov ah, 4ch
int 21h
main endp
end main
```
这段代码首先提示用户输入,然后读取字符并转换为整数,接着做加法,判断和的长度,最后显示结果。注意,这个程序假设用户输入的是有效的数字字符(0-9),并且没有错误处理。
阅读全文