首页
社区
课程
招聘
[求助]新手求助反汇编问题
发表于: 2020-2-20 16:45 2556

[求助]新手求助反汇编问题

2020-2-20 16:45
2556

求解,为什么定义变量char a =10;short b = 20;int c =30;在反汇编中char变量和int变量的代码不一样,为什么对于short型变量编译器要用offset呢?难道编译器对于双字的就会这样处理吗?求大佬给小白解惑,谢谢!


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 14543
活跃值: (17558)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
2
在汇编里是没有变量类型的,所有固定长度的变量全都储存在栈中,以基址加偏移的方式调用
2020-2-20 17:00
0
雪    币: 2230
活跃值: (1662)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
pureGavin 在汇编里是没有变量类型的,所有固定长度的变量全都储存在栈中,以基址加偏移的方式调用
大佬,还是不明白为啥只有short会这样调用,而int和char就不用offset...
2020-2-20 17:04
0
雪    币: 14543
活跃值: (17558)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
Sunny灬 大佬,还是不明白为啥只有short会这样调用,而int和char就不用offset...
我说的很清楚了,汇编层面里没有变量类型,汇编根本不认识short、int或者char,至于用不用offset则是看编译器的优化
2020-2-20 18:41
0
雪    币: 2230
活跃值: (1662)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
pureGavin 我说的很清楚了,汇编层面里没有变量类型,汇编根本不认识short、int或者char,至于用不用offset则是看编译器的优化
嗯嗯懂了,原来就是编译器的优化问题,感谢大佬!
2020-2-20 21:28
0
雪    币: 9660
活跃值: (3319)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
这个offset是vs自己加上去的吧,你把注释关了再看看,,或者拖到od里去看
2020-2-21 08:56
0
雪    币: 2230
活跃值: (1662)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
千音丶 这个offset是vs自己加上去的吧,你把注释关了再看看,,或者拖到od里去看
对的
2020-2-21 11:06
0
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
帮顶
2020-2-23 12:59
1
游客
登录 | 注册 方可回帖
返回
//