BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #71519同步于 2013/6/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

Re: 汇编得到的代码是用的什么指令集表示

huangzz
2013/6/3镜像同步6 回复
应该和编译器有关,例证就是交叉编译。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
FaceBasin机器人#1 · 2013/6/3
你要是用了交叉编译工具链的话结果就属于目标机指令集了。
hewei机器人#2 · 2013/6/3
嗯,去了解了下交叉编译,大概明白了,谢谢 【 在 huangzz 的大作中提到: 】 : 应该和编译器有关,例证就是交叉编译。
tonyjansan机器人#3 · 2013/6/4
看了你的问题。。。我有点糊涂你到底想问什么了。。。 首先区分下几个概念:汇编代码、汇编&反汇编、指令集。 先解释最基础的指令集,指令集的种类是根据芯片的种类、制式而定的(比如PC Intel指令集、ARM系列指令集等),不同芯片架构的设备,即便使用的操作系统是完全相同的,但是在其上运行的执行文件则是完全不同的操作指令!(这也就是为什么Windows RT上不能跑很多pe程序~)但这些操作指令可能可以转换成相同或者相似的助记符表达。另外顺带再解释助记符,例如:mov eax, 1 即把立即数1放入寄存器eax,助记得概念表达的十分清楚,就是把汇编代码用一种近似语言的形式表达出来~ 汇编&反汇编,这两个词在这里指的是一个代码转换过程,汇编是指把助记符语法(通常意义上的编程汇编代码)转换成机器指令,反汇编则是把机器指令转换成助记符的语法形式,你问题中提到的“经常看到有人通过看汇编代码分析代码问题”应该是指得反汇编的过程吧? 【 在 hewei 的大作中提到: 】 : 不同的芯片指令集不一样,那汇编得到的代码是用什么指令集表示的啊 : 因为经常看到有人通过看汇编代码分析代码问题,突然想到这个问题
hewei机器人#4 · 2013/6/4
用gcc命令 -save-temps 直接就能得到编译过程中的.i文件和.s文件 .s就是汇编语言源代码文件,这么理解的话其实应该说这个过程是编译吧,是在汇编之前的步骤了 还是说大家习惯是从机器码做反汇编再分析呢 【 在 tonyjansan 的大作中提到: 】 : 看了你的问题。。。我有点糊涂你到底想问什么了。。。 : 首先区分下几个概念:汇编代码、汇编&反汇编、指令集。 : 先解释最基础的指令集,指令集的种类是根据芯片的种类、制式而定的(比如PC Intel指令集、ARM系列指令集等),不同芯片架构的设备,即便使用的操作系统是完全相同的,但是在其上运行的执行文件则是完全不同的操作指令!(这也就是为什么Windows RT上不能跑很多pe程序~)但这些操作指令可能可以转换成相同或者相似的助记符表达。另外顺带再解释助记符,例如:mov eax, 1 即把立即数1放入寄存器eax,助记得概念表达的十分清楚,就是把汇编代码用一种近似语言的形式表达出来~ : ...................
tonyjansan机器人#5 · 2013/6/4
这种情况只适用于有源码的情况下,但很多时候都是需要dump的,甚至是反编译~ 【 在 hewei 的大作中提到: 】 : 用gcc命令 -save-temps 直接就能得到编译过程中的.i文件和.s文件 : .s就是汇编语言源代码文件,这么理解的话其实应该说这个过程是编译吧,是在汇编之前的步骤了 : 还是说大家习惯是从机器码做反汇编再分析呢 : ...................
hewei机器人#6 · 2013/6/4
这样 多谢啦 【 在 tonyjansan 的大作中提到: 】 : 这种情况只适用于有源码的情况下,但很多时候都是需要dump的,甚至是反编译~