110 likes | 217 Views
ACOE301: Computer Architecture II Labs. Lab conduct. Time: 1 period/week Location: Room 12 Material: MIPS Assembly Equipment: SPIM MIPS emulator, PC Deliverables: Lab papers with source code and answers to questions Deliverable submission mode: e-learning page. SPIM.
E N D
Lab conduct • Time: 1 period/week • Location: Room 12 • Material: MIPS Assembly • Equipment: SPIM MIPS emulator, PC • Deliverables: Lab papers with source code and answers to questions • Deliverable submission mode: e-learning page
SPIM • a self-contained simulator that runs MIPS32 programs • reads and executes assembly language programs • provides a simple debugger and minimal set of operating system services • does not execute binary (compiled) programs. • Latest version is QTSPIM http://spimsimulator.sourceforge.net/
Advantages of using a Simulator • You can learn the language without having to buy a MIPS-based computer • The simulator provides debugging features • single stepping through aProgram • watch the contents of the registers change as each instruction executes • look at the contents of memory as the instructions execute • setbreakpoints • programming mistakesdo not cause themachine running the simulation to crash • Disadvantage: Slow
Assembly language • One-to-one relationship with machine language unlike high-level languages • Many lines of code even for simple programmes • Requires at least some knowledge of the microprocessor architecture, memory structure and operating system • Not portable (source files will not run on a different architecture microprocessor)
Why use Assembly Language • Traditionally, more efficient use of the main memory • Less memory required • Programs execute faster • Traditionally, avoid redundant instructions inserted by compilers. • Direct access to the hardware of the computer, • Usually not supported or even prevented by compilers. • Access to the microprocessor’s internal control registers. • Embedded systems have tight constraints on performance, memory size and power consumption
Additional Reasons for Learning Assembly Language • Understand the microprocessor architecture • Understand the hardware/software interface
Typical Assembly Language Instruction LOOP:add$3, $3, $2 ;$3<-$3+$2 Label (optional) Opcode Destination operand Source operand(s) Comment (optional)
Assembler Directives • Directives are instructions given by the programmer to the assembler on how to assemble the program. • Directives are not part of the instruction set of the microprocessor. • The use of directives might vary from assembler to assembler. • Some MIPS assembler directives: • .data declares a data memory segment where you can declare ‘variables’ • .text declares a code memory segment where a program is stored • .word declares word size (32-bit) variables or constants • .byte declares byte size (8-bit) variables or constants • .ascii declares a non null-terminated ascii string • .asciiz declares a null-terminated ascii string