2011年11月8日 星期二

機械語言的世界

電腦架構的基本結構:



CPU:內部是由控制單元與運算單元所組成
main storage unit:俗稱記憶體
data bus :資料匯流排 (資料傳輸路徑)
address bus :位址匯流排(記錄資料應存在哪個位址)


機械語言的執行過程:


指令位址暫存器(instruction address register):掌管 程式指令儲存在記憶體上的哪個位置
指令位址暫存器(instruction address register)=操作碼(operation code)+位址(address)
指令解碼器(instruction decoder):
    操作碼會被傳遞至 指令解碼器 加以解碼
    指令的儲存位址會被 位址運算單元 計算出來








從CPU中,機械語言從編譯至處理得過程如下:


從記憶體讀取指令的動作稱為取出(fetch)
指令的解析動作稱為解碼(decode)
依據解碼後的指令引發實際的動作的作業稱為執行(execute)


電腦看得懂2進位數
為記憶方便用16進位數
舉例:0101110110011110 => 5D9E
十六進位可將四位元的二進位數當成一個十六進位的位元
舉例:0101|1101|1001|1110 => 5|D|9|E


位元(bit)
位元組(byte)=8位元(bit)=>octet (通訊領域上的用法)


在電腦內部,所有從鍵盤輸入至電腦的字元都是用二進位數來解讀的


一般情況(ANSI規定):ASCII(American Standard Code for Information Interchange)
在日本: Shifted JIS Code
在PC-UNIX和UNIX硬體上(AT&T制定): ECU(Extended UNIX Code)
漢字(台北市電腦公會多家業者制定):Big5


XOR,AND,OR => half-adder,full-adder



半加法器(half adder):一個加法器可執行兩個位元的加法運算(一個被加數,一個加數),此加法器稱為半加法器。
全加法器(full adder):一個加法器可執行三個位元的加法運算(一個被加數、一個加數以及一個進位位元),此加法器稱為全加法器。



輸入變數加數與被加數,x代表加數以及y代表被加數 。
輸出變數:和與進位,S表示和以及C表示進位

機械語言所使用的位址:
address format :將位址分配給可讓電腦能夠運做的指令或資料的方法
address space:記憶體空間又稱位址空間

實體位址(physical address) :整個記憶體空間為基準的具體位置(絕對位址)
邏輯位址(logical address)  :將劃分過的特定記憶體空間在加以劃分後的位址

位址修改(address modification):決定資料存取的作業
effective address:被位址修改作業所指定的記憶體的實際位址稱為 有效位址

位址修改及其種類:
    絕對定址法(absolute addressing):求出最後有效位址,再根據此位址決定出資料的存取對象
    相對定址法(relative addressing):對兩個位址(base address + offset)加以管理,再根據這兩   個位址加以計算,以決定出有效的位址

絕對位址的操作方法:
直接定址法(直接指定資料存取的位址)
間接定址法(管理儲存在記憶體內的有效位址,再透過這個有效位址間接的指定存取位址)
    ex:對某個記憶體位址所指定的位址逐次進行反覆存取的作業,這時只要以某個記憶體空間管理這些位址並透過此記憶體位址來指定存取位址的話,便無須一一記住實際的位址了
暫存器直接定址法
暫存器間接定址法


相對定址法(relative addressing)管理下面兩個位址:
    基底位址(base address):存取位址空間的基準點
    位移量(offset):從基底位址的相對變化量

相對定址法的操作方法:
索引定址法(index)
索引間接定址法
基底索引定址法
程式計數器相對定址法
程式計數器相對索引定址法


立即定址法(immediate addressing):
在程式設計的作業中指不進行 位址修改 的作業
也就是說,這是說不指定儲存位址,而是在指令的位址內儲存有所要的資料之狀態
ex:若在機械語言中,發出 "將第100號位址載入至暫存器內的指令",則直接將第100號位址所存的資料值5存入暫存器中,之後若第100號位址的資料值改變成7 ,也不影響到暫存器中已存的資料值5

暫存器:容量小但能以高速讀寫資料的cpu內部的記憶區域
暫存去雖是CPU內部的儲存區域,但也是要靠邏輯運算才能達到記憶功能
需靠NOR電路與相反值輸出電路所形成的,這種電路正反器(FF,Flip-Flop)
具有記憶功能的邏輯電路稱為循序電路(sequential circuit)

暫存器的種類:
AX:累積暫存器 ,指令暫存器(instruction register):記憶指令,記憶運算結果
BX:基底暫存器:記憶執行中程式的開頭位址
CX:計數暫存器:
DX:資料暫存器:
index register = Program Counter:記憶CPU內部記憶體的位址資訊
status register = Flag Register(FR):狀態暫存器






沒有留言:

張貼留言