Assembly Language Friday, Week 5 Monday, Week 6
Assembly Language Set of mnemonic names for the instructions in a particular computer's machine language. Works on accumulator and memory locations in the computer. Translated into binary instructions.
Pippin STO X Store accumulator value in memory location X LOD X Load contents of memory location X into accumulator LOD #X Load value X into accumulator HLT Halt execution ADD X Add contents of memory location X to accumulator ADD #X Add value X to accumulator
Pippin Pippin has an accumulator - a place to store intermediate values during computation. Similar to the calculator but we have memory locations to store values and to load values.
Sample Program LOD #2 STO 129 ADD 129 STO 129 ADD #3 STO 130 HLT
Exercise What would be the assembly instructions to add 1 to the contents of memory location 130? STO X Store acc value in mem loc X LOD X Load contents of mem loc X into acc LOD #X Load value X into acc HLT Halt execution ADD X Add contents of mem loc X to acc ADD #X Add value X to acc
Exercise Solution LOD #1 ADD 130 STO 130 HLT
Exercise What would be the assembly language instructions to add the values in memory locations 129 and 132, putting the answer in 128? STO X Store acc value in mem loc X LOD X Load contents of mem loc X into acc LOD #X Load value X into acc HLT Halt execution ADD X Add contents of mem loc X to acc ADD #X Add value X to acc
Exercise Solution LOD 129 ADD 132 STO 128 HLT
Machine Language Assembly language still cannot be read directly by the computer - it’s not in binary. Assembly language commands need to be translated into binary commands called machine language.
Pippin Machine Language LOD X LOD # ADD X ADD # STO HLT Memory location Memory location
Example Program LOD ADD # STO HLT
Exercise LOD X ADD Y STO Y HLT LOD X LOD # ADD X ADD # STO HLT Translate above into machine language. Memory location X Memory location Y
Exercise Solution LOD X ADD Y STO Y HLT
Exercise Write an assembly program that calculates Y=X+3. LOD X LOD # ADD X ADD # STO HLT Translate the program into machine language. Memory location X Memory location Y
Exercise Solution LOD X ADD #3 STO Y HLT
PIPPIN Lab This week’s lab will be to use a simulator called PIPPIN to write assembly language programs and change them to machine language. Let’s take a look at PIPPIN.PIPPIN Do Pre-Lab AssignmentPre-Lab Assignment
JMP All commands seen so far in PIPPIN are sequential. We have no way to make a decision or to skip some statements. JMP X command says always jump to the command labeled X. JMZ X checks the accumulator first - if it’s 0 then we jump; otherwise don’t jump.
Example LOD #3 STO X LOD #0 STO Z LOOP:LOD Z ADD Y STO Z LOD X SUB #1 STO X JMZ END JMP LOOP END:LOD Z STO Y HLT
In JavaScript The same program in JavaScript would be the following: var z=0; for (var x=3; x!=0; x--) z += y; y = z; Or the following: y = y*3;