計算機組成原理與介面技術筆記(一)
一、MIPS運算元
32個暫存器:用於快速存取,且只能對暫存器中的數執行算數操作2^30個儲存器字:只能通過資料傳輸指令訪問。
處理器只將少量的資料儲存在暫存器中,但儲存器有大量的資料元素,因此,複雜資料結構是存放在儲存器中的。
常數或立即數運算元
由於要使用常數必須先將其從儲存器中取出,這種操作效率低下。專門使用addi指令,這種有一個常數運算元的快速加法指令叫做立即數,這樣,只需寫成:
addi $s3,$s3,4;
例1:編譯一個運算元在儲存器中的C賦值語句
g=h+A[8];
lw $t0,8($s3);陣列基址在$s3中,偏移地址為8*4
add $s1,$s2,$t0;
例2:假設變數h放在暫存器$s2中,陣列A的基址放在$s3中。則A[12]=h+A[8];
lw $t0,32($s3)
add $t0,$t2,$t0;
sw $t0,48($s3);
二、MIPS組合語言
1.算術2.資料傳輸
3.邏輯
例如:
邏輯右移(sll):sll $t2,$s0,4;
0 | 0 | 16 | 10 | 4 | 0 |
op | rs | rt | rd | shamt | funct |
按位與(AND):and $t0,$t1,$t2
4.條件分支
beq register1,register2,L1該指令表示:register1和register2數值相等,則轉到標籤為L1的語句執行。
bne register1,register2,L1不相等則轉到標籤L1
例如將c語言if語句編譯後形成的MIPS程式碼。
if(i==j)f=g+h;else f=g-h;
bne $s3,$s4,Else
add $s0,$s1,$s2
j Exit
Else:sub $s0,$s1,$s2
Exit:
無條件跳轉
三、有符號數與無符號數
0000 0000 0000 0000 0000 0000 0000 0000=0;0000 0000 0000 0000 0000 0000 0000 0001=1;
0000 0000 0000 0000 0000 0000 0000 0010=2;
~~~~
0111 1111 1111 1111 1111 1111 1111 1101=2147483645
0111 1111 1111 1111 1111 1111 1111 1110=2147483646
0111 1111 1111 1111 1111 1111 1111 1111=2147483647
1000 0000 0000 0000 0000 0000 0000 0000=-2147483648
1000 0000 0000 0000 0000 0000 0000 0001=-2147483647
1000 0000 0000 0000 0000 0000 0000 0010=-2147483646
~~~~
1111 1111 1111 1111 1111 1111 1111 1101=-3
1111 1111 1111 1111 1111 1111 1111 1110=-2
1111 1111 1111 1111 1111 1111 1111 1111=-1
二進位制補碼中最大負數-2147483648沒有相應的正數與之對應,這種不平衡會帶來一定的麻煩,但是不會給硬體設計人員帶來困擾上述表示方法可以使用2的冪次的方式來表示正的和負的32位數:
(x31*(-2^31))+(x30*2^30)+(x29*2^29)+....+(x1*2^1)+(x0*2^0)
符號為被-2^31乘,其餘的為仍按前面的方法計算。
例如:
1111 1111 1111 1111 1111 1111 1111 1100
=(-1*2^31)+(1*2^20)+(1*2^29)+...+(1*2^2)+(0*2^1)+(0*2^0)
=-2147483648+2147483644
=-4
【注:求反的捷徑】
1.對2求反,然後通過對-2求反來對結果進行檢查。
取反再加1
2+(-2)=0
四、計算機指令的表示
指令的各部分都可以看成一個獨立的數,將這些數拼接在一起就形成了指令。暫存器$s0~$s7影射到暫存器16~23,同時,暫存器$t0~$t7對映到暫存器8~15.因此,$s0表示暫存器16,$s1表示暫存器17
例如:將一條MIPS組合語言指令翻譯成一條機器指令
add $t0,$t1,$t2的MIPS指令,首先給出其十進位制數表示形式。
0 17 18 8 0 32
(17=$s1)(18=$s2)(8=$t0),第五個欄位在這條指令中沒有用到,故置為0,第一個欄位和最後一個欄位(0和32)組合起來告訴MIPS計算機,該指令要完成加法運算。
也可以表示成二進位制的形式:
000000 | 10001 | 10010 | 01000 | 00000 | 100000 |
6位 | 5位 | 5位 | 5位 | 5位 | 6位 |
MIPS欄位
R型指令(用於暫存器):為了是討論變得簡單,給MIPS指令的欄位命名如下:
op rs rt rd shamt funct
6位 5位 5位 5位 5位 6位
.op:指令的基本操作,通常稱為操作碼。
.rs:第一個源運算元暫存器。
.rt:第二個源運算元暫存器。
.rd:用於存放操作結果的目的暫存器
.shamt:移位量。(移位指令和該術語,指令不使用該欄位)
.funct:功能。一般稱為功能碼,用於指明op欄位中操作的特定變式。
I型指令(用於立即數):立即數和資料傳送指令用的就是這種格式。
op rs rt constant or address
6位 5位 5位 16位
例如:lw $t0,32($s3) #temporary reg $t0 gets A[8]
這裡,19(暫存器$s3)存放在rs欄位,8(暫存器$t0)存放於rt欄位,32存放於address欄位
35 19 8 32
lw $s3 $t0 adress
相關文章
- 計算機組成原理與介面技術(二)計算機
- 計算機組成原理學習 筆記一計算機筆記
- 王道計算機組成原理筆記計算機筆記
- 在計算機組成原理中x,計算機組成原理計算機
- 計算機組成原理計算機
- 計算機組成原理之記憶體計算機記憶體
- 計算機組成原理 - 計算篇計算機
- 【重學計算機】計算機組成原理計算機
- 計算機組成與系統結構 cache 原理與計算計算機
- 計算機組成原理基礎知識(一)計算機
- (計算機組成原理)RISC與CISC的區別計算機
- 計算機組成原理-全套影片教程計算機
- 計算機組成原理-錯題本計算機
- 計算機組成原理——I/O通道計算機
- 計算機組成原理核心考點計算機
- 計算機組成與設計 讀書筆記——第三章計算機筆記
- 【計算機組成原理】第6章 計算機的運算方法計算機
- 計算機組成原理-全套視訊教程計算機
- 計算機組成原理學習 Part 2計算機
- 計算機組成原理複習0625計算機
- 計算機組成與體系結構-CPU組成計算機
- 計算機組成原理之匯流排設計計算機
- 計算機組成原理期末考試題計算機
- 計算機組成原理浮點數加減計算機
- 計算機組成原理常見英文縮寫計算機
- 計算機組成原理名詞指令縮寫計算機
- 【軟測試】(兩)計算機組成原理-cpu計算機
- 計算機組成原理期末複習小結計算機
- 微機原理與介面技術-第四章-組合語言程式設計組合語言程式設計
- 微機原理與介面技術-第八章常用介面技術
- 計算機科班生學計算機組成原理的意義何在呢?計算機
- 計算機系統的層次結構(計算機組成原理5)計算機
- 大話儲存——磁碟原理與技術筆記(一)筆記
- 計算機原理與介面技術-第三章8086微處理器計算機
- 唐朔飛《計算機組成原理》第一章-計算機系統概論計算機
- 1.1計算機組成計算機
- 彙編初識與計算機組成計算機
- 計算機組成原理01-系統概論計算機