汇编语言编程设计输出九九乘法表,从键盘输入选项,查找对应结果并标记输出,数据的
时间: 2024-01-08 22:04:03 浏览: 79
存储可以使用数组。以下是一个示例汇编代码:
```
.model small
.stack 100h
.data
prompt db '请输入选项:', 0
result db '您选择的选项结果为:', 0
num1 db 0
num2 db 0
product db 0
table db 81 dup(0)
option1 db '1. 输出九九乘法表', 0
option2 db '2. 查找乘法表中的某个结果', 0
option3 db '3. 退出程序', 0
optionPrompt db '请选择选项(1-3):', 0
findPrompt db '请输入要查找的乘积:', 0
found db '找到了该乘积!', 0
notFound db '未找到该乘积。', 0
.code
main proc
mov ax, @data
mov ds, ax
; 输出菜单
lea dx, option1
mov ah, 9
int 21h
lea dx, option2
mov ah, 9
int 21h
lea dx, option3
mov ah, 9
int 21h
; 读取选项
lea dx, optionPrompt
mov ah, 9
int 21h
mov ah, 1
int 21h
sub al, '0'
cmp al, 1
je outputTable
cmp al, 2
je findProduct
cmp al, 3
je quit
; 选项不正确
jmp main
outputTable:
; 输出九九乘法表
mov bl, 1
mov cx, 9
mov dx, 0
outputTableLoop1:
mov num1, bl
mov dl, 0
outputTableLoop2:
mov num2, dl
call multiply
add dx, 2
cmp dx, 22
jle outputTablePrint
lea dx, crlf
mov ah, 9
int 21h
mov dx, 0
outputTablePrint:
lea dx, num1
mov ah, 9
int 21h
lea dx, times
mov ah, 9
int 21h
lea dx, num2
mov ah, 9
int 21h
lea dx, equal
mov ah, 9
int 21h
lea dx, product
mov ah, 9
int 21h
mov table[num1][num2], 1
inc dl
cmp dl, cx
jle outputTableLoop2
lea dx, crlf
mov ah, 9
int 21h
add bl, 1
cmp bl, cx
jle outputTableLoop1
; 返回主菜单
jmp main
findProduct:
; 查找乘法表中的某个结果
lea dx, findPrompt
mov ah, 9
int 21h
mov ah, 1
int 21h
sub al, '0'
mov num1, al
mov ah, 1
int 21h
sub al, '0'
mov num2, al
call multiply
cmp table[num1][num2], 1
je foundProduct
lea dx, notFound
mov ah, 9
int 21h
jmp main
foundProduct:
; 找到了该乘积
lea dx, found
mov ah, 9
int 21h
jmp main
quit:
; 退出程序
mov ah, 4ch
int 21h
multiply proc
; 计算乘积
mov al, num1
mov bl, num2
mul bl
mov product, al
ret
multiply endp
end main
```
这段代码实现了以下功能:
1. 输出九九乘法表
2. 查找乘法表中的某个结果
3. 退出程序
可以通过键盘输入选项来选择要执行的功能。对于选项2,程序会要求用户输入要查找的乘积,然后在乘法表中查找该乘积并标记输出。程序使用一个二维数组来存储乘法表中每个乘积是否已经被找到过。
阅读全文