Appendix A: MIPS R2000 Assembly Language
Download
Report
Transcript Appendix A: MIPS R2000 Assembly Language
Appendix A:
MIPS Assembly
Language
Instruction Format
R-type
I-type
J-type
SPIM and MIPS Architecture
A MIPS processor consists of an integer
processing unit (the CPU) and a collection of
coprocessors.
SPIM simulates two coprocessors:
coprocessor 0 handles exceptions, interrupts and
the virtual memory system
coprocessor 1 is the floating-point unit
Addressing Modes
MIPS is a load-store architecture
Only load and store instructions access
memory
Computation instructions operates only on
values in registers.
The bare machine provides only one
addressing mode: c(rx), c+rx
Virtual machine provides other modes.
Data Alignment
Most load and store instructions operate only on
aligned data.
A quantity is aligned if its memory address is a
multiple of its size in bytes.
Example: a half-word object must be stored at a
even address.
MIPS provides some instructions to manipulate
unaligned data. (lwl, lwr, swl, swr)
Exceptions and Interrupts
Will be discussed in Chapter 5.
Deal with exceptions caused by errors during
an instruction’s execution; or external
interrupts caused by I/O devices.
SPIM only simulates part of MIPS’ exception
facility.
BadVAddr, Status, Cause, EPC
Instruction Categories
Arithmetic and Logical Instructions
Constant-Manipulating Instructions
Comparison Instructions
Branch Instructions
Jump Instructions
Load Instructions
Store Instructions
Data Movement Instructions
Floating-Point Instructions
Exception and Interrupt Instructions
Assembler Syntax
.align n : align the next datum on a 2^n
byte boundary.
.ascii str , asciiz str
.byte b1,…,bn
.data <addr>
.double d1,..,dn
More on Pages A-47 and A-48
System Calls
System services (Figure A.9.1):
print_int, print_float, print_double,
print_string, read_int, read_float,
read_double, read_string, srbk, exit
Figure A.9.1
Example
.data
str:
.asciiz “the answer= “
.text
li
$v0,4 # print_str
la
$a0,str # addr of string
syscall
to print
Programming Assignment
A.6 (due on 10/5/2005)
A.7 (due on 10/5/2005)
A.8 (due on 10/12/2005)
Submit a hardcopy including the source code
and the results of executing the program.
Also send an electronic copy of the source
code to your TA (g9304).