Exam 1
direct addressing visualized
(EA) = (A)
ACC
(accumulator machine) has one processor register, requires load/operate/store instructions
ALU
(arithmetic logic unit) functional unit that executes arithmetic and logical computations (has no registers)
CPU
(central processing unit) two parts: 1) datapath: data registers (temp memory), and function units 2) control logic: sequencing of datapath actions
DRAM
(dynamic random access memory) one-dimensional, main memory
von Neumann cycle
(fetch/execute cycle) 1) fetch instruction from memory 2) fetch data required by instruction 3) execute instruction 4) store results in memory 5) repeat
MAR
(memory address register) CPU register in the bus interface unit that contains the ADDRESS of the memory word that should be read or written
MDR
(memory data register) CPU register in the bus interface unit that contains the VALUE that has been read from or should be written to memory
ROM
(read-only memory) "bootstrap" loader programs and basic I/O
SRAM
(static random access memory) cache memory
IR
- (instruction register) - holds current instruction
PSR
- (processor status register) - indicates results of previous operations (flags)
What changes in the prefixes of binary measurement?
- add an "i" to each regular prefix symbol - take the first two letters of the prefix and add "bi"
indirect addressing
- address field points to memory cell containing the address (pointer to) of the operand
direct addresing
- addressing mode in which the instruction holds the address of the operand (memory word containing the data which is to be accessed) - used for global variable in HLL - PROS: single memory reference to access data, more flexible than immediate
instruction
- basic unit of work in a program - composed of opcode and (possibly) one or more operands
immediate addressing
- instruction contains the value to be used - located in the address field of the instruction - stored in memory immediately after the instruction opcode - kind of like using a constant in HHL - PROS: fast, no memory reference needed - CONS: not flexible, value fixed at compile time
assembler
- program that takes assembly instructions and converts to machine code - creates an object file
assembly language
- symbolic, low-level language of instructions that are mnemonic codes for corresponding machine language instructions - translated by an assember into machine language and is in approximately one-to-one correspondence - instructions composed of opcodes and operands
What does the assembler do on the first pass?
1) increment a location counter for each statement 2) collect label definitions into symbol table w/ corresponding location counter values
What does the assembler do on the second pass?
1) using symbol table, it translates assembly language statements to machine code
M U N P F A powers:
10 ^ -3 -6 -9 -12 -15 -18 (3--)
K M G T P E powers:
10 ^ 3 6 9 12 15 18 (3++)
Ki Mi Gi Ti Pi Ei powers:
2 ^ 10 20 30 40 50 60 (10++)
Why do assemblers have a two pass structure?
Because of forward references.
Why do forward references require a two-pass structure?
Because you encounter a "use" before its "definition" and thus cannot immediately translate the label into its memory address.
PC (program counter)
CPU register that contains the ADDRESS of the memory word from which the next instruction will be FETCHED (points to next instruction)
indirect addressing visualized
EA = (A)
What is the acronym for the big prefixes?
K M G T P E (Karen Made Great Time Pissingoff Eugene)
What is the acronym for the small prefixes?
M U N P F A (Many Unnecessary Names Provide Funny Acronyms)
Who originated the stored program concept?
Mauchly and Eckert
Who was credited with the store program concept?
Von Neumann
mnemonics
abbreviation for an operation
pseudo-op
assembly language statement that doesn't generate a machine instruction, but instead acts as a directive to the assembler
object code
code produced by compiler / assembler
address
consecutive binary integers (unsigned)
symbol table
first pass of accumulator - collects label definitions (variables) and assigns memory address based on counter
register
holds an instruction, storage address or data
branch
if accumulator value (some comparison to 0) branch to given label address
load
instruction that will make a copy of the value in a specified memory word and place it into the accumulator (or other register)
Ki Mi Gi Ti Pi Ei prefixes:
kibi mebi gibi tebi pebi exbi
K M G T P E prefixes:
kilo mega giga tera peta exa
What is the increment for all opcodes add, sub, load, store, and halt?
loc increment 2: add, sub, load, store loc increment 1: halt
load/store machine
machine design that contains a register file and for which the arithmetic/logic instructions identify the registers as sources/destinations rather than memory locations
M U N P F A prefixes:
milli micro nano pico femto atto
opcode
mnemonic name in assembly language or a number in an executable that identifies the operation
operand
name of register and/or info needed to generate memory address
stack machine
operands are on a stack, & push from memory / pop into memory
memory
physical device that stores information temporarily or permanently - contains series of bits grouped into addressable units - data is accessed in memory by naming memory addresses
store
stores value in accumulator at given memory address
label
symbolic name in an assembly program that is used to access data or as a branch target
machine language
the binary form of a program that is directly executed by the computer
K M G T P E numeric values:
thousand million billion trillion quadrillion quintillion
interpreter
translates and executes all at once
compiler
translates statements written in HLL into assembly
word
two-part, defines a symbol address and the value stored at the address
(loc) location counter
variable in the assembler program that contains the ADDRESS at which the next instruction or data word will be PLACED