• [CPU] 有关于指令存储器IR


    简介

    CPU个人笔记,这篇包含了CPU中指令存储器IR的相关内容。

    正文

    IR 全名是 Instruction Register,用于存储指令

    什么是指令?

    指令,会告诉cpu:

    • 你要做什么操作(MOV ADD ...)?
    • DST 和 SRC 都是什么形式的?

    指令长什么样子?

    八位指令的形式是:xxxx xxxx

    指令有什么形式?

    所谓形式,就是寻址方式。
    A 寄存器数字 :叫做 寄存器寻址。
    5 纯数字:叫做 立即数寻址(其实就是给数字,严格不能叫做寻址)。
    [5] 纯数字在框框中:叫做 直接寻址。看到框框,意味着数据在存储器中,而里面的数字,就是说是在存储器的具体地方。
    [B] 寄存器在框框中:叫做 寄存器间接寻址。偏移的数字没有直接给出,而是存储在了寄存器中。

    指令也分成不同形式:

    • 二地址指令 MOV A,5;
      形式 xxxx [aa][bb]
    • 一地址指令 INV A;
      形式 xxxx xx[aa]
    • 零地址指令 HLT;
      形式 xxxx xxxx

    来个具体例子?

    前提设定

    AM_INS = 0 # 00 直接数
    AM_REG = 1 # 01 寄存器寻址
    AM_DIR = 2 # 10 直接寻址
    AM_RAM = 3 # 11 寄存器间接寻址
    
    MOV = 1 # 0001 具体操作 op (假设)
    

    有一段代码是:
    MOV A,5;
    经过编译后,可以得到
    [0001 0100, A的标识,5]
    其中:
    ir = 0001 0100, dst = A的标志, 数字 5

    通过下面的代码,可以从ir中提炼出信息:

    op = ir & 0xf0 # 提取 0001 -> 是 MOV 操作
    amd = (ir >> 2) & 3 # 提取 01 # 知道DST是寄存器 
    ams = ir & 3 # 提取 00 # 知道SRC是数字
    
  • 相关阅读:
    安全模式下卸载windows installer打包的软件(转)
    OAF页面集成条形码或者二维码
    记一次客户生产环境供应商门户服务器无法访问
    QML显示圆形图片
    QML加载gif
    QML之信号与槽
    QML访问C++类内部
    QML使用C++对象
    C++条件变量
    C/C++程序所占用内存区域
  • 原文地址:https://www.cnblogs.com/kykai/p/15449157.html
Copyright © 2020-2023  润新知