操作數類型數據存放
存放方式
數據存放
三個字長:
機器字長:CPU一次能處理的二進制數據的位數。
指令字長:一個指令中包含二進制代碼的位數。
存儲字長:一個存儲單元存儲二進制代碼的長度。
注:這些長度都是字節的整數倍
一般等於內部寄存器的位數。
單字長指令:指令長度=機器字長
半字長指令、雙字長指令
通常一次並行取出一個存儲字,按字節尋址時,通過移位截取存儲字中的一個字節。
存放方式
一:
二:
三:折衷???????
尋址方式
尋找指令或操作數的有效方式
確定本條指令的操作數地址
下一條欲執行指令的指令地址
尋址方式:
- 指令尋址
- 數據尋址
指令尋址
始終由程序計數器PC給出
順序尋址
(PC)+1->PC
永遠都是+1?不一定,假設內存單元按照字節(8Bit)進行編址單位,如果指令是32位(4個字節)的,這時候就不是+1了,是+4。64位就+8
跳躍尋址
由轉移指令指出
例如:
數據尋址
確定本條指令的數據地址,
如何在指令當中表示一個操作數的地址
**形式地址 **指令字中的地址
**有效地址 **操作數的真實地址
約定 指令字長 = 存儲字長 = 機器字長
隱含尋址
不明顯地給出操作數的地址,而是在指令中隱含着操作數的地址
優點:有利於縮短指令字長。
缺點:需增加存儲操作數或隱含地址的硬件
了解即可
立即尋址
指令特征#
直接尋址
間接尋址
寄存器尋址
寄存器間接尋址
小節回顧
偏移尋址
基址尋址
將CPU中基址寄存器(BR)的內容加上指令格式中的形式地址A而形成操作數的有效地址,即EA=(BR)+A
面向操作系統
隱式的(專門就有的寄存器)
有利於多道程序設計
編制浮動程序。
變址尋址
有效地址EA等於指令字中的形式地址A與編址寄存器IX的內容相加之和,即EA=(IX)+A,其中IX為變址寄存器(專用),也可用通用寄存器做編址寄存器。
所有過程和基址尋址差不多。
但是是面向用戶的
適合編寫循環程序
基址尋址+變址尋址
相對尋址
把程序計數器PC的內容就加上指令格式中的形式地址A而形成操作數有效地之,即EA=(PC)+A,其中A是相對於當前指令地址的位移量,可正可負,補碼表示。
相對尋址舉例:
堆棧尋址(不是很重要)
兩個操作數都可以隱含起來
操作數存放在堆棧中,隱含使用堆棧指針(SP)作為操作數地址。
CISC和RISC
CISC: Complex Instruction Set Computer
一條指令完成一個復雜的基本功能
代表:x86架構,主要用於筆記本、台式機
RISC: Reduced Instruction Set Computer
精簡指令集
一條指令完成一個基本“動作”;多條指令組合完成一個復雜的基本功能。
代表:ARM架構,主要用於手機、平板等。
例如單詞輸出