emu8086加减乘除计算器
时间: 2023-12-30 16:24:36 浏览: 40
以下是使用emu8086编写的加减乘除计算器的示例代码:
```assembly
.model small
.stack 100h
.data
num1 db ?
num2 db ?
result db ?
operator db ?
message db 0ah, "Enter the first number: $"
message2 db 0ah, "Enter the second number: $"
message3 db 0ah, "Enter the operator (+, -, *, /): $"
message4 db 0ah, "Result: $"
.code
main proc
mov ax, @data
mov ds, ax
; 输入第一个数字
lea dx, message
mov ah, 09h
int 21h
mov ah, 01h
int 21h
sub al, 30h
mov num1, al
; 输入第二个数字
lea dx, message2
mov ah, 09h
int 21h
mov ah, 01h
int 21h
sub al, 30h
mov num2, al
; 输入运算符
lea dx, message3
mov ah, 09h
int 21h
mov ah, 01h
int 21h
mov operator, al
; 计算结果
cmp operator, '+'
je add_numbers
cmp operator, '-'
je subtract_numbers
cmp operator, '*'
je multiply_numbers
cmp operator, '/'
je divide_numbers
; 输出结果
lea dx, message4
mov ah, 09h
int 21h
mov al, result
add al, 30h
mov dl, al
mov ah, 02h
int 21h
jmp exit_program
add_numbers:
mov al, num1
add al, num2
mov result, al
jmp output_result
subtract_numbers:
mov al, num1
sub al, num2
mov result, al
jmp output_result
multiply_numbers:
mov al, num1
mul num2
mov result, al
jmp output_result
divide_numbers:
mov al, num1
xor ah, ah
div num2
mov result, al
jmp output_result
output_result:
lea dx, message4
mov ah, 09h
int 21h
mov al, result
add al, 30h
mov dl, al
mov ah, 02h
int 21h
exit_program:
mov ah, 4ch
int 21h
main endp
end main
```
这段代码实现了一个简单的加减乘除计算器。它会要求用户输入两个数字和一个运算符,然后根据运算符进行相应的计算,并输出结果。