High-level source(C/C++), transformed by
compiler to:
Assembler language program, transformed by
assembler to:
Object file in machine language, transformed
with other object files by linker to:
Executable module, loaded into a computer by
loader and executed.
MIPS Machine Language (Chapter 3)
Basic types
R-type (register), usually 3 registers (arithmetic, logical,
slt, jr)
I-type (immediate), lw, sw,
beq, bne, addi,
lui (uses low order 16-bit 2s-complement constant)
J-type (jump), j, jal
(Uses low order 26-bit constant, as a word address.
Get a 28-bit constant as a byte address.)
Hand conversion of machine language into assembly (dis-assembly)
[Not emphasized, since this is in Lab 8]
Hand conversion of assembly into machine language (assembly)
[Not emphasized, since this is in Lab 8]
Construction of NAND, NOR, NOT, AND, OR gates from CMOS transistors
Combinational Logic (B.1, B.2, B.3)
Truth tables, boolean algebra, logic equations
AND, OR and NOT gates
Combinational logic
Decoders
Multiplexors
Create logic circuit to represent arbitrary
truth table. (Skip PLAs, Don't Cares)
Possible Questions
(see also previous exams online):
About binary integers (especially 2s complement)
and about formats for doubles.
Asking for MIPS assembler programs, including
loops, arrays (loads and stores), functions (including
register conventions and saving/restoring registers using the stack).
Use of other assembler instructions, including
slt and la (and how it uses
lui and ori to create
a 32-bit constant).
About other pseudo-instructions.
Format of MIPS machine instructions.
About the assembly process.
About the construction of gates for CMOS transistors (from handout).
About converting a truth table to a combinational logic circuit.
Multiplexors, decoders.
Consider the following assembler instruction:
beq $t0, $t1, Label
... # a large number of instructions
Label:
This instruction will not work in case Label is "too
far away." Say precisely how far "too far away" is.
(Be sure to say whether your answer is in bytes or words.)
In case Label is too far away as in (b) above,
show how the beq instruction could be changed to two
instructions that would work unless Label is
really a long ways off.