EQU可以指定长度吗?

WJN92 2011-07-11 12:28:29
test EQU 2H

and dword ptr ds:[base],not test

以上的代码,not test编译出来只有16位,也就是FD,我怎么才让它变成dword 呢?
...全文
60 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2011-07-11
  • 打赏
  • 举报
回复
但是这只是指令上的简单表示吧,会进行符号扩展的,就如 32 位下将 12h 这样的数据压栈的话,整个指令也就 2 字节,但一次压栈的却是 dword (00000012h);这样的指令,有些反汇编/调试软件就简单地原样表示,有些则表示成扩展后的样子(这样可能更能表示出实际的意义吧)。
WJN92 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zara 的回复:]

这个,就是和源操作数的长度一致的吧。看到的是 0FDh,这个只是些反汇编或调试软件的简单表示而已。刚才试了下 16 和 32 位环境下,同样的 exe 文件,hiew 里就是简单地显示为 0FDh,IDA 里则是 0FFFFFFFDh 。
[/Quote]
我是用编译器里面输出list 来看的,机器码那里也是 FD
woshi_ziyu 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zara 的回复:]

这个,就是和源操作数的长度一致的吧。看到的是 0FDh,这个只是些反汇编或调试软件的简单表示而已。刚才试了下 16 和 32 位环境下,同样的 exe 文件,hiew 里就是简单地显示为 0FDh,IDA 里则是 0FFFFFFFDh 。
[/Quote]
++
zara 2011-07-11
  • 打赏
  • 举报
回复
这个,就是和源操作数的长度一致的吧。看到的是 0FDh,这个只是些反汇编或调试软件的简单表示而已。刚才试了下 16 和 32 位环境下,同样的 exe 文件,hiew 里就是简单地显示为 0FDh,IDA 里则是 0FFFFFFFDh 。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧