请高手帮忙修改汇编程序

本人继续一个矩阵相乘的程序。从网上找了一个如下:DATASSEGMENT;数据段定义INFORMATIONDB"Pleaseenterthematrix1!Thearra... 本人继续一个矩阵相乘的程序。从网上找了一个如下:
DATAS SEGMENT ;数据段定义
INFORMATION DB "Please enter the matrix1!The array is 3*3!$" ;提示说明
SPACE DB 0DH,0AH,"$" ;换行
MATRIX1 DB 9 DUP(?),"$" ;矩阵1
MATRIX2 DB 9 DUP(?),"$" ;矩阵2
RESULT DB 9 DUP(?),"$" ;矩阵相乘结果
M1 DB 0DH,0AH,"The array1:$" ;提示信息
M2 DB 0DH,0AH,"The array2:$"
M3 DB 0DH,0AH,"Array1*Array2:$"
DATAS END

CODES SEGMENT ;定义代码段
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;置DS段初值
MOV DS,AX
MOV AX,A
SHOWINFORMATION:LEA DX,INFORMATION ;取信息提示地址偏移量
MOV AH,9 ;9号功能调用显示提示信息
INT 21H
LEA DX,SPACE ;换行
INT 21H

LEA DX,M1 ;提示输入矩阵1
MOV AH,9
INT 21H
MOV CX,09H
MOV AH,1
MOV BL,LEA OFFSET MATRIX1 ;取矩阵1的偏移地址 28
INPUT1: INT 21 ;1号功能调用,用来输入数组数值
MOV [BL],AL
ADD BL 31
MOV AH,1
LOOP INPUT1
LEA DX,M2 ;提示输入矩阵2
MOV AH,9
INT 21H
MOV CX,09H
MOV AH,1
MOV BL,LEA OFFSET MATRIX2 ;取矩阵2的偏移地址 39
INPUT2: INT 21 ;2号功能调用,用来输入数组数值
MOV [BL],AL
ADD BL 42
MOV AH,1
LOOP INPUT2

XOR AX,AX
MOV DL,OFFSET MATRIX1 47
MOV DH,OFFSET MATRIX2 48
MOV BH,OFFSET RESULT 49
MOV CX,03H
CALL LINEMULCOLOUM ;调用矩阵1某行和矩阵2的列相乘子程序
MOV DL,OFFSET MATRIX1+3 52
MOV DH,OFFSET MATRIX2 53
MOV BH,OFFSET RESULT+3 54
MOV CX,03H
CALL LINEMULCOLOUM
MOV DL,OFFSET MATRIX1+6 57
MOV DH,OFFSET MATRIX2 58
MOV BH,OFFSET RESULT+6 59
MOV CX,03H
CALL LINEMULCOLOUM

LEA DX,M1 ;显示矩阵信息以及相乘后的结果
MOV AH,9
INT 21H
LEA DX,MATRIX1
MOV AH,9
INT 21H
LEA DX,M2
MOV AH,9
INT 21H
LEA DX,MATRIX2
MOV AH,9
INT 21H
LEA DX,M3
MOV AH,9
INT 21H
LEA DX,RESULT
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
LINEMULCOLOUM PROC NEAR ;矩阵相乘子程序
STR: PUSH CX
MOV CX,3 ;设置循环次数
MOV AL,[DL] ;取矩阵1的偏移地址
MOV BL,[DH] ;取矩阵2的偏移地址
PUSH DX ;数值进栈保存
AGAIN: IMUL BL ;矩阵1的行和矩阵2的列相乘
ADD DX,AX
MOV [BH],DX
POP DX
MOV AH,DH
ADD AH,03H
MOV BL,[AH]
ADD DL,01H
MOV AL,[DL]
PUSH DX
LOOP AGAIN
POP DX
SUB DL,03H
ADD BH,01H
POP CX
LOOP STR
EXIT: ENDP 105
CODES ENDS
END START 108

自己已经经过了一些修改,但还是不能编译,其中28和29行有语法错误LEA
31和42行有语法错误in instruction。47-49、52-54、57-59有错误invalid instruction operands。105行有语法错误ENDP,最后一行有致命错误LINEMULCOLOUM。有问题的行号已经标出,急!改正后有加分
抱歉,我们要求得作业是用DLX汇编编写矩阵相乘的程序,然后再WINDLX下观察程序的流水线运行情况,鲲鹏展翅LHY ,你的程序真的能转,但是在WINDLX下不能运行,请问你知道怎么转换一下吗?
如果能帮我在WINDLX下运行,我再多给20分!!!
展开
 我来答
鲲鹏展翅LHY
推荐于2016-07-22 · TA获得超过2638个赞
知道小有建树答主
回答量:642
采纳率:0%
帮助的人:1048万
展开全部
终于调通了,先以乘积矩阵中元素值不大于9来输入矩阵1和矩阵2各元素的值,我是以下面的两个矩阵为例调试的程序:
矩阵1为:
1 1 1
1 1 2
1 1 3
矩阵2为:
3 1 1
2 1 1
1 1 1
得到结果矩阵为:
6 3 3
7 4 4
8 5 5

DATA SEGMENT;数据段定义
INFORMATION DB "Please enter the matrix1!The array is 3*3!$" ;提示说明
SPACE DB 0DH,0AH,"$" ;换行
MATRIX1 DB 9 DUP(?),"$" ;矩阵1
MATRIX2 DB 9 DUP(?),"$" ;矩阵2
RESULT DB 9 DUP(0),"$" ;矩阵相乘结果
M1 DB 0DH,0AH,"The array1:$" ;提示信息
M2 DB 0DH,0AH,"The array2:$"
M3 DB 0DH,0AH,"Array1*Array2:$"
DATA ENDS

CODE SEGMENT;定义代码段
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
MOV AX,DATA ;置DS段初值
MOV DS,AX
LEA DX,INFORMATION ;取信息提示地址偏移量
MOV AH,9 ;9号功能调用显示提示信息
INT 21H
LEA DX,SPACE;换行
MOV AH,9 ;9号功能调用显示提示信息
INT 21H

LEA DX,M1;提示输入矩阵1
MOV AH,9
INT 21H

MOV CX,09H
MOV BX,OFFSET MATRIX1;取矩阵1的偏移地址
INPUT1:
MOV AH,1
INT 21H;1号功能调用,用来输入数组数值
MOV [BX],AL
INC BX
LOOP INPUT1

LEA DX,M2 ;提示输入矩阵2
MOV AH,9
INT 21H

MOV CX,09H
MOV BX,OFFSET MATRIX2 ;取矩阵2的偏移地址
INPUT2:
MOV AH,1
INT 21H ;1号功能调用,用来输入数组数值
MOV [BX],AL
INC BX
LOOP INPUT2

MOV CX,3;设置循环次数
MOV BP,OFFSET RESULT
MOV SI,OFFSET MATRIX1

NEXT:
PUSH CX
XOR AX,AX
MOV DI,OFFSET MATRIX2
MOV CX,3;设置循环次数

NEXT1:
PUSH CX
XOR AX,AX
MOV CX,3;设置循环次数

AGAIN:
MOV AL,[SI] ;取矩阵1的偏移地址
SUB AL,30H;字符转换成数字
MOV BL,[DI] ;取矩阵2的偏移地址
SUB BL,30H;字符转换成数字
IMUL BL ;矩阵1的行和矩阵2的列相乘
ADD DS:[BP],Al
INC SI
ADD DI,3
LOOP AGAIN
ADD BYTE PTR DS:[BP],30H;数字转换成字符
SUB SI,3
SUB DI,8
INC BP
POP CX
LOOP NEXT1

ADD SI,3
POP CX
LOOP NEXT

LEA DX,M1;显示矩阵信息以及相乘后的结果
MOV AH,9
INT 21H

LEA DX,MATRIX1
MOV AH,9
INT 21H

LEA DX,M2
MOV AH,9
INT 21H

LEA DX,MATRIX2
MOV AH,9
INT 21H

LEA DX,M3
MOV AH,9
INT 21H

LEA DX,RESULT
MOV AH,9
INT 21H

MOV AH,1
INT 21H

MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END MAIN
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式