[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是數字


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM