汇编语言编程设计输出九九乘法表,从键盘输入选项,查找对应结果并标记输出,数据的
时间: 2024-01-08 11:04:04 浏览: 104
定义使用十进制数,按照从小到大的顺序存放在内存中。
以下是汇编代码实现:
```assembly
.model small
.stack 100h
.data
option db ?
num1 db ?
num2 db ?
result db ?
.code
mov ax, @data
mov ds, ax
; 输出九九乘法表
mov cx, 9
mov bx, 1
L1:
mov num1, bx
mov cx, 9
mov bx, 1
L2:
mov num2, bx
mul num1 ; AX = num1 * num2
mov result, al
mov dl, num1
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; DOS中断21h,输出一个字符
int 21h
mov ah, 02h ; 输出乘号
mov dl, '*'
int 21h
mov dl, num2
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出等号
mov dl, '='
int 21h
mov dl, result
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出空格
mov dl, ' '
int 21h
inc bx
cmp bx, 10
jne L2
mov ah, 02h ; 输出换行符
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
inc num1
cmp num1, 10
jne L1
; 从键盘输入选项并查找对应结果并标记输出
mov ah, 01h ; DOS中断21h,等待输入一个字符
int 21h
sub al, 30h ; 将字符转换为数字
mov option, al
mov cx, 9
mov bx, 1
L3:
mov num1, bx
mov cx, 9
mov bx, 1
L4:
mov num2, bx
mul num1 ; AX = num1 * num2
mov result, al
cmp result, option
je FOUND
inc bx
cmp bx, 10
jne L4
inc num1
cmp num1, 10
jne L3
jmp NOTFOUND
FOUND:
mov dl, num1
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出乘号
mov dl, '*'
int 21h
mov dl, num2
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出等号
mov dl, '='
int 21h
mov dl, option
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出空格
mov dl, ' '
int 21h
jmp END
NOTFOUND:
mov ah, 02h ; 输出字符串"Not found"
mov dx, offset notfound
int 21h
jmp END
END:
mov ah, 4ch ; DOS中断21h,程序结束
int 21h
notfound db 'Not found$'
end
```
在程序中,首先实现了输出九九乘法表的功能。然后,从键盘输入选项,并在九九乘法表中查找对应的结果。如果找到了,则输出标记后的结果;否则,输出字符串"Not found"。
阅读全文