Computer Organization and Architecture 10th Edition SUBS X S
Computer Organization and Architecture (10th Edition)
SUBS X Subtract the contents of location X from the accumulator,
and store the result in location X and the accumulator.
JUMP X Place address X in the program counter.
A word in main memory may contain either an instruction or a binary number in twos complement notation. Demonstrate that this instruction repertoire is resasonbly complete by specifying how the following operations can be programmed.:
a. Data transfer: Location X to accumulator, accumulator to location X.
b. Addition: Add contents of location X to accumulator.
c. Conditional branch.
d. Logical OR.
e. I/O Operations.
Solution
1). Data transfer: Location X to accumulator, accumulator to location X
Assuming we keep locations Y,Z as base space & always leave as zero, we
can move X to the accumulator using
subs Z ; zero accumulator
subs Z
subs X ; negate X
subs Z ; zero accumulator
subs Z
subs X ; restore X and copy to accumulator
and the accumulator to X using
subs Z ; store accumulator in Z
subs X ; zero accumulator and X
subs X
subs Z ; accumulator is negative of original
subs X ; now negative value is in X
subs Z ; put zero back in Z
subs Z
subs X ; original value back in X and accumulator
2) Addition: Add contents of location X to accumulator
Addition is the same as negating, the negative accumulator subtract X.
subs Y ; store accumulator in Y ( Y was zeroed )
subs Z ; zero out accumulator and Z
subs Z
subs X ; X and accumulator are negate original X value
subs Y ; Y and accumulator are negate the sum of original values
subs Z
subs Z
subs X ; restore the X value
subs Z
subs Z
subs Y ; Y and accumulator are now the sum of the values
3.)Conditional branch
Consider a straight branch to the line which is the value in the accumulator below the
jump instruction (considering n-1 bit numbers).
add to the default jmp 0 address.
subs Y ; store accumulator in Y (presumes Y was zeroed previously)
subs Z ; zero out accumulator and Z
subs Z
subs BCH ; X and accumulator are negative original X value
subs Y ; Y and accumulator are negative the sum of original values
subs BCH
subs BCH
subs Y
subs BCH ; final change
subs Y
subs Y ; clear Y
BCH jump BCH+1 ; jump instruction which was modified
Conditional branch can be done by placing either a particular value or 0 in the accumulator before the branch.
4). Logical OR
(A OR B) is A+B minus the carry of A+B plus the carry of A+B (shifted right).

