naming conventions for registers

6
331 Practice Exam.1 Fall 2002 Naming Conventions for Registers 0 $zero constant 0 (Hdware) 1 $at reserved for assembler 2 $v0 expression evaluation & 3 $v1 function results 4 $a0 arguments 5 $a1 6 $a2 7 $a3 8 $t0 temporary: caller saves . . . (callee can clobber) 15 $t7 16 $s0 callee saves . . . (caller can clobber) 23 $s7 24 $t8 temporary (cont’d) 25 $t9 26 $k0 reserved for OS kernel 27 $k1 28 $gp pointer to global area 29 $sp stack pointer 30 $fp frame pointer 31 $ra return address (Hdware)

Upload: yen

Post on 05-Jan-2016

27 views

Category:

Documents


6 download

DESCRIPTION

0$zero constant 0 (Hdware) 1$atreserved for assembler 2$v0expression evaluation & 3$v1function results 4$a0arguments 5$a1 6$a2 7$a3 8$t0temporary: caller saves . . .(callee can clobber) 15$t7. 16$s0callee saves . . . (caller can clobber) 23$s7 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Naming Conventions for Registers

331 Practice Exam.1 Fall 2002

Naming Conventions for Registers

0 $zero constant 0 (Hdware)

1 $at reserved for assembler

2 $v0 expression evaluation &

3 $v1 function results

4 $a0 arguments

5 $a1

6 $a2

7 $a3

8 $t0 temporary: caller saves

. . . (callee can clobber)

15 $t7

16 $s0 callee saves

. . . (caller can clobber)

23 $s7

24 $t8 temporary (cont’d)

25 $t9

26 $k0 reserved for OS kernel

27 $k1

28 $gp pointer to global area

29 $sp stack pointer

30 $fp frame pointer

31 $ra return address (Hdware)

Page 2: Naming Conventions for Registers

331 Practice Exam.2 Fall 2002

Review: MIPS ISA, so farCategory Instr Op Code Example Meaning

Arithmetic

(R & I format)

add 0 and 32 add $s1, $s2, $s3 $s1 = $s2 + $s3

subtract 0 and 34 sub $s1, $s2, $s3 $s1 = $s2 - $s3

add immediate 8 addi $s1, $s2, 6 $s1 = $s2 + 6

or immediate 13 ori $s1, $s2, 6 $s1 = $s2 v 6

Data Transfer

(I format)

load word 35 lw $s1, 24($s2) $s1 = Memory($s2+24)

store word 43 sw $s1, 24($s2) Memory($s2+24) = $s1

load byte 32 lb $s1, 25($s2) $s1 = Memory($s2+25)

store byte 40 sb $s1, 25($s2) Memory($s2+25) = $s1

load upper imm 15 lui $s1, 6 $s1 = 6 * 216

Cond. Branch (I & R format)

br on equal 4 beq $s1, $s2, L if ($s1==$s2) go to L

br on not equal 5 bne $s1, $s2, L if ($s1 !=$s2) go to L

set on less than 0 and 42 slt $s1, $s2, $s3 if ($s2<$s3) $s1=1 else $s1=0

set on less than immediate

10 slti $s1, $s2, 6 if ($s2<6) $s1=1 else $s1=0

Uncond. Jump (J & R format)

jump 2 j 2500 go to 10000

jump register 0 and 8 jr $t1 go to $t1

jump and link 3 jal 2500 go to 10000; $ra=PC+4

Page 3: Naming Conventions for Registers

331 Practice Exam.3 Fall 2002

Question I:

ProcessorMemory Addressable

locations

read addr/write addr

read data

write data

232

Assume that memory has 232 addressable locations, and MIPS is 32-bit architecture. Please specify the width of the following address and datalines between the processor and the memory.

Page 4: Naming Conventions for Registers

331 Practice Exam.4 Fall 2002

Question II:

Question 3.10 on page 199 (PH text book)

Question 3.5 on page 198 (PH text book)

Page 5: Naming Conventions for Registers

331 Practice Exam.5 Fall 2002

Question III:

What if the branch destination is further away than can be captured in 16 bits? What can the assembler do to alleviate this problem?

beq $s0, $s1, L1

Page 6: Naming Conventions for Registers

331 Practice Exam.6 Fall 2002

Question IV:

Give the machine code for the following assembly code segment: (you mayuse the combination of decimal, hexidecima, and/or binary encodings.)

0x00400040 Loop: add $t1, $s3, $s3add $t1, $t1, $t1add $t1, $t1, $s6lw $t0, 0($t1)

bne $t0, $s5, Exitadd $s3, $s3, $s4

j LoopExit: