这是我在这里的第一个问题,希望您能帮助我!
我目前正在开发GameBoy模拟器,并希望使用MASM编写它,
为了处理CPU指令,我想创建一个变量数组,以便更轻松地访问。
以下是我想要实现的示例:
如果我想从PARAM_TABLE中获取一个值,应该按照以下方式进行操作:
以下是我想要实现的示例:
assume esi:ptr CPU_CORE
REGISTER_A equ (([esi].registers.AF AND 0F0h) SAR 3h)
REGISTER_B equ (([esi].registers.BC AND 0F0h) SAR 3h)
REGISTER_C equ (([esi].registers.BC AND 0Fh))
PARAM_TABLE [Type?] REGISTER_A
[Type?] REGISTER_B
[Type?] REGISTER_C
assume esi:ptr NOTHING
如果我想从PARAM_TABLE中获取一个值,应该按照以下方式进行操作:
lea esi, PARAM_TABLE
mov ecx, 1h ; just as example for accessing REGISTER_B
mov eax, [esi+ecx*[TYPE?]]
;EAX now contains the value from the hi-byte of the BC register, so: (([esi].registers.BC AND 0F0h) SAR 3h)
我的想法是创建像REGISTER_A这样的变量,以便更轻松地访问。希望您能理解我的意思。也许可以使用宏来实现这一点?