ポインタ引数をプロシージャに渡すにはどうすればよいですか?
2 つの引数を持つ関数を作成する必要があります。
- 単語配列
- 配列のサイズ
この関数は、配列のサイズの配列を取得し、列を合計します。
それが私がコーディングしたものです:
.MODEL 小
.スタック 64
; +===============================+
; | | データ |
; +===============================+
。データ
array1 dw 1,2,3,4
array1size dw 4
結果dw?
アドレスdw?
; 印刷する
TMP dw 0 ; 一般的な一時変数 ..
。コード
addNumbers プロシージャ
; 結果をリセット
結果
; スタックを使用
移動 bp,sp
; 数値配列を取得
mov bx,[bp+2]
; 数字の数を取得する
mov cx,[bp+4]
; 追加する
追加:
[di],bx を追加
株式会社bx; 次のbxに行く
ループ追加
レット 2
終わり
; 始める
始める:
移動斧、@DATA
mov ds,ax
; 文字列を設定する
プッシュ array1size
プッシュ オフセット配列 1
addNumbers を呼び出す
; 印刷する
mov dx:ax,結果
printNumber を呼び出す
動くあ、4ch
移動,0
整数 21H
終了開始
問題-結果にオフセットポインター(ここcs:0000ではcs:0001cs:0002cs:00031234
このため、結果は 10 ではなく 6 になります。
誰かが私を助けることができますか?