第二章 計算機指令
- 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