0

私はこのアセンブリの問題に取り組んでおり、各要素をループして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 にインデックスを格納しようとするとエラーが発生するのはなぜですか? エラーは、インデックスまたはベースレジスタでなければならないということです

4

1 に答える 1