c++如何实现movsx

firefly3233 2012-09-20 10:37:27
因为要比较:
int i = 3;//肯定比-1大.
WORD x = 0xffff;//已经存成这个数了.
if (i > x)
{
//....
}
一直满足不了
我想x 变成 0xffffffff
这正是汇编的movsx功能.如何做呢?不要给我说移位之类的.如果能用类型转换最好.
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
firefly3233 2012-09-25
  • 打赏
  • 举报
回复
确实如两位所说,变成movsx,maozefa的最好,因为比较强制转换时,才会movsx,而不会广泛的产生movsx.
大熊猫侯佩 2012-09-23
  • 打赏
  • 举报
回复
把word i 改为 short i
阿发伯 2012-09-22
  • 打赏
  • 举报
回复
if (i > x)改为if (i > (short)x)
firefly3233 2012-09-21
  • 打赏
  • 举报
回复
没办法,现暂用嵌入汇编:

WORD x = 0xffff;
int y;
[code=Assembly]_asm
{
push eax;
movsx eax, x;
mov y, eax;
pop eax;
}
[/code]

21,459

社区成员

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

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