在 8086 中向 proc 发送参数
Sending parameters to proc in 8086
我想在程序集 8086 中编写一个子程序,它获取两个数组作为参数。
我该怎么做?
到目前为止,这是我的代码:
mov dl,[arr1]
mov dh, [arr2]
call adding
这是我的子程序:
adding proc
push ax
push bx
push cx
mov [arrx],dl
mov [arry],dh
mov cx, duplen
mov bx, cx ; point to lest significant digit!
dec bx
next_digit:
; add digits:
mov al, arrx[bx]
adc al, arry[bx]
; this is a very useful instruction that
; adjusts the value of addition
; to be string compatible
aaa
mov sum[bx], al
dec bx
loop next_digit
pop cx
pop bx
pop ax
ret
有什么问题吗?
代替
mov dl,[arr1]
mov dh, [arr2]
call adding
使用类似
的东西
mov si,arr1
mov di,arr2
call adding
在子程序中
clc ;You forgot this !!!
next_digit:
; add digits:
mov al,[si+bx]
adc al,[di+bx]
aaa
mov sum[bx],al
dec bx
loop next_digit
我想在程序集 8086 中编写一个子程序,它获取两个数组作为参数。 我该怎么做? 到目前为止,这是我的代码:
mov dl,[arr1]
mov dh, [arr2]
call adding
这是我的子程序:
adding proc
push ax
push bx
push cx
mov [arrx],dl
mov [arry],dh
mov cx, duplen
mov bx, cx ; point to lest significant digit!
dec bx
next_digit:
; add digits:
mov al, arrx[bx]
adc al, arry[bx]
; this is a very useful instruction that
; adjusts the value of addition
; to be string compatible
aaa
mov sum[bx], al
dec bx
loop next_digit
pop cx
pop bx
pop ax
ret
有什么问题吗?
代替
mov dl,[arr1]
mov dh, [arr2]
call adding
使用类似
的东西mov si,arr1
mov di,arr2
call adding
在子程序中
clc ;You forgot this !!!
next_digit:
; add digits:
mov al,[si+bx]
adc al,[di+bx]
aaa
mov sum[bx],al
dec bx
loop next_digit