計算機組成與設計

第二章 計算機指令

  • MIPS匯編語言
//將變量b,c,d,e相加
add a. b. c 
add a. a. d
add a. a. e
//a = b + c;
//d = a - e;
add a. b. c
sub d. a. e
// f = (g + h) - (i + j);
add t0. g. h
add t1. i. j
sub f. t0. t1

在書寫指令時,盡管可以使用序號0到31標示相應的寄存器,但MIPS仍然約定:用一個"$"符后面跟兩個字符來代表一個寄存器。

// f = (g + h) - (i + j);
add $t0. $t1. $t2
add $t1. $t3. $t4
sub $t0. $t0. $t1

MIPS取指令的名字為lw,標示取字(load word),存儲指令是sw,即(store word)

//g = h + A[8];
lw $t0 .32($s3)
add $t0 .$s2 .$t0
sw $t0 .48($s3)

將常數 4 從存儲器中取出并加到寄存器 $s3 上,假設AddrConstant4是常數4的存儲器地址。

 lw $t0 .AddrConstant4( $s1 )  #$t0 = constant 4
add $s3 .$s3 . $t0            #$s3 = $s3 + $t0 ( $t0 == 4 )

一個避免取指令的辦法是使用另一個版本的算數指令,它的一個操作數是常數。這種有常數操作數的快速加指令叫做立即數加,或者寫作addi。把常數4加到寄存器$s3,只需要寫:

addi $s3 .$s3 .4  #$s3 = $s3 + 4
屏幕快照 2016-09-01 下午3.26.26.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容