我有一個雙字節整數數組,我用隨機3位數字填充,使用ESI遍歷數組。當我嘗試訪問數組的第9個元素並將其存儲在ESI中時,出現訪問衝突。運行循環時MASM x86訪問衝突
ARRAYSIZE = 200
.data
list WORD ARRAYSIZE DUP(?)
fillArray PROC
push OFFSET list
mov esi, [esp] ;GET ADDRESS OF FIRST ELEMENT INTO ESI
mov ecx, request ;NUMBER OF ELEMENTS TO BE ADDED
ArrFill:
;calculate random 3-digit number, store in eax
dec ecx
mov [esi], eax ;THIS IS THE LINE THAT THROWS THE EXCEPTION
sub esi, 2
cmp ecx, 0
jnz ArrFill
異常拋出:訪問衝突寫入位置0x00405FFE(引發時的ESI值)。
當我將數組更改爲四字節整數時,我也遇到訪問衝突,以嘗試訪問同一地址處的數組的第五個元素。
陣列有多大,每個值是16位,但您允許多少個值? –
編輯:更新代碼以添加更多信息。 – hudspero
查看我的回答下面 –