我正在尝试使用x86程序集(TASM)创建一个程序,该程序横贯两组数组,并使用for循环在两个数组之间进行基本的添加。但是,我从来没有在汇编中使用for循环或数组,所以我很困惑我将如何去实现它。对于循环和穿过x86中的数组汇编代码
所以我们说,我有这个pusodo代码:
for i := 0 to n-1 do
s := a[ i] + b[ i];
...
endfor;
的,这是我到目前为止的代码这需要在si and di
分别array a and b
和大小n
在cx
,我如何实现上述pusodo代码我的代码?
m dw ?
s dw ?
.code
extrn putint: proc
public maxp_ip
maxp_ip proc ;(n)
; computes the max-plus inner product between two vectors a and b of length n
; input: CX = n
; SI = a
; DI = b
; output: AX = m
; save regs
push si
push di
push ax ; assigned to m
push bx ; assigned to s
push cx
; m := -32768
mov m, -32768
; for i := 0 to n-1 do
请注意,上述代码不是我的整个代码,只是我想要实现for循环和添加的部分。另外,你能否解释我将如何做到这一点,与示例代码(我是一个视觉学习者,所以我需要看看怎么做,对不起)。谢谢。
首先用'if'和'goto'重写'for'循环。这应该直接映射到稍后的程序集。如果你是一个视觉学习者,画一个流程图。 – Jester 2015-03-24 22:00:11