這是我的代碼
[ORG 0x0100]
jmp start
even: dw 16,18,20,22,24,26,28,30,32
avg: dw 0
average:
a1: add ax, [bx]
add bx, 2
loop a1
ret
start:
mov ax,0
mov bx,even
mov cx,8
call average
mov bx,9
div ax
mov avg,ax
mov ax, 0x4c00 ;terminate program
int 0x21
我不知道為什么會收到此錯誤。
uj5u.com熱心網友回復:
操作碼和運算元的組合無效
如果這是N ASM,則mov avg,ax需要成為mov [avg], ax避免錯誤。
如果這是M ASM,則mov bx,even需要成為mov bx, OFFSET even正確的結果。
你有錯誤!
- 該陣列有 9 個元素,但您只處理 8 個元素
mov cx,8。 - 即使您準備用 9 除以
mov bx,9,但您執行div ax的操作是錯誤的。 - 字大小的除法需要預先將 DX 歸零
start:
mov ax, 0
mov bx, even
mov cx, 9
call average
mov bx, 9
xor dx, dx
div bx
mov [avg], ax
mov ax, 0x4C00 ;terminate program
int 0x21
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527626.html
標籤:部件鼻涕虫
