n301/cs17machinelang n301.tplt Machine Language Instructions Instructions that can be decoded and executed by the control unit of a computer Operation code (op code) is a unique unsigned-integer code assigned to each machine language operation Address field(s) - the memory addresses of the values on which this operation will work Format Typical Machine Language Format - 16 bits Instruction Format Assume the op code for ADD is a decimal 9 Cell X correspond to address 99 (decimal)
op code (6bits or 26)
address (10 bits or 210)
Putting it all together
op code
address
001001
0001100011
Addressing Modes Direct addressing - regular addressing (ADD) Constant addressing - ADD-C Indirect addressing The ten data bits of the instruction (parameter) give the address of a location in memory. That location does not contain the data to be used in the instruction, but it contains the address of another memory location that does contain the data. Compare These operations compare two values and set an indicator on the basis of the results of the compare Most Von Neumann machines have a special set of bits inside the processor called condition codes and these bits are set by the compare operations Compare Example
Operation
Meaning
COMPARE X, Y
Compare the contents of memory cell X to the contents of memory cell Y and set the condition codes accordingly
Branch The normal mode of operation of a Von Neumann machine is sequential The branch instructions alter the normal sequential flow of control - based typically on the current settings of the condition codes Branch is almost always proceded by either a compare instruction or some other instruction that sets the condition codes Branch Example
Condition
How the condition codes are set
CON (X) > CON (Y)
GT = 1
EQ = 0
LT = 0
CON (X) = CON (Y)
GT = 0
EQ = 1
LT = 0
CON (X) < CON (Y)
GT = 0
EQ = 0
LT = 1
Operation
Meaning
JUMP X
Take the next instruction unconditionally from memory cell X
JUMPGT X
If the GT indicator is a 1, take the next instruction from memory cell X. Otherwise, take the next instruction from the next sequential location
HALT
Stop program execution. Don't go on to the next instruction
Label Attached to any instruction or piece of data in the program Becomes a permanent identification for this instruction or data, regardless of where it appears in the program or where it may be moved in memory Name followed by a colon placed at the beginning of an instruction
-   BEGIN:     LOAD X
Op code mnemonic Allows the programmer to refer to op codes using the symbolic name rather than by a number
-   LOAD, ADD, STORE
Address field Lets the programmer use symbolic addresses in addition to numeric addresses
-   JUMP 17
Comment Helpful explanation added to the instuction by a programmer and intended for someone reading the program Ignored during translation and execution Instruction Set