【发布时间】:2019-03-26 09:26:37
【问题描述】:
我试图理解这个递归代码,但我对add bx, 2 的用途感到困惑。我已经在相关行上做了标记。据我了解,我们必须用值递增指向数组的指针,但为什么我们要添加 2 而不是 1?
.model small
.stack 100
.data
arr dw 38, 39, 90, 94, 13, 24, 53, 59, 63
size dw 9
result dw ?
.code
func proc
push bp
mov bp, sp
push ax
push bx
push cx
push dx
mov cx, [bp+4]
mov bx, [bp+6]
mov ax, [bx]
cmp cx, 1
ja more
mov [bp+6], ax
jmp done
more:
**add bx, 2**
push bx
dec cx
push cx
call func
pop dx
cmp dx, ax
jg greater
mov [bp+6], ax
jmp done
greater:
mov [bp+6], dx
done:
pop dx
pop cx
pop bx
pop ax
pop bp
ret 2
func endp
【问题讨论】:
标签: arrays recursion assembly x86-16