【发布时间】:2019-05-11 08:23:24
【问题描述】:
我是汇编新手,如果您能帮助我编写一段代码,说明如何使用汇编语言 x86-32 位将两个矩阵相加并将结果移动到另一个矩阵中,我将不胜感激。矩阵被声明为一维数组。
n dd 9
A dd 1,2,3,4,5,6,7,8,9
B dd 2,0,4,5,6,7,0,1,3
sum dd dup 9(0)
我尝试了下面的代码,但它只适用于这样声明的矩阵,我需要一个用于声明为 1s 数组的矩阵。
A db 1,2,3
db 4,5,6
B db 7,8,9
db 10,11,12
.code
start:
mov eax , 0
mov esi, 0
mov ebx, 0
add al, A[ebx][esi]
add al, B[ebx][esi]
mov A[ebx][esi], al
mov al, 0
inc esi
add al, A[ebx][esi]
add al, B[ebx][esi]
mov A[ebx][esi], al
mov al, 0
inc esi
add al, A[ebx][esi]
add al, B[ebx][esi]
mov A[ebx][esi], al
mov al, 0
mov esi, 0
add ebx, 3
add al, A[ebx][esi]
add al, B[ebx][esi]
mov A[ebx][esi], al
mov al, 0
inc esi
add al, A[ebx][esi]
add al, B[ebx][esi]
mov A[ebx][esi], al
mov al, 0
inc esi
add al, A[ebx][esi]
add al, B[ebx][esi]
mov A[ebx][esi], al
push 0
call exit
end start
【问题讨论】:
标签: assembly matrix x86 addressing-mode