我想知道如何将指针参数传递给过程?
我必须创建具有 2 个参数的函数:
- 单词数组
- 数组的大小
该函数获取数组的大小并对列求和。
这就是我编码的内容:
.MODEL 小
.堆栈 64
; +=================================+
; | 数据 |
; +=================================+
。数据
array1 dw 1,2,3,4
array1size dw 4
结果 dw ?
地址 dw ?
; 打印
TMP dw 0 ; 一般临时变量..
。代码
addNumbers 过程
; 重置结果
LEDI,结果
; 使用堆栈
移动 bp,sp
; 获取 num 数组
mov bx,[bp+2]
; 获取数字的数量
mov cx,[bp+4]
; 加法
添加:
添加 [di],bx
公司 bx; 去下一个bx
循环添加
保留 2
结束
; 开始
开始:
移动斧头,@DATA
mov ds,ax
; 设置字符串
推数组1大小
推送偏移数组1
调用 addNumbers
; 打印
mov dx:ax,结果
调用 printNumber
mov ah,4ch
移动,0
整数 21H
结束开始
问题 - 它增加了偏移指针(这里是cs:0000, cs:0001, cs:0002, cs:0003)而不是偏移值(这里是:1, 2, 3, 4)。
因此,结果将是 6 而不是 10。
有人可以帮助我吗?