配列に数値を追加する Intel 8086 プロセッサのアセンブリ プログラムを次に示します。
.model small
.stack 100h
.data
array dw 1,2,3,1,2
sum dw ?,", is the sum!$"
.code
main proc
mov ax,@data
mov ds,ax
mov di,0
repeat:
mov ax,[array+di]
add sum,ax
add di,2 ; Increment di with 2 since array is of 2 bytes
cmp di,9
jbe repeat ; jump if di<=9
add sum,30h ; Convert to ASCII
mov ah,09h
mov dx,offset sum ; Printing sum
int 21h
mov ax,4c00h
int 21h
main endp
end main
上記のプログラムは、「ベース + インデックス」アドレッシング モードを使用して配列の数を追加します。
同じ操作は、次のようなもので実行できます。
mov ax, array[di]
ここで次の質問があります。
array[di]
とはどう違いますか[array+di]
- メモリアドレッシングモードはどれ
array[di]
ですか? - どちらを使用するのが良いですか、またその理由は何ですか?