我正在嘗試使用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