200 likes | 485 Views
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. Pippin.
E N D
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 • 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
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
Exercise Solution LOD #1 ADD 130 STO 130 HLT
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
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 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. • Do Pre-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.
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;