汇编语言 8086汇编 已知DATAX和DATAY单元各存放一个带符号字节数据,从键盘上接收加(+)、减(-)、乘(*)或除(/)符号,然后完成相应运算,把结果显示在屏幕上。
时间: 2023-12-03 11:46:52 浏览: 89
这里给出一个简单的8086汇编代码示例,可以实现上述功能:
```
DATA SEGMENT
DATAX DB ?
DATAY DB ?
OPERATOR DB ?
RESULT DW ?
DATA ENDS
CODE SEGMENT
START:
MOV AX, @DATA
MOV DS, AX
; 读取输入的数据
MOV AH, 1
INT 21H
SUB AL, '0' ; 将输入的字符转换成数字
MOV DATAX, AL
MOV AH, 1
INT 21H
SUB AL, '0'
MOV DATAY, AL
; 读取运算符
MOV AH, 1
INT 21H
MOV OPERATOR, AL
; 根据运算符进行相应的计算
CMP OPERATOR, '+'
JE ADDITION
CMP OPERATOR, '-'
JE SUBTRACTION
CMP OPERATOR, '*'
JE MULTIPLICATION
CMP OPERATOR, '/'
JE DIVISION
; 如果运算符不正确,则显示错误信息并退出程序
MOV AH, 9
LEA DX, ERROR_MSG
INT 21H
JMP END_PROGRAM
ADDITION:
MOV AH, 0
MOV AL, DATAX
ADD AL, DATAY
MOV RESULT, AX
JMP DISPLAY_RESULT
SUBTRACTION:
MOV AH, 0
MOV AL, DATAX
SUB AL, DATAY
MOV RESULT, AX
JMP DISPLAY_RESULT
MULTIPLICATION:
MOV AH, 0
MOV AL, DATAX
MUL DATAY
MOV RESULT, AX
JMP DISPLAY_RESULT
DIVISION:
MOV AX, DATAX
XOR DX, DX ; 清空 DX 寄存器
DIV DATAY
MOV RESULT, AX
JMP DISPLAY_RESULT
DISPLAY_RESULT:
; 显示结果
MOV AH, 2
MOV DL, RESULT
ADD DL, '0' ; 将数字转换成字符
INT 21H
END_PROGRAM:
MOV AH, 4CH
INT 21H
ERROR_MSG DB 'Error: Invalid operator.', '$'
CODE ENDS
END START
```
该程序使用了 `INT 21H` 中断来读取键盘输入和显示输出,分别使用了 `AH` 寄存器的不同值来执行不同的操作。根据输入的运算符,程序会分别执行加法、减法、乘法或除法,并将结果存储在 `RESULT` 变量中,最后将结果显示在屏幕上。如果输入的运算符不正确,则会显示错误信息并退出程序。
阅读全文
相关推荐












