0xFFFFFFFF`C0000100 这是什么意思?

bluecrest 2004-07-18 03:47:04
在windbg帮助文件中看到的。

However, this similar command will not break when eax equals 0xC0000100:
kd> bp mydriver!myFunction "j @eax = 0xc0000100 '';'g'"
The reason this will fail is that the MASM expression evaluator sign-extends registers whose high bit equals one. So when eax has the value 0xC0000100, it will be treated as 0xFFFFFFFF`C0000100 in computations — even though eax will still be displayed as 0xC0000100.
To break when eax equals 0xC0000100, you must mask the high bits:
kd> bp mydriver!myFunction "j (@eax & 0x0`ffffffff) = 0xc0000100 '';'g'"
...全文
153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dunkel 2004-07-18
  • 打赏
  • 举报
回复
唉, '符合' -> '符号'
dunkel 2004-07-18
  • 打赏
  • 举报
回复
应该是 64 位值的意思吧, 即两个双字, 高双字是 0xffffffff, 低双字是 0xc0000100
因为, 上面提到了 '符合扩展' (sign-extends), 已经是双字了, 再扩展的话, 就是 64 位值了
后面的 (@eax & 0x0`ffffffff) 实际上就是告诉调试程序, 我这里的是 unsigned value, 别再进行什么符合位的扩展了

21,459

社区成员

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

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