8086汇编实现键盘输入第一个矩阵的行、第一个矩阵的列和第二个矩阵的行、第二个矩阵的列并输出两个矩阵相乘结果
时间: 2023-09-25 09:09:25 浏览: 52
以下是一个简单的8086汇编程序,它可以实现键盘输入第一个矩阵的行、第一个矩阵的列和第二个矩阵的行、第二个矩阵的列,并输出两个矩阵相乘的结果。
```
.model small
.stack 100h
.data
matrix1 db ?, ?, ?, ? ; 第一个矩阵的行、列
db ?, ?, ?, ?
matrix2 db ?, ?, ?, ? ; 第二个矩阵的行、列
db ?, ?, ?, ?
result db 16 dup(?) ; 存储结果
.code
mov ax, @data
mov ds, ax
; 输入第一个矩阵的行、列
mov ah, 01h ; 读入字符
int 21h ; 调用DOS中断
sub al, '0' ; 将字符转换为数字
mov matrix1, al
mov ah, 01h ; 读入字符
int 21h ; 调用DOS中断
sub al, '0' ; 将字符转换为数字
mov matrix1+1, al
; 输入第二个矩阵的行、列
mov ah, 01h ; 读入字符
int 21h ; 调用DOS中断
sub al, '0' ; 将字符转换为数字
mov matrix2, al
mov ah, 01h ; 读入字符
int 21h ; 调用DOS中断
sub al, '0' ; 将字符转换为数字
mov matrix2+1, al
; 输入第一个矩阵的元素
mov cx, matrix1+1 ; 循环次数为矩阵的列数
mov si, offset matrix1+2 ; 存储矩阵元素的地址
matrix1_loop:
mov ah, 01h ; 读入字符
int 21h ; 调用DOS中断
sub al, '0' ; 将字符转换为数字
mov [si], al ; 存储元素
inc si ; 增加地址
loop matrix1_loop
; 输入第二个矩阵的元素
mov cx, matrix2+1 ; 循环次数为矩阵的列数
mov si, offset matrix2+2 ; 存储矩阵元素的地址
matrix2_loop:
mov ah, 01h ; 读入字符
int 21h ; 调用DOS中断
sub al, '0' ; 将字符转换为数字
mov [si], al ; 存储元素
inc si ; 增加地址
loop matrix2_loop
; 计算矩阵乘积
mov ax, matrix1 ; 第一个矩阵的起始地址
mov bx, matrix2 ; 第二个矩阵的起始地址
mov cx, matrix1+1 ; 第一个矩阵的列数
mov dx, matrix2+1 ; 第二个矩阵的列数
mov si, offset result ; 存储结果的地址
mov di, 0 ; 计数器清零
outer_loop:
mov bp, bx ; 第二个矩阵的列数
inner_loop:
mov al, [ax] ; 取第一个矩阵的元素
mov bl, [bx] ; 取第二个矩阵的元素
mul bl ; 乘积放入AX
add di, ax ; 将乘积加入结果
inc bx ; 移动到第二个矩阵的下一个元素
add ax, cx ; 移动到第一个矩阵的下一行
loop inner_loop
mov [si], di ; 将结果存储
add si, 1 ; 增加结果地址
mov di, 0 ; 计数器清零
dec dx ; 移动到第二个矩阵的下一列
jnz outer_loop
; 输出结果
mov ah, 09h ; 打印字符串
lea dx, result
int 21h
mov ah, 4ch
int 21h
end
```
这个程序使用了DOS中断来读取键盘输入,并使用了一些基本的汇编指令来计算矩阵乘积。请注意,这个程序只是一个简单的例子,可能需要进行修改才能适应不同的输入。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)