您的位置:首页 > 其它

汇编—双重循环—计算4*4矩阵与4*1矩阵乘法

2012-11-16 00:58 260 查看
题目要求:

将一个4*4的矩阵与一个4*1的矩阵相乘,结果存在相应的存储单元

注:这里还增加了输出操作

这个代码在写的过程中遇到了很多问题,由于时间原因先不叙述了,找时间补上再,感兴趣的童鞋可以关注修改

写完之后,觉得把矩阵结构限制了,很不爽,所以就想写个适合于所有矩阵的,在稍后的博客里一起贴上~

参考代码:

DATA    SEGMENT
D1  DB  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
D2  DB  4,2,1,3
D3  DB  4 DUP(?)
D4  DB  0
FOUR    DW 4
DATA    ENDS
CODE    SEGMENT
ASSUME DS:DATA,CS:CODE
START:  MOV AX,DATA
MOV DS,AX
LEA BX,D3
L2:     MOV AL,D4		;外层循环开始
AND AX,00FFH
MUL WORD PTR FOUR
LEA SI,D1
ADD SI,AX
LEA DI,D2
MOV CX,0
MOV DL,4
L3:     MOV AL,[SI]		;内层循环开始
MUL BYTE PTR [DI]
ADD CL,AL
INC SI
INC DI
DEC DL
JNZ L3			;内层循环
MOV [BX],CL
INC BX
INC BYTE PTR D4
CMP BYTE PTR D4,4
JNZ L2			;外循环
LEA BX,D3
MOV CX,4		;输出操作
L4:     MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,[BX]		;高位输出
SHR DL,1
SHR DL,1
SHR DL,1
SHR DL,1
AND DL,0FH;
CMP DL,0AH
JC  L5
ADD DL,7
L5:     ADD DL,30H
MOV AH,2
INT 21H
MOV DL,[BX]		;低位输出
AND DL,0FH
CMP DL,0AH
JC  L6
ADD DL,7
L6:     ADD DL,30H
MOV AH,2
INT 21H
INC BX
LOOP L4
MOV AH,4CH
INT 21H
CODE ENDS
END START
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: