ポインタ引数をプロシージャに渡すにはどうすればよいですか?
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:0001
cs:0002
cs:0003
1
2
3
4
このため、結果は 10 ではなく 6 になります。
誰かが私を助けることができますか?