Examples
Examples
.ORIG x3000
mul10 ADD R0,R1,R1
ADD R0,R0,R0
ADD R0,R0,R1
ADD R0,R0,R0
HALT
;; Set R3 to R1 XOR R2
.ORIG x3000
xor NOT R1,R1
AND R3,R1,R2
NOT R1,R1
NOT R2,R2
AND R4,R1,R2
NOT R2,R2
NOT R3,R3
NOT R4,R4
AND R3,R3,R4
NOT R3,R3
HALT
;; | a<0 | a>=0 |
;; ------ +-------+-------+
;; b<0 | cmp | A |
;; ------ +-------+-------+
;; b>=0 | A | cmp |
;; ------ +-------+-------+
.ORIG x3000
cint LD R1,a
BRn aNeg
;; a>=0, if here
LD R2,b
BRn retA
BR cmp
;; a<0, if here
aNeg LD R2,b
BRn cmp
;; BR retA
leave HALT
a .FILL #-20000
b .FILL #20000
r .BLKW 1
.END
;; Really sets r to
;; <0, if a<b
;; 0, if a==b
;; >0, if a>b
;; | a<0 | a>=0 |
;; ------ +-------+-------+
;; b<0 | cmp | A |
;; ------ +-------+-------+
;; b>=0 | A | cmp |
;; ------ +-------+-------+
.ORIG x3000
cint LD R3,b15
LD R1,a
LD R2,b
AND R3,R3,R1
ADD R3,R3,R2
BRzp cmp
leave HALT
DONE2 HALT
DONE HALT
.END