zoukankan      html  css  js  c++  java
  • 计算机指令系统

    基本概念:

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

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

    一般情况下,机器字长是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指针访问堆栈获取操作数,获得地址

  • 相关阅读:
    NP数据库工具安装链接博客
    javascript mouseup , mousedown 和 拖拽事件 drag冲突的解决办法
    vscode 开启html代码自动补全
    spring 测试程序运行时间工具类StopWatch
    rabbmitmq 通过docker 方式启动无法打开管理界面的问题
    linux 测试端口开放工具 nmap
    html5--video 无法自动播放
    antd hooks --Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
    C#发送腾讯企业邮箱
    web安全漏洞简单总结
  • 原文地址:https://www.cnblogs.com/namezhyp/p/14161900.html
Copyright © 2011-2022 走看看