尝试使用程序集

时间:2016-08-06 03:42:42

标签: c# assembly qvector3d

我正在研究这个基于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'值。真正的问题是,只有当clickD等于1时才能创建'Brick'数组。(在这种情况下,1表示为'true'以确定用户何时点击按钮来创建新Brick)我需要能够在创建砖块时将Brick的TypeName值更改为bName值,老实说,我不知道如何做到这一点。我认为解决方案可能涉及做一些事情,比如将bName的值移动到寄存器中,并将寄存器的值移动到brick的typeName地址中,这可能可以存储为变量,但我不知道我怎么能这样做。另一种可能性可能涉及将bName推送到数据堆栈,并且可能将Bricks typename元素推送到堆栈并从那里MOVing数据,然后将数据弹回,但同样,砖块的类型使得它似乎更难以这样做。我正在使用x86,masm Assembly和Athlon处理器,如果有帮助的话。提前谢谢。

0 个答案:

没有答案