我想知道如何将指针参数传递给过程?
我必须创建具有 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。
有人可以帮助我吗?