我不知道该怎么做。例如,我的al
注册表持有字母" a"这是0x41。如果我希望它转移到下一个角色,让我们说" b",我可以inc al
吗?
答案 0 :(得分:0)
您可以通过编写具有__asm {}块的函数在Visual Studio中检查此行为。
在此处查看更多内容:https://msdn.microsoft.com/en-us/library/45yd4tzz.aspx
函数的返回值将在eax
寄存器中。
您可以尝试以下内容:
int myFunction(){
__asm{
mov eax,0; //make sure eax is 0 since it will be the return value
mov al,0x61; //add "a"
inc al; //increment al, the return value is here in al(eax)
}
}
据我记得(因为我很久以前使用过asm)是的,inc al
会让你进入下一个角色,即" b"在你的情况下。
处理器不知道你是否有角色或参考,它只会看到数字。因此,您所做的只是增加一个数值。在这种情况下,char a
是 0x61 ,而char b
是 0x62 。
此外,处理器不知道有char,char是您选择打印的方式。
注意:您还可以使用它来隔离您遇到的其他一些问题,以便更轻松地进行调试。
您可以在MSDN文档中找到有关如何使用内联asm
块获取函数参数的信息:https://msdn.microsoft.com/en-us/library/5sds75we.aspx
答案 1 :(得分:0)
是的,'a' + 1 == 'b'
。这也适用于asm。