13919049954

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

作者:金城在线 日期:2018/1/3 10:36:57 人气:340

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


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


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


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


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


            金城在线专注网站、软件、APP、微信公众平台、小程序、抖音、头条等开发推广,如果您有这方面的需求或者不同的观点,欢迎联系交流。

    官方微信

    本文网址:http://lz.net.cn/zixunzhongxin/643.html
    读完这篇文章后,您心情如何?
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    上一篇: 面向对象的疑问
    更多>>网友评论
    发表评论