• 计算机指令系统


    基本概念:

    指令字长:一条指令中所包含的二进制码的位数。主要取决于操作码长度、地址长度和操作数地址的个数

    机器字长:计算机依次能够处理的二进制数据的位数。

    一般情况下,机器字长是8的整数倍。指令字长不一定和机器字长一致。指令的字长可以小于机器字长,称为短格式指令,反之称为长格式指令;

    早期指令和机器字长相等,控制方式简单,指令字长固定;随着计算机发展,逐渐出现了变字长的指令。一台计算机可以兼容多种长度的指令

    -----

    指令一般由操作码和地址码两个部分组成        操作码+地址码

    1)操作码:说明该指令要执行的动作,也就是命令   长度可以是固定的,也可以是可变的

    2)地址码:三地址/二地址/一地址和零地址指令

    存在不同地址数的情况是因为不同指令要处理的情况不同。例如,三地址指令可能是需要将地址B、C的数相加再放入地址A,一地址指令可能是因为计算机隐含了另一个地址。如果操作数的地址隐含在SP这些指针里面,那么零地址也是可能的。

    此外,地址部分除了主存地址,放置寄存器地址也可用。   对于arm指令集,它拥有load/stored架构,在读写数据方面还有一些区别。

    ----------以16位机为例

    对于一套指令,操作码的长度影响指令条数。如果一套指令集只允许4位操作码,那它只可能有15种三地址指令,但是允许操作码变长,它还可拥有15条二地址/15条一地址和16条零地址指令

    -----------

    指令的寻址方式:

    1.指令寻址

    1)顺序寻址

         指令在主存中按顺序排列,依次执行。由PC寄存器记录地址,每次+1;

    2)跳跃寻址

       部分指令执行后需要跳转。此时需要用该指令携带的地址去替换PC寄存器的内容

    2.数据寻址

    1)立即数寻址 指令中自带数据

    2)直接寻址  指令里面有所需数据的直接地址

    3)间接寻址  指令里面带有间接地址,先在存储器中取出该地址内数据,再用数据作为地址取到所需数据

    4)寄存器寻址

    5)寄存器间接寻址

    6)变址寻址  指令中指定一个寄存器和偏移量  寄存器的值+偏移量形成地址

    7)基址寻址

    8)基址变址寻址

    9)相对寻址  PC寄存器的值加上偏移量构成实际地址

    10)堆栈寻址通过SP指针访问堆栈获取操作数,获得地址

  • 相关阅读:
    $.data(elem, key, val) 和 elem.data(key, val)
    支付宝调起,应用签名失败,请联系商家
    关于load方法加载时间问题
    你学过的每一样东西,你遭受的每一次苦难,都会在你一生中的某个时候派上用场。 ——佩内洛普·菲兹杰拉德 《离岸》
    iOS视图生命周期总结(别人博客荡来的)
    闲言(诗三百三首)
    iOS 点击WebView中的链接,跳转指定控制器
    IOS 版本号大小比较
    iOS二维码,条形码扫描问题
    IOS使用个推遇到的坑
  • 原文地址:https://www.cnblogs.com/namezhyp/p/14161900.html
Copyright © 2020-2023  润新知