计算机组成与设计

第二章 计算机指令

  • 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
计算机组成与设计_第1张图片
屏幕快照 2016-09-01 下午3.26.26.png

你可能感兴趣的:(计算机组成与设计)