免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1820 | 回复: 3
打印 上一主题 下一主题

[CPU及多核] CPU架构,汇编语言,汇编器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-08-10 23:36 |只看该作者 |倒序浏览
本帖最后由 for_truth 于 2016-08-10 23:38 编辑

对于汇编语言,我有过一个疑问:不同的CPU,它们采用的汇编语言的语法可不可以一样?如果可以采用同样的语法,可不可以使用同样的汇编器?不同架构的CPU之间,不仅它们的寄存器数目、位数不同,而且它们各自的电路设计逻辑也不一样,这就决定了它们的语法不可能一样,语法不可能一样也就决定了汇编器也不可能一样。而同一架构的同一系列的CPU,比如说x86系列,它们的寄存器数目、位数可能不一样,但是它们的电路逻辑是一样的,新的CPU在原有的电路逻辑上采用同样的逻辑进行了一些扩展,它们可以做到使用同样的汇编语法,同样的汇编器。

论坛徽章:
0
2 [报告]
发表于 2016-08-11 11:44 |只看该作者
不同架构的机器码不同,指令集也不一样,x86使用复杂指令集,arm使用精简指令集,arm64支持aarch32和aarch64两种执行状态,支持a32,t32和a64指令集,向下兼容arm32指令集;
同一架构的cpu,随着版本更新和指令集的扩展,编译器也是在向前迭代的,另外,arm64寄存器和指令集都有较大扩展,使用aarch64编译器,与arm32是不同的;
汇编器对源文件进行汇编操作,生成处理器能够识别的机器码,这里就涉及汇编器的输入和输出,不同架构机器码不同,输出也就不同,指令集和寄存器不同输入也就不同,使用的汇编器也就不同,不同架构的优化器也可能不同;操作系统不同,可执行程序格式不同,也可能导致汇编器不同;
当然汇编器只是一个软件程序,完全可以做到兼容不同架构,根据编译选项,使用指定架构的语法和词法分析器,优化器等,只是编译器的体积会比较大;
实际上同一套gcc源码就可以编出支持x86,arm,ppc等的编译器;



论坛徽章:
0
3 [报告]
发表于 2016-08-13 19:09 |只看该作者
~\(≧▽≦)/~,受教了。回复 2# chengxta


   

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2016-08-15 11:28 |只看该作者
汇编器就是和html一样,把同样的东西,一种形式转换成另外一种形式。理解了指令集的decode,就很好理解汇编器。
还有叫汇编指令为助记符的,我觉得非常形象。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP