服务与支持 |咨询热线 0931-8733767
  • 金城在线
  • 公司简介
  • 发展历程
  • 企业文化
  • 售后服务
  • 工作机会
  • 联系我们

汇编指令集与cpu指令集的关系

来源:发布时间:2018-1-3 10:36:57

汇编是助记符,因为人要自己去记机器码实在太伤了,所以用一些稍微好看的的符号记一下。这里面有这么几个point:


1. 一个汇编指令会对应多种不同的机器码,比如MOV指令,实际编码的时候是分8位 16位 32位 64位,是寄存器->寄存器 内存-> 寄存器 寄存器->内存, 内存又要考虑各种寻址方式,变成机器码的时候都有出入,所以汇编实际上还有一定程度的抽象,把一组含义接近的机器码统一成一个指令


2. 不是所有机器码都能找到汇编何其对应的,因为存在一个指令边界的问题:每条指令不只是一个byte,所以使用机器码的时候,完全可以jmp到别的指令的中间开始执行,这种情况要用汇编来表示是很困难的。


3. 具体到编译器,把生成编译器汇编代码 汇编器生成机器码两者分开是有好处的,因为这样你的编译器就不用处理汇编器那一坨复杂的编码的逻辑了


4. 当然完全可以编译器不产生汇编,直接生成机器码,印象中tcc就是这么干的


相关文章
  • 预约专家

    为您提供一对一解决方案
    立即预约
  • 售前咨询

    周一至周五9:00——17:30
    立即咨询
  • 联系方式

    13919049954

    全国7×24小时热线服务
  • 免费报价

    专属专业顾问1对1报价
    免费报价