汇编语言输出九九乘法表
时间: 2023-07-09 14:45:56 浏览: 91
以下是一个示例程序,可以输出九九乘法表:
```assembly
.model small
.stack 100h
.data
newline db 10, 13, '$'
table db 81 dup('$')
.code
mov ax, @data
mov ds, ax
mov cx, 9 ; 设置行数
mov di, 0 ; 设置表格索引
; 计算乘法表
mov bx, 1
table_loop:
mov ax, 1
inner_loop:
mov dl, '0' ; 设置数码字符为 '0'
add dl, bx ; 添加行数到数码字符
mul dl ; 乘以列数
add al, 30h ; 转换结果为 ASCII 码
mov table[di], al ; 存储结果
inc di
cmp di, 81
jz print_table
inc bx
cmp bx, 10
jnz inner_loop
dec cx
cmp cx, 0
jnz table_loop
print_table:
; 打印乘法表
mov cx, 9
row_loop:
mov di, 0
mov bx, 1
column_loop:
mov ah, 02h
mov dl, '0' ; 打印行数
add dl, cx
int 21h
mov ah, 02h
mov dl, 'x'
int 21h
mov ah, 02h
mov dl, '0' ; 打印列数
add dl, bx
int 21h
mov ah, 02h
mov dl, '='
int 21h
mov ah, 02h
mov dl, table[bx+(9-cx-1)*9-1] ; 打印计算结果
int 21h
mov ah, 09h
lea dx, newline
int 21h
inc bx
cmp bx, 10
jnz column_loop
dec cx
cmp cx, 0
jnz row_loop
mov ah, 4ch
int 21h
end
```
该程序使用一个名为“table”的字节数组来存储乘法表。该数组有81个元素,每个元素可以存储一个数字或一个字符(“$”)。程序使用双重循环计算乘法表,并在打印乘法表时从数组中检索计算结果。程序在每个结果后添加一个换行符。