我編寫了一個代碼來計算16位x86彙編語言中數組元素的平均值。它適用於32h
和C8h
元素,但當我把190h
錯誤發生在LEA si, array
。爲什麼?x86彙編語言中的LEA錯誤
數組的前2個字節表示數組大小。
我使用emu8086。
data segment
array db 32h, 00, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9, 3, -10, 7, 14, 9
min db ?
max db ?
msg_average db 'The average = $'
msg_min db 'The minimum element is: $'
msg_max db 'The maximum element is: $'
xxh dw ?
xxl dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
lea ax, data
mov ds, ax
mov es, ax
;Getting array size
lea si, array ; HERE IS THE ERROR
mov cx, [si]
;Moving si to the location of the first element
mov si, 0002h
.
.
.
.
你會得到什麼錯誤?當您嘗試使用0190h大小時,您可以顯示代碼嗎? – Devolus