私はこのアセンブリの問題に取り組んでおり、各要素をループしてarray1
、エントリが「F」であるその配列のインデックスを格納しています。
x86 Intel プロセッサ用に MASM を使用しています。アセンブリ言語
INCLUDE Irvine32.inc
.data
array1 BYTE "FMMFMFMMFFMMFFFMFMFM",0
indexa1 BYTE SIZEOF array1 DUP(?)
ArraySize = ($ - array1)
.code
main PROC
mov esi,0 ; index
mov ecx,ArraySize
L1: cmp esi,ecx ; check to continue loop
jl L2 ; continue
jmp L5 ; exit
L2: cmp array1[esi], "F" ; Check if "F"
je L3 ; jump if "F"
jmp L4 ; jump to L4 if not "F"
L3:
mov indexa1[ah], esi ; store index number,---- ERROR ----
inc ah
jmp L4
L4: inc esi ; increment loop counter
jmp L1 ; jump to beginning
L5: movzx eax, ah
call DumpRegs
exit
main ENDP
END main
indexa1 にインデックスを格納しようとするとエラーが発生するのはなぜですか? エラーは、インデックスまたはベースレジスタでなければならないということです