Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何检查符号是否是TASM宏中的寄存器?_Assembly_Macros_X86 16_Tasm - Fatal编程技术网

Assembly 如何检查符号是否是TASM宏中的寄存器?

Assembly 如何检查符号是否是TASM宏中的寄存器?,assembly,macros,x86-16,tasm,Assembly,Macros,X86 16,Tasm,有没有办法检查符号是数字、寄存器还是内存位置 if AX is a 16 bit register Do this else Do that 我将在宏中使用它来检查符号是否指向8位或16位位置+是否是特定寄存器 是否有类似于装配时间检查的内容?在《Turbo Assembler用户指南》中查找SYMTYPE和.TYPE。这似乎是你想要的。谢谢你的帮助,迈克尔!然而,我的问题仍然没有解决。我的16位TASM不知道什么符号类型,有一个宏名为.type,但它只能区分寄存器(返回30H)和立即值

有没有办法检查符号是数字、寄存器还是内存位置

if AX is a 16 bit register
  Do this
else
 Do that
我将在宏中使用它来检查符号是否指向8位或16位位置+是否是特定寄存器


是否有类似于装配时间检查的内容?

在《Turbo Assembler用户指南》中查找
SYMTYPE
.TYPE
。这似乎是你想要的。谢谢你的帮助,迈克尔!然而,我的问题仍然没有解决。我的16位TASM不知道什么符号类型,有一个宏名为.type,但它只能区分寄存器(返回30H)和立即值(返回24H)。它返回与AX AH SI BX相同的值。是否有其他的解决方法,或者我遗漏了什么?MOV AX,.type ahi是否有一些汇编时间方法可以有条件地解决我的问题…因此,如果.type AX==0024H,则执行寄存器操作,否则执行该操作。。。或者是没有寄存器的CMP。我不明白为什么需要检查
AX
是什么,所以我假设您实际上处理的是一个宏参数,可能是
AX
或其他任何东西。因此,
IF(.TYPE param)EQ 30h
将在组装时计算为true(如果参数是寄存器)。我不确定是否有一种简单的方法来区分不同的寄存器大小。您可能需要进行一系列字符串比较。请在《Turbo Assembler用户指南》中查找
SYMTYPE
.TYPE
。这似乎是你想要的。谢谢你的帮助,迈克尔!然而,我的问题仍然没有解决。我的16位TASM不知道什么符号类型,有一个宏名为.type,但它只能区分寄存器(返回30H)和立即值(返回24H)。它返回与AX AH SI BX相同的值。是否有其他的解决方法,或者我遗漏了什么?MOV AX,.type ahi是否有一些汇编时间方法可以有条件地解决我的问题…因此,如果.type AX==0024H,则执行寄存器操作,否则执行该操作。。。或者是没有寄存器的CMP。我不明白为什么需要检查
AX
是什么,所以我假设您实际上处理的是一个宏参数,可能是
AX
或其他任何东西。因此,
IF(.TYPE param)EQ 30h
将在组装时计算为true(如果参数是寄存器)。我不确定是否有一种简单的方法来区分不同的寄存器大小。为此,您可能需要进行一系列字符串比较。