0

私はこの 3D ベースのプログラムに取り組んでいます。配列の未割り当て要素の新しいインスタンスに新しい値を割り当てる方法について、このアセンブリ スクリプトの途中で困惑しました。

.data
x DB 00000000b
y DB 00000000b
z DB 00000000b
Vector3 DT OFFSET x
        DT OFFSET y
        DT OFFSET z
bName DB "Brick"
TypeName DT ?
clickD DB 00000000b
checkV DB 00000001b
NOP
.code
main proc
returnD:
MOV AH, checkV
CMP AH, clickD
JNE returnD
CALL clickEvent
JMP returnD
main endp
clickEvent proc
makeB:
Brick DT OFFSET [Vector3]
      DT OFFSET [TypeName]
RET
clickEvent endp
END
NOP

操作しようとしている配列は「Brick」配列で、未割り当ての要素「TypeName」を .data で指定された「bName」値に割り当てようとしています。本当の問題は、'Brick' 配列は、clickD が 1 に等しい場合にのみ作成する必要があるという事実です (この場合、1 は、ユーザーがボタンをクリックして新しい Brick を作成するタイミングを決定するために 'true' を意味します)。ブリック配列の作成時にブリックの TypeName 値を bName 値に変更できるようにするためですが、正直なところ、これを行う方法がわかりません。解決策には、bName の値をレジスタに MOV し、レジスタの値をブリックの typeName アドレスに MOV するようなことを行う必要があると考えていました。 . もう 1 つの可能性として、bName をデータ スタックにプッシュし、おそらく Bricks の typename 要素をスタックにプッシュしてそこからデータを MOV し、データを元に戻します。 . それが役立つ場合、私はx86、masm AssemblyをAthlonプロセッサで使用しています。前もって感謝します。

4

0 に答える 0