我正在使用x86彙編語言。我想要得到兩個參數,一個是列,另一個是行,在區間[0,5]內使用隨機數。在這裏,我試圖通過將隨機數除以6來調整時間間隔,並且將數字保留在DL中,這是除法的剩餘部分。RandomRange與Irvine彙編
我還實現了一個數組,其中包含之前隨機化的數字,如果元素已經是1,它使用row * 6 + col檢查索引,但此數組尚未生效,則跳回隨機數。
我得到一個分段錯誤,可能是什麼問題?
TITLE Program Template (template.asm)
INCLUDE Irvine32.inc
INCLUDE macros.inc
.data
onezero BYTE 36 DUP(0)
row BYTE 0
col BYTE 0
.code
main PROC
_again:
call randomrange
mov bx, 6
div bx
mov row, dl
call randomrange
div bx
mov col, dl
movzx eax, row
mov ebx, 6
mul ebx
movzx ecx, col
add eax, ecx
mov edi, eax
mov al, 1
cmp al, onezero[edi]
je _again
movzx eax, row
call writeint
movzx eax, col
call writeint
main ENDP
END main