; Program tests all instructions except:
|
; Program tests all instructions except:
|
; MOVX(1-4) and RETI
|
; MOVX(1-4) and RETI
|
|
|
; Clear RAM
|
; Clear RAM
|
mov r0,#128
|
mov r0,#128
|
ram_clr:
|
ram_clr:
|
dec r0
|
dec r0
|
mov @r0,#0
|
mov @r0,#0
|
mov a,r0
|
mov a,r0
|
jnz ram_clr
|
jnz ram_clr
|
mov PSW,#0
|
mov PSW,#0
|
|
|
;;;;;;;;;;;;;;;;; INST 1 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 1 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; acall addr11
|
;; acall addr11
|
mov a,#85
|
mov a,#85
|
acall testret
|
acall testret
|
inc a
|
inc a
|
jc fail1
|
jc fail1
|
subb a,#87
|
subb a,#87
|
jz done1
|
jz done1
|
fail1:
|
fail1:
|
mov P1,1
|
mov P1,1
|
ljmp failed
|
ljmp failed
|
done1:
|
done1:
|
|
|
;;;;;;;;;;;;;;;; INST 2 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 2 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; add a,Rn (2) -- test if ALU and flag setting works
|
;; add a,Rn (2) -- test if ALU and flag setting works
|
mov a,#10
|
mov a,#10
|
mov r0,#117
|
mov r0,#117
|
mov r1,#10
|
mov r1,#10
|
mov r2,#127
|
mov r2,#127
|
mov r3,#128
|
mov r3,#128
|
mov r5,#245
|
mov r5,#245
|
mov r7,#250
|
mov r7,#250
|
|
|
mov a,#10
|
mov a,#10
|
add a,r0
|
add a,r0
|
jc fail2
|
jc fail2
|
subb a,#127
|
subb a,#127
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#10
|
mov a,#10
|
add a,r2
|
add a,r2
|
jc fail2
|
jc fail2
|
subb a,#137
|
subb a,#137
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#10
|
mov a,#10
|
add a,r3
|
add a,r3
|
jc fail2
|
jc fail2
|
subb a,#138
|
subb a,#138
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#10
|
mov a,#10
|
add a,r5
|
add a,r5
|
jc fail2
|
jc fail2
|
subb a,#255
|
subb a,#255
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#10
|
mov a,#10
|
add a,r7
|
add a,r7
|
jnc fail2
|
jnc fail2
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#117
|
mov a,#117
|
add a,r1
|
add a,r1
|
jc fail2
|
jc fail2
|
subb a,#127
|
subb a,#127
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#127
|
mov a,#127
|
add a,r1
|
add a,r1
|
jc fail2
|
jc fail2
|
subb a,#137
|
subb a,#137
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#128
|
mov a,#128
|
add a,r1
|
add a,r1
|
jc fail2
|
jc fail2
|
subb a,#138
|
subb a,#138
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#245
|
mov a,#245
|
add a,r1
|
add a,r1
|
jc fail2
|
jc fail2
|
subb a,#255
|
subb a,#255
|
jnz fail2
|
jnz fail2
|
|
|
mov a,#250
|
mov a,#250
|
add a,r1
|
add a,r1
|
jnc fail2
|
jnc fail2
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail2
|
jnz fail2
|
|
|
ljmp done2
|
ljmp done2
|
|
|
fail2:
|
fail2:
|
mov P1,#2
|
mov P1,#2
|
ljmp failed
|
ljmp failed
|
done2:
|
done2:
|
|
|
;;;;;;;;;;;;;;;; INST 3 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 3 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; add a,direct (3) -- test if ALU and flag setting works
|
;; add a,direct (3) -- test if ALU and flag setting works
|
|
|
mov 100,#117
|
mov 100,#117
|
mov a,#10
|
mov a,#10
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#127
|
subb a,#127
|
jnz fail3
|
jnz fail3
|
|
|
mov 100,#127
|
mov 100,#127
|
mov a,#10
|
mov a,#10
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#137
|
subb a,#137
|
jnz fail3
|
jnz fail3
|
|
|
mov 100,#128
|
mov 100,#128
|
mov a,#10
|
mov a,#10
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#138
|
subb a,#138
|
jnz fail3
|
jnz fail3
|
|
|
mov 100,#245
|
mov 100,#245
|
mov a,#10
|
mov a,#10
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#255
|
subb a,#255
|
jnz fail3
|
jnz fail3
|
|
|
mov 100,#250
|
mov 100,#250
|
mov a,#10
|
mov a,#10
|
add a,100
|
add a,100
|
jnc fail3
|
jnc fail3
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail3
|
jnz fail3
|
|
|
mov a,#117
|
mov a,#117
|
mov 100,#10
|
mov 100,#10
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#127
|
subb a,#127
|
jnz fail3
|
jnz fail3
|
|
|
mov a,#127
|
mov a,#127
|
mov 100,#10
|
mov 100,#10
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#137
|
subb a,#137
|
jnz fail3
|
jnz fail3
|
|
|
mov a,#128
|
mov a,#128
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#138
|
subb a,#138
|
jnz fail3
|
jnz fail3
|
|
|
mov a,#245
|
mov a,#245
|
add a,100
|
add a,100
|
jc fail3
|
jc fail3
|
subb a,#255
|
subb a,#255
|
jnz fail3
|
jnz fail3
|
|
|
mov a,#250
|
mov a,#250
|
add a,100
|
add a,100
|
jnc fail3
|
jnc fail3
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail3
|
jnz fail3
|
|
|
ljmp done3
|
ljmp done3
|
|
|
fail3:
|
fail3:
|
jz done3
|
jz done3
|
mov P1,#3
|
mov P1,#3
|
ljmp failed
|
ljmp failed
|
done3:
|
done3:
|
|
|
;;;;;;;;;;;;;;;; INST 4 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 4 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; add a,@Ri (4) -- indexed and simple CY
|
;; add a,@Ri (4) -- indexed and simple CY
|
mov a,#40
|
mov a,#40
|
mov r0,#100
|
mov r0,#100
|
mov 100,#10
|
mov 100,#10
|
mov r1,#101
|
mov r1,#101
|
mov 101,#100
|
mov 101,#100
|
|
|
add a,@r0
|
add a,@r0
|
jc fail4
|
jc fail4
|
subb a,#50
|
subb a,#50
|
jnz fail4
|
jnz fail4
|
|
|
mov a,#40
|
mov a,#40
|
add a,@r1
|
add a,@r1
|
jc fail4
|
jc fail4
|
subb a,#140
|
subb a,#140
|
jnz fail4
|
jnz fail4
|
|
|
mov a,#10
|
mov a,#10
|
mov r1,#102
|
mov r1,#102
|
mov 102,#250
|
mov 102,#250
|
add a,@r1
|
add a,@r1
|
jnc fail4
|
jnc fail4
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail4
|
jnz fail4
|
ljmp done4
|
ljmp done4
|
|
|
fail4:
|
fail4:
|
mov P1,#4
|
mov P1,#4
|
ljmp failed
|
ljmp failed
|
done4:
|
done4:
|
|
|
;;;;;;;;;;;;;;;; INST 5 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 5 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; add a,#data (5)
|
;; add a,#data (5)
|
mov a,#10
|
mov a,#10
|
|
|
add a,#117
|
add a,#117
|
jc fail5
|
jc fail5
|
subb a,#127
|
subb a,#127
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#10
|
mov a,#10
|
add a,#127
|
add a,#127
|
jc fail5
|
jc fail5
|
subb a,#137
|
subb a,#137
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#10
|
mov a,#10
|
add a,#128
|
add a,#128
|
jc fail5
|
jc fail5
|
subb a,#138
|
subb a,#138
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#10
|
mov a,#10
|
add a,#245
|
add a,#245
|
jc fail5
|
jc fail5
|
subb a,#255
|
subb a,#255
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#10
|
mov a,#10
|
add a,#250
|
add a,#250
|
jnc fail5
|
jnc fail5
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#117
|
mov a,#117
|
add a,#10
|
add a,#10
|
jc fail5
|
jc fail5
|
subb a,#127
|
subb a,#127
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#127
|
mov a,#127
|
add a,#10
|
add a,#10
|
jc fail5
|
jc fail5
|
subb a,#137
|
subb a,#137
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#128
|
mov a,#128
|
add a,#10
|
add a,#10
|
jc fail5
|
jc fail5
|
subb a,#138
|
subb a,#138
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#245
|
mov a,#245
|
add a,#10
|
add a,#10
|
jc fail5
|
jc fail5
|
subb a,#255
|
subb a,#255
|
jnz fail5
|
jnz fail5
|
|
|
mov a,#250
|
mov a,#250
|
add a,#10
|
add a,#10
|
jnc fail5
|
jnc fail5
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail5
|
jnz fail5
|
|
|
ljmp done5
|
ljmp done5
|
|
|
fail5:
|
fail5:
|
jz done5
|
jz done5
|
mov P1,#5
|
mov P1,#5
|
ljmp failed
|
ljmp failed
|
mov P1,#5
|
mov P1,#5
|
ljmp failed
|
ljmp failed
|
done5:
|
done5:
|
|
|
;;;;;;;;;;;;;;;; INST 6 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 6 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; addc a,Rn (6)
|
;; addc a,Rn (6)
|
mov a,#10
|
mov a,#10
|
mov r0,#10
|
mov r0,#10
|
|
|
clr c
|
clr c
|
addc a,r0
|
addc a,r0
|
jc fail6
|
jc fail6
|
subb a,#20
|
subb a,#20
|
jnz fail6
|
jnz fail6
|
|
|
mov a,#10
|
mov a,#10
|
setb c
|
setb c
|
addc a,r0
|
addc a,r0
|
jc fail6
|
jc fail6
|
subb a,#21
|
subb a,#21
|
jnz fail6
|
jnz fail6
|
|
|
mov a,#100
|
mov a,#100
|
clr c
|
clr c
|
addc a,r0
|
addc a,r0
|
jc fail6
|
jc fail6
|
subb a,#110
|
subb a,#110
|
jnz fail6
|
jnz fail6
|
|
|
mov a,#100
|
mov a,#100
|
setb c
|
setb c
|
addc a,r0
|
addc a,r0
|
jc fail6
|
jc fail6
|
subb a,#111
|
subb a,#111
|
jnz fail6
|
jnz fail6
|
|
|
mov a,#250
|
mov a,#250
|
clr c
|
clr c
|
addc a,r0
|
addc a,r0
|
jnc fail6
|
jnc fail6
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail6
|
jnz fail6
|
|
|
mov a,#250
|
mov a,#250
|
setb c
|
setb c
|
addc a,r0
|
addc a,r0
|
jnc fail6
|
jnc fail6
|
clr c
|
clr c
|
subb a,#5
|
subb a,#5
|
jnz fail6
|
jnz fail6
|
|
|
ljmp done6
|
ljmp done6
|
fail6:
|
fail6:
|
mov P1,#6
|
mov P1,#6
|
ljmp failed
|
ljmp failed
|
done6:
|
done6:
|
|
|
;;;;;;;;;;;;;;;; INST 7 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 7 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; addc a,direct (7)
|
;; addc a,direct (7)
|
mov a,#10
|
mov a,#10
|
mov 100,#10
|
mov 100,#10
|
|
|
clr c
|
clr c
|
addc a,100
|
addc a,100
|
jc fail7
|
jc fail7
|
subb a,#20
|
subb a,#20
|
jnz fail7
|
jnz fail7
|
|
|
mov a,#10
|
mov a,#10
|
setb c
|
setb c
|
addc a,100
|
addc a,100
|
jc fail7
|
jc fail7
|
subb a,#21
|
subb a,#21
|
jnz fail7
|
jnz fail7
|
|
|
mov a,#100
|
mov a,#100
|
clr c
|
clr c
|
addc a,100
|
addc a,100
|
jc fail7
|
jc fail7
|
subb a,#110
|
subb a,#110
|
jnz fail7
|
jnz fail7
|
|
|
mov a,#100
|
mov a,#100
|
setb c
|
setb c
|
addc a,100
|
addc a,100
|
jc fail7
|
jc fail7
|
subb a,#111
|
subb a,#111
|
jnz fail7
|
jnz fail7
|
|
|
mov a,#250
|
mov a,#250
|
clr c
|
clr c
|
addc a,100
|
addc a,100
|
jnc fail7
|
jnc fail7
|
clr c
|
clr c
|
subb a,#4
|
subb a,#4
|
jnz fail7
|
jnz fail7
|
|
|
mov a,#250
|
mov a,#250
|
setb c
|
setb c
|
addc a,100
|
addc a,100
|
jnc fail7
|
jnc fail7
|
clr c
|
clr c
|
subb a,#5
|
subb a,#5
|
jnz fail7
|
jnz fail7
|
|
|
ljmp done7
|
ljmp done7
|
fail7:
|
fail7:
|
mov P1,#7
|
mov P1,#7
|
ljmp failed
|
ljmp failed
|
done7:
|
done7:
|
|
|
;;;;;;;;;;;;;;;; INST 8 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 8 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; addc a,@Ri (8)
|
;; addc a,@Ri (8)
|
mov a,#10
|
mov a,#10
|
mov r0,#100
|
mov r0,#100
|
mov 100,#11
|
mov 100,#11
|
|
|
clr c
|
clr c
|
addc a,@r0
|
addc a,@r0
|
jc fail8
|
jc fail8
|
subb a,#21
|
subb a,#21
|
jnz fail8
|
jnz fail8
|
|
|
mov a,#10
|
mov a,#10
|
setb c
|
setb c
|
addc a,@r0
|
addc a,@r0
|
jc fail8
|
jc fail8
|
subb a,#22
|
subb a,#22
|
jnz fail8
|
jnz fail8
|
|
|
mov a,#100
|
mov a,#100
|
clr c
|
clr c
|
addc a,@r0
|
addc a,@r0
|
jc fail8
|
jc fail8
|
subb a,#111
|
subb a,#111
|
jnz fail8
|
jnz fail8
|
|
|
mov a,#100
|
mov a,#100
|
setb c
|
setb c
|
addc a,@r0
|
addc a,@r0
|
jc fail8
|
jc fail8
|
subb a,#112
|
subb a,#112
|
jnz fail8
|
jnz fail8
|
|
|
mov a,#250
|
mov a,#250
|
clr c
|
clr c
|
addc a,@r0
|
addc a,@r0
|
jnc fail8
|
jnc fail8
|
clr c
|
clr c
|
subb a,#5
|
subb a,#5
|
jnz fail8
|
jnz fail8
|
|
|
mov a,#250
|
mov a,#250
|
setb c
|
setb c
|
addc a,@r0
|
addc a,@r0
|
jnc fail8
|
jnc fail8
|
clr c
|
clr c
|
subb a,#6
|
subb a,#6
|
jnz fail8
|
jnz fail8
|
|
|
ljmp done8
|
ljmp done8
|
fail8:
|
fail8:
|
mov P1,#8
|
mov P1,#8
|
ljmp failed
|
ljmp failed
|
done8:
|
done8:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 9 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 9 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; addc a,#data (9)
|
;; addc a,#data (9)
|
mov a,#14
|
mov a,#14
|
|
|
clr c
|
clr c
|
addc a,#14
|
addc a,#14
|
jc fail9
|
jc fail9
|
subb a,#28
|
subb a,#28
|
jnz fail9
|
jnz fail9
|
|
|
mov a,#14
|
mov a,#14
|
setb c
|
setb c
|
addc a,#15
|
addc a,#15
|
jc fail9
|
jc fail9
|
subb a,#30
|
subb a,#30
|
jnz fail9
|
jnz fail9
|
|
|
mov a,#110
|
mov a,#110
|
clr c
|
clr c
|
addc a,#20
|
addc a,#20
|
jc fail9
|
jc fail9
|
subb a,#130
|
subb a,#130
|
jnz fail9
|
jnz fail9
|
|
|
mov a,#110
|
mov a,#110
|
setb c
|
setb c
|
addc a,#20
|
addc a,#20
|
jc fail9
|
jc fail9
|
subb a,#131
|
subb a,#131
|
jnz fail9
|
jnz fail9
|
|
|
mov a,#250
|
mov a,#250
|
clr c
|
clr c
|
addc a,#11
|
addc a,#11
|
jnc fail9
|
jnc fail9
|
clr c
|
clr c
|
subb a,#5
|
subb a,#5
|
jnz fail9
|
jnz fail9
|
|
|
mov a,#250
|
mov a,#250
|
setb c
|
setb c
|
addc a,#11
|
addc a,#11
|
jnc fail9
|
jnc fail9
|
clr c
|
clr c
|
subb a,#6
|
subb a,#6
|
jnz fail9
|
jnz fail9
|
|
|
ljmp done9
|
ljmp done9
|
fail9:
|
fail9:
|
mov P1,#9
|
mov P1,#9
|
ljmp failed
|
ljmp failed
|
done9:
|
done9:
|
|
|
;;;;;;;;;;;;;;;; INST 10 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 10 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; ajmp (10)
|
;; ajmp (10)
|
setb c
|
setb c
|
ajmp done10
|
ajmp done10
|
fail10:
|
fail10:
|
mov P1,#10
|
mov P1,#10
|
ljmp failed
|
ljmp failed
|
done10:clr c
|
done10:clr c
|
jc fail10
|
jc fail10
|
|
|
;;;;;;;;;;;;;;;; INST 11 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 11 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl a,Rn (11)
|
;; anl a,Rn (11)
|
mov r0,#250
|
mov r0,#250
|
clr c
|
clr c
|
clr a
|
clr a
|
mov a,#171
|
mov a,#171
|
anl a,r0
|
anl a,r0
|
jc fail11
|
jc fail11
|
jz fail11
|
jz fail11
|
subb a,#170
|
subb a,#170
|
jnz fail11
|
jnz fail11
|
|
|
mov r0,#190
|
mov r0,#190
|
mov a,#84
|
mov a,#84
|
inc a
|
inc a
|
setb c
|
setb c
|
anl a,r0
|
anl a,r0
|
jz fail11
|
jz fail11
|
jnc fail11
|
jnc fail11
|
clr c
|
clr c
|
subb a,#20
|
subb a,#20
|
jnz fail11
|
jnz fail11
|
ljmp done11
|
ljmp done11
|
|
|
fail11:
|
fail11:
|
mov P1,#11
|
mov P1,#11
|
ljmp failed
|
ljmp failed
|
done11:
|
done11:
|
|
|
;;;;;;;;;;;;;;;; INST 12 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 12 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl a,direct (12)
|
;; anl a,direct (12)
|
mov 127,#250
|
mov 127,#250
|
clr c
|
clr c
|
clr a
|
clr a
|
mov a,#171
|
mov a,#171
|
anl a,127
|
anl a,127
|
jc fail12
|
jc fail12
|
jz fail12
|
jz fail12
|
subb a,#170
|
subb a,#170
|
jnz fail12
|
jnz fail12
|
|
|
mov 127,#190
|
mov 127,#190
|
mov a,#84
|
mov a,#84
|
inc a
|
inc a
|
setb c
|
setb c
|
anl a,127
|
anl a,127
|
jz fail12
|
jz fail12
|
jnc fail12
|
jnc fail12
|
clr c
|
clr c
|
subb a,#20
|
subb a,#20
|
jnz fail12
|
jnz fail12
|
ljmp done12
|
ljmp done12
|
|
|
fail12:
|
fail12:
|
mov P1,#12
|
mov P1,#12
|
ljmp failed
|
ljmp failed
|
done12:
|
done12:
|
|
|
;;;;;;;;;;;;;;;; INST 13 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 13 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl a,@Ri (13)
|
;; anl a,@Ri (13)
|
mov r0,#127
|
mov r0,#127
|
clr c
|
clr c
|
clr a
|
clr a
|
mov 127,#171
|
mov 127,#171
|
mov a,#250
|
mov a,#250
|
anl a,@r0
|
anl a,@r0
|
jc fail13
|
jc fail13
|
jz fail13
|
jz fail13
|
subb a,#170
|
subb a,#170
|
jnz fail13
|
jnz fail13
|
|
|
mov 127,#190
|
mov 127,#190
|
mov a,#84
|
mov a,#84
|
inc a
|
inc a
|
setb c
|
setb c
|
anl a,@r0
|
anl a,@r0
|
jz fail13
|
jz fail13
|
jnc fail13
|
jnc fail13
|
clr c
|
clr c
|
subb a,#20
|
subb a,#20
|
jnz fail13
|
jnz fail13
|
ljmp done13
|
ljmp done13
|
|
|
fail13:
|
fail13:
|
anl a,@r0
|
anl a,@r0
|
jz done13
|
jz done13
|
mov P1,#13
|
mov P1,#13
|
ljmp failed
|
ljmp failed
|
done13:
|
done13:
|
|
|
;;;;;;;;;;;;;;;; INST 14 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 14 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl a,#data (14)
|
;; anl a,#data (14)
|
clr c
|
clr c
|
clr a
|
clr a
|
mov a,#250
|
mov a,#250
|
anl a,#171
|
anl a,#171
|
jc fail14
|
jc fail14
|
jz fail14
|
jz fail14
|
subb a,#170
|
subb a,#170
|
jnz fail14
|
jnz fail14
|
|
|
mov a,#190
|
mov a,#190
|
mov a,#84
|
mov a,#84
|
inc a
|
inc a
|
setb c
|
setb c
|
anl a,@r0
|
anl a,@r0
|
jz fail14
|
jz fail14
|
jnc fail14
|
jnc fail14
|
clr c
|
clr c
|
subb a,#20
|
subb a,#20
|
jnz fail14
|
jnz fail14
|
ljmp done14
|
ljmp done14
|
|
|
fail14:
|
fail14:
|
subb a,#255
|
subb a,#255
|
jz done14
|
jz done14
|
mov P1,#14
|
mov P1,#14
|
ljmp failed
|
ljmp failed
|
done14:
|
done14:
|
|
|
;;;;;;;;;;;;;;;; INST 15 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 15 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl direct,a (15)
|
;; anl direct,a (15)
|
mov 127,#250
|
mov 127,#250
|
clr c
|
clr c
|
clr a
|
clr a
|
mov a,#171
|
mov a,#171
|
anl 127,a
|
anl 127,a
|
jc fail15
|
jc fail15
|
mov a,127
|
mov a,127
|
jz fail15
|
jz fail15
|
subb a,#170
|
subb a,#170
|
jnz fail15
|
jnz fail15
|
|
|
mov 127,#190
|
mov 127,#190
|
mov a,#84
|
mov a,#84
|
inc a
|
inc a
|
setb c
|
setb c
|
anl 127,a
|
anl 127,a
|
mov a,127
|
mov a,127
|
jz fail15
|
jz fail15
|
jnc fail15
|
jnc fail15
|
clr c
|
clr c
|
subb a,#20
|
subb a,#20
|
jnz fail15
|
jnz fail15
|
ljmp done15
|
ljmp done15
|
|
|
fail15:
|
fail15:
|
mov P1,#15
|
mov P1,#15
|
ljmp failed
|
ljmp failed
|
done15:
|
done15:
|
|
|
;;;;;;;;;;;;;;;; INST 16 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 16 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl direct,#data (16)
|
;; anl direct,#data (16)
|
mov 127,#250
|
mov 127,#250
|
clr c
|
clr c
|
clr a
|
clr a
|
anl 127,#171
|
anl 127,#171
|
jc fail16
|
jc fail16
|
mov a,127
|
mov a,127
|
jz fail16
|
jz fail16
|
subb a,#170
|
subb a,#170
|
jnz fail16
|
jnz fail16
|
|
|
mov 127,#190
|
mov 127,#190
|
setb c
|
setb c
|
anl 127,#85
|
anl 127,#85
|
mov a,127
|
mov a,127
|
jz fail16
|
jz fail16
|
jnc fail16
|
jnc fail16
|
clr c
|
clr c
|
subb a,#20
|
subb a,#20
|
jnz fail16
|
jnz fail16
|
ljmp done16
|
ljmp done16
|
|
|
fail16:
|
fail16:
|
mov P1,#16
|
mov P1,#16
|
ljmp failed
|
ljmp failed
|
done16:
|
done16:
|
|
|
;;;;;;;;;;;;;;;; INST 17 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 17 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl c,bit (17)
|
;; anl c,bit (17)
|
mov a,#128
|
mov a,#128
|
clr c
|
clr c
|
anl c,acc.7
|
anl c,acc.7
|
jc fail17
|
jc fail17
|
mov a,#128
|
mov a,#128
|
setb c
|
setb c
|
anl c,acc.7
|
anl c,acc.7
|
jnc fail17
|
jnc fail17
|
ljmp done17
|
ljmp done17
|
|
|
fail17:
|
fail17:
|
mov P1,#17
|
mov P1,#17
|
ljmp failed
|
ljmp failed
|
done17:
|
done17:
|
|
|
;;;;;;;;;;;;;;;; INST 18 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 18 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; anl c,/bit (18)
|
;; anl c,/bit (18)
|
mov a,#128
|
mov a,#128
|
clr c
|
clr c
|
anl c,/acc.7
|
anl c,/acc.7
|
jc fail18
|
jc fail18
|
mov a,#128
|
mov a,#128
|
setb c
|
setb c
|
anl c,/acc.7
|
anl c,/acc.7
|
jc fail18
|
jc fail18
|
mov a,#128
|
mov a,#128
|
setb c
|
setb c
|
anl c,/acc.5
|
anl c,/acc.5
|
jnc fail18
|
jnc fail18
|
ljmp done18
|
ljmp done18
|
|
|
fail18:
|
fail18:
|
mov P1,#18
|
mov P1,#18
|
ljmp failed
|
ljmp failed
|
done18:
|
done18:
|
|
|
;;;;;;;;;;;;;;;; INST 19 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 19 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cjne a,direct,rel (19)
|
;; cjne a,direct,rel (19)
|
mov a,#228
|
mov a,#228
|
mov 100,#228
|
mov 100,#228
|
cjne a,100,fail19
|
cjne a,100,fail19
|
jc fail19
|
jc fail19
|
|
|
mov a,#227
|
mov a,#227
|
cjne a,100,CHECK_C_19
|
cjne a,100,CHECK_C_19
|
ljmp fail19
|
ljmp fail19
|
CHECK_C_19: ;Checks that carry was set
|
CHECK_C_19: ;Checks that carry was set
|
jnc fail19
|
jnc fail19
|
|
|
mov a,#229
|
mov a,#229
|
cjne a,100,CHECK_NC_19
|
cjne a,100,CHECK_NC_19
|
ljmp fail19
|
ljmp fail19
|
|
|
CHECK_NC_19: ;Checks that carry was not set
|
CHECK_NC_19: ;Checks that carry was not set
|
jc fail19
|
jc fail19
|
ljmp done19
|
ljmp done19
|
|
|
fail19:
|
fail19:
|
mov P1,#19
|
mov P1,#19
|
ljmp failed
|
ljmp failed
|
done19:
|
done19:
|
|
|
;;;;;;;;;;;;;;;; INST 20 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 20 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cjne a,#data,rel (20)
|
;; cjne a,#data,rel (20)
|
mov a,#100
|
mov a,#100
|
cjne a,#100,fail20
|
cjne a,#100,fail20
|
jc fail20
|
jc fail20
|
|
|
mov a,#99
|
mov a,#99
|
cjne a,#100,CHECK_C_20
|
cjne a,#100,CHECK_C_20
|
ljmp fail20
|
ljmp fail20
|
CHECK_C_20: ;Checks that carry was set
|
CHECK_C_20: ;Checks that carry was set
|
jnc fail20
|
jnc fail20
|
|
|
mov a,#101
|
mov a,#101
|
cjne a,#100,CHECK_NC_20
|
cjne a,#100,CHECK_NC_20
|
ljmp fail20
|
ljmp fail20
|
|
|
CHECK_NC_20: ;Checks that carry was not set
|
CHECK_NC_20: ;Checks that carry was not set
|
jc fail20
|
jc fail20
|
ljmp done20
|
ljmp done20
|
|
|
fail20:
|
fail20:
|
mov P1,#20
|
mov P1,#20
|
ljmp failed
|
ljmp failed
|
done20:
|
done20:
|
|
|
;;;;;;;;;;;;;;;; INST 21 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 21 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cjne Rn,#data,rel (21)
|
;; cjne Rn,#data,rel (21)
|
mov r1,#100
|
mov r1,#100
|
cjne r1,#100,fail21
|
cjne r1,#100,fail21
|
jc fail21
|
jc fail21
|
|
|
mov r1,#99
|
mov r1,#99
|
cjne r1,#100,CHECK_C_21
|
cjne r1,#100,CHECK_C_21
|
ljmp fail21
|
ljmp fail21
|
CHECK_C_21: ;Checks that carry was set
|
CHECK_C_21: ;Checks that carry was set
|
jnc fail21
|
jnc fail21
|
|
|
mov r1,#101
|
mov r1,#101
|
cjne r1,#100,CHECK_NC_21
|
cjne r1,#100,CHECK_NC_21
|
ljmp fail21
|
ljmp fail21
|
|
|
CHECK_NC_21: ;Checks that carry was not set
|
CHECK_NC_21: ;Checks that carry was not set
|
jc fail21
|
jc fail21
|
ljmp done21
|
ljmp done21
|
|
|
fail21:
|
fail21:
|
mov P1,#21
|
mov P1,#21
|
ljmp failed
|
ljmp failed
|
done21:
|
done21:
|
|
|
;;;;;;;;;;;;;;;; INST 22 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 22 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cjne @Ri,#data,rel (22)
|
;; cjne @Ri,#data,rel (22)
|
mov 125,#99
|
mov 125,#99
|
mov 126,#100
|
mov 126,#100
|
mov 127,#101
|
mov 127,#101
|
mov r1,#125
|
mov r1,#125
|
cjne @r1,#100, CHECK_EQ_22
|
cjne @r1,#100, CHECK_EQ_22
|
ljmp fail22
|
ljmp fail22
|
|
|
CHECK_EQ_22:
|
CHECK_EQ_22:
|
jnc fail22
|
jnc fail22
|
mov r1,#126
|
mov r1,#126
|
cjne @r1,#100,fail22
|
cjne @r1,#100,fail22
|
jc fail22
|
jc fail22
|
|
|
mov r1,#127
|
mov r1,#127
|
cjne @r1,#100,CHECK_NC_22
|
cjne @r1,#100,CHECK_NC_22
|
ljmp fail22
|
ljmp fail22
|
|
|
CHECK_NC_22: ;Checks that carry was not set
|
CHECK_NC_22: ;Checks that carry was not set
|
jc fail22
|
jc fail22
|
ljmp done22
|
ljmp done22
|
|
|
fail22:
|
fail22:
|
mov P1,#22
|
mov P1,#22
|
ljmp failed
|
ljmp failed
|
done22:
|
done22:
|
|
|
;;;;;;;;;;;;;;;; INST 23 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 23 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; clr a (23)
|
;; clr a (23)
|
mov a,#86
|
mov a,#86
|
clr a
|
clr a
|
jnz fail23
|
jnz fail23
|
mov a,#86
|
mov a,#86
|
clr a
|
clr a
|
mov r0,a
|
mov r0,a
|
mov a,r0
|
mov a,r0
|
jnz fail23
|
jnz fail23
|
ljmp done23
|
ljmp done23
|
|
|
fail23:
|
fail23:
|
mov P1,#23
|
mov P1,#23
|
ljmp failed
|
ljmp failed
|
done23:
|
done23:
|
|
|
;;;;;;;;;;;;;;;; INST 24 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 24 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; clr c (24)
|
;; clr c (24)
|
setb c
|
setb c
|
clr c
|
clr c
|
jc fail24
|
jc fail24
|
clr c
|
clr c
|
jc fail24
|
jc fail24
|
ljmp done24
|
ljmp done24
|
|
|
fail24:
|
fail24:
|
mov P1,#24
|
mov P1,#24
|
ljmp failed
|
ljmp failed
|
done24:
|
done24:
|
|
|
;;;;;;;;;;;;;;;; INST 25 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 25 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; clr bit (25)
|
;; clr bit (25)
|
mov a, #02h
|
mov a, #02h
|
jz fail25
|
jz fail25
|
clr acc.1
|
clr acc.1
|
jnz fail25
|
jnz fail25
|
|
|
setb 7
|
setb 7
|
mov c, 7
|
mov c, 7
|
jc clr1;
|
jc clr1;
|
ljmp fail25;
|
ljmp fail25;
|
clr1:
|
clr1:
|
clr 7
|
clr 7
|
mov c, 7
|
mov c, 7
|
jc fail25
|
jc fail25
|
clr 7
|
clr 7
|
mov c, 7
|
mov c, 7
|
jc fail25
|
jc fail25
|
ljmp done25
|
ljmp done25
|
|
|
fail25:
|
fail25:
|
mov P1,#25
|
mov P1,#25
|
ljmp failed
|
ljmp failed
|
done25:
|
done25:
|
|
|
;;;;;;;;;;;;;;;; INST 26 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 26 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cpl a (26)
|
;; cpl a (26)
|
mov a,#255
|
mov a,#255
|
cpl a
|
cpl a
|
jnz fail26
|
jnz fail26
|
|
|
mov a,#85
|
mov a,#85
|
cpl a
|
cpl a
|
clr c
|
clr c
|
subb a,#170
|
subb a,#170
|
jnz fail26
|
jnz fail26
|
ljmp done26
|
ljmp done26
|
|
|
fail26:
|
fail26:
|
mov P1,#26
|
mov P1,#26
|
ljmp failed
|
ljmp failed
|
done26:
|
done26:
|
|
|
;;;;;;;;;;;;;;;; INST 27 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 27 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cpl c (27)
|
;; cpl c (27)
|
setb c
|
setb c
|
cpl c
|
cpl c
|
jc fail27
|
jc fail27
|
clr c
|
clr c
|
cpl c
|
cpl c
|
jnc fail27
|
jnc fail27
|
ljmp done27
|
ljmp done27
|
|
|
fail27:
|
fail27:
|
mov P1,#27
|
mov P1,#27
|
ljmp failed
|
ljmp failed
|
done27:
|
done27:
|
|
|
;;;;;;;;;;;;;;;; INST 28 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 28 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; cpl bit (28)
|
;; cpl bit (28)
|
clr a
|
clr a
|
setb acc.5
|
setb acc.5
|
cpl acc.5
|
cpl acc.5
|
jnz fail28
|
jnz fail28
|
clr acc.5
|
clr acc.5
|
cpl acc.5
|
cpl acc.5
|
jz fail28
|
jz fail28
|
ljmp done28
|
ljmp done28
|
|
|
fail28:
|
fail28:
|
mov P1,#28
|
mov P1,#28
|
ljmp failed
|
ljmp failed
|
done28:
|
done28:
|
|
|
;;;;;;;;;;;;;;;; INST 29 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 29 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; DA a (29)
|
;; DA a (29)
|
mov a,#80h
|
mov a,#80h
|
add a,#99h
|
add a,#99h
|
da a
|
da a
|
subb a,#78h ;Will clr acc if c set
|
subb a,#78h ;Will clr acc if c set
|
jz tst2
|
jz tst2
|
|
|
fail_da:
|
fail_da:
|
mov P1,#29
|
mov P1,#29
|
ljmp failed
|
ljmp failed
|
tst2:
|
tst2:
|
mov psw, #00h
|
mov psw, #00h
|
mov r3, #67h
|
mov r3, #67h
|
mov a, #56h
|
mov a, #56h
|
addc a, r3
|
addc a, r3
|
da a
|
da a
|
subb a, #24h
|
subb a, #24h
|
jnz fail_da
|
jnz fail_da
|
|
|
mov psw, #00h
|
mov psw, #00h
|
mov a, #30h
|
mov a, #30h
|
addc a, #99h
|
addc a, #99h
|
da a
|
da a
|
subb a, #28h
|
subb a, #28h
|
jnz fail_da
|
jnz fail_da
|
|
|
|
|
done29:
|
done29:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 30 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 30 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; dec a (30)
|
;; dec a (30)
|
mov a,#10
|
mov a,#10
|
setb c
|
setb c
|
dec a
|
dec a
|
jnc fail30
|
jnc fail30
|
clr c
|
clr c
|
subb a,#9
|
subb a,#9
|
jnz fail30
|
jnz fail30
|
|
|
mov a,#0
|
mov a,#0
|
clr c
|
clr c
|
dec a
|
dec a
|
jc fail30
|
jc fail30
|
subb a,#255
|
subb a,#255
|
jnz fail30
|
jnz fail30
|
ljmp done30
|
ljmp done30
|
|
|
fail30:
|
fail30:
|
mov P1,#30
|
mov P1,#30
|
ljmp failed
|
ljmp failed
|
done30:
|
done30:
|
|
|
;;;;;;;;;;;;;;;;; INST 31 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 31 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; dec Rn (31)
|
;; dec Rn (31)
|
mov r2,#10
|
mov r2,#10
|
setb c
|
setb c
|
dec r2
|
dec r2
|
jnc fail31
|
jnc fail31
|
clr c
|
clr c
|
mov a,r2
|
mov a,r2
|
subb a,#9
|
subb a,#9
|
jnz fail31
|
jnz fail31
|
|
|
mov r2,#0
|
mov r2,#0
|
clr c
|
clr c
|
dec r2
|
dec r2
|
jc fail31
|
jc fail31
|
mov a,r2
|
mov a,r2
|
subb a,#255
|
subb a,#255
|
jnz fail31
|
jnz fail31
|
ljmp done31
|
ljmp done31
|
|
|
fail31:
|
fail31:
|
mov P1,#31
|
mov P1,#31
|
ljmp failed
|
ljmp failed
|
done31:
|
done31:
|
|
|
;;;;;;;;;;;;;;;;; INST 32 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 32 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; dec direct (32)
|
;; dec direct (32)
|
mov 127,#10
|
mov 127,#10
|
setb c
|
setb c
|
dec 127
|
dec 127
|
jnc fail32
|
jnc fail32
|
clr c
|
clr c
|
mov a,127
|
mov a,127
|
subb a,#9
|
subb a,#9
|
jnz fail32
|
jnz fail32
|
|
|
mov 127,#0
|
mov 127,#0
|
clr c
|
clr c
|
dec 127
|
dec 127
|
jc fail32
|
jc fail32
|
mov a,127
|
mov a,127
|
subb a,#255
|
subb a,#255
|
jnz fail32
|
jnz fail32
|
ljmp done32
|
ljmp done32
|
|
|
fail32:
|
fail32:
|
mov P1,#32
|
mov P1,#32
|
ljmp failed
|
ljmp failed
|
done32:
|
done32:
|
|
|
;;;;;;;;;;;;;;;;; INST 33 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 33 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; dec @Ri (33)
|
;; dec @Ri (33)
|
mov r0,#127
|
mov r0,#127
|
mov @r0,#10
|
mov @r0,#10
|
setb c
|
setb c
|
dec @r0
|
dec @r0
|
jnc fail33
|
jnc fail33
|
clr c
|
clr c
|
mov a,@r0
|
mov a,@r0
|
subb a,#9
|
subb a,#9
|
jnz fail33
|
jnz fail33
|
|
|
mov @r0,#0
|
mov @r0,#0
|
clr c
|
clr c
|
dec @r0
|
dec @r0
|
jc fail33
|
jc fail33
|
mov a,@r0
|
mov a,@r0
|
subb a,#255
|
subb a,#255
|
jnz fail33
|
jnz fail33
|
ljmp done33
|
ljmp done33
|
|
|
fail33:
|
fail33:
|
mov P1,#33
|
mov P1,#33
|
ljmp failed
|
ljmp failed
|
done33:
|
done33:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 34 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 34 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; div AB (34)
|
;; div AB (34)
|
mov a,#251
|
mov a,#251
|
mov B,#18
|
mov B,#18
|
div AB
|
div AB
|
jc fail34
|
jc fail34
|
mov c,OV
|
mov c,OV
|
jc fail34
|
jc fail34
|
subb a,#13
|
subb a,#13
|
jnz fail34
|
jnz fail34
|
mov a,B
|
mov a,B
|
subb a,#17
|
subb a,#17
|
jnz fail34
|
jnz fail34
|
|
|
mov a,#180
|
mov a,#180
|
mov B,#15
|
mov B,#15
|
div AB
|
div AB
|
jc fail34
|
jc fail34
|
mov c,OV
|
mov c,OV
|
jc fail34
|
jc fail34
|
subb a,#12
|
subb a,#12
|
jnz fail34
|
jnz fail34
|
mov a,B
|
mov a,B
|
jnz fail34
|
jnz fail34
|
|
|
mov a,#0
|
mov a,#0
|
mov B,#15
|
mov B,#15
|
div AB
|
div AB
|
jc fail34
|
jc fail34
|
mov c,OV
|
mov c,OV
|
jc fail34
|
jc fail34
|
jnz fail34
|
jnz fail34
|
mov a,B
|
mov a,B
|
subb a,#15
|
subb a,#15
|
|
|
mov a,#0
|
mov a,#0
|
mov B,#0
|
mov B,#0
|
div AB
|
div AB
|
jc fail34
|
jc fail34
|
mov c,OV
|
mov c,OV
|
jnc fail34
|
jnc fail34
|
|
|
mov a,#170
|
mov a,#170
|
mov B,#0
|
mov B,#0
|
div AB
|
div AB
|
jc fail34
|
jc fail34
|
mov c,OV
|
mov c,OV
|
jnc fail34
|
jnc fail34
|
ljmp done34
|
ljmp done34
|
fail34:
|
fail34:
|
mov P1,#34
|
mov P1,#34
|
ljmp failed
|
ljmp failed
|
done34:
|
done34:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 35 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 35 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; djnz Rn,rel (35)
|
;; djnz Rn,rel (35)
|
mov r0,#10
|
mov r0,#10
|
djnz r0,JUMP_35 ;Should jump
|
djnz r0,JUMP_35 ;Should jump
|
mov P1,#35
|
mov P1,#35
|
ljmp failed
|
ljmp failed
|
JUMP_35:
|
JUMP_35:
|
mov r0,#0
|
mov r0,#0
|
djnz r0,JUMP_35B ;Should jump
|
djnz r0,JUMP_35B ;Should jump
|
mov P1,#35
|
mov P1,#35
|
ljmp failed
|
ljmp failed
|
JUMP_35B:
|
JUMP_35B:
|
mov r0,#1
|
mov r0,#1
|
djnz r0,NOT_JUMP_35 ;Should not jump
|
djnz r0,NOT_JUMP_35 ;Should not jump
|
ajmp done35
|
ajmp done35
|
NOT_JUMP_35:
|
NOT_JUMP_35:
|
mov P1,#35
|
mov P1,#35
|
ljmp failed
|
ljmp failed
|
done35:
|
done35:
|
|
|
;;;;;;;;;;;;;;;;; INST 36 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 36 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; djnz direct,rel (36)
|
;; djnz direct,rel (36)
|
mov 127,#10
|
mov 127,#10
|
djnz 127,JUMP_36 ;Should jump
|
djnz 127,JUMP_36 ;Should jump
|
mov P1,#36
|
mov P1,#36
|
ljmp failed
|
ljmp failed
|
JUMP_36:
|
JUMP_36:
|
mov 127,#0
|
mov 127,#0
|
djnz 127,JUMP_36B ;Should jump
|
djnz 127,JUMP_36B ;Should jump
|
mov P1,#36
|
mov P1,#36
|
ljmp failed
|
ljmp failed
|
JUMP_36B:
|
JUMP_36B:
|
mov 127,#1
|
mov 127,#1
|
djnz 127,NOT_JUMP_36 ;Should not jump
|
djnz 127,NOT_JUMP_36 ;Should not jump
|
ajmp done36
|
ajmp done36
|
NOT_JUMP_36:
|
NOT_JUMP_36:
|
mov P1,#36
|
mov P1,#36
|
ljmp failed
|
ljmp failed
|
|
|
done86:
|
done86:
|
|
|
;;;;;;;;;;;;;;;; INST 88 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 88 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
ljmp done88
|
ljmp done88
|
clr a
|
clr a
|
testret: ;; subroutine called from acall and lcall
|
testret: ;; subroutine called from acall and lcall
|
inc a
|
inc a
|
ret
|
ret
|
clr a
|
clr a
|
|
|
done36:
|
done36:
|
|
|
;;;;;;;;;;;;;;;;; INST 37 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 37 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; inc a (37)
|
;; inc a (37)
|
mov a,#10
|
mov a,#10
|
clr c
|
clr c
|
inc a
|
inc a
|
jc fail37
|
jc fail37
|
subb a,#11
|
subb a,#11
|
jnz fail37
|
jnz fail37
|
|
|
mov a,#255
|
mov a,#255
|
setb c
|
setb c
|
inc a
|
inc a
|
jnc fail37
|
jnc fail37
|
jnz fail37
|
jnz fail37
|
ljmp done37
|
ljmp done37
|
|
|
fail37:
|
fail37:
|
mov P1,#37
|
mov P1,#37
|
ljmp failed
|
ljmp failed
|
done37:
|
done37:
|
|
|
;;;;;;;;;;;;;;;;; INST 38 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 38 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; inc Rn (38)
|
;; inc Rn (38)
|
mov r3,#10
|
mov r3,#10
|
clr c
|
clr c
|
inc r3
|
inc r3
|
jc fail38
|
jc fail38
|
mov a,r3
|
mov a,r3
|
subb a,#11
|
subb a,#11
|
jnz fail38
|
jnz fail38
|
|
|
mov r4,#255
|
mov r4,#255
|
setb c
|
setb c
|
inc r4
|
inc r4
|
jnc fail38
|
jnc fail38
|
mov a,r4
|
mov a,r4
|
jnz fail38
|
jnz fail38
|
ljmp done38
|
ljmp done38
|
|
|
fail38:
|
fail38:
|
mov P1,#38
|
mov P1,#38
|
ljmp failed
|
ljmp failed
|
done38:
|
done38:
|
|
|
;;;;;;;;;;;;;;;;; INST 39 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 39 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; inc direct (39)
|
;; inc direct (39)
|
mov 127,#10
|
mov 127,#10
|
clr c
|
clr c
|
inc 127
|
inc 127
|
jc fail39
|
jc fail39
|
mov a,127
|
mov a,127
|
subb a,#11
|
subb a,#11
|
jnz fail39
|
jnz fail39
|
|
|
mov 127,#255
|
mov 127,#255
|
setb c
|
setb c
|
inc 127
|
inc 127
|
jnc fail39
|
jnc fail39
|
mov a,127
|
mov a,127
|
jnz fail39
|
jnz fail39
|
ljmp done39
|
ljmp done39
|
|
|
fail39:
|
fail39:
|
mov P1,#39
|
mov P1,#39
|
ljmp failed
|
ljmp failed
|
done39:
|
done39:
|
|
|
;;;;;;;;;;;;;;;;; INST 40 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 40 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; inc @Ri (40)
|
;; inc @Ri (40)
|
mov r1,#126
|
mov r1,#126
|
mov @r1,#10
|
mov @r1,#10
|
clr c
|
clr c
|
inc @r1
|
inc @r1
|
jc fail40
|
jc fail40
|
mov a,@r1
|
mov a,@r1
|
subb a,#11
|
subb a,#11
|
jnz fail40
|
jnz fail40
|
|
|
mov @r1,#255
|
mov @r1,#255
|
setb c
|
setb c
|
inc @r1
|
inc @r1
|
jnc fail40
|
jnc fail40
|
mov a,@r1
|
mov a,@r1
|
jnz fail40
|
jnz fail40
|
ljmp done40
|
ljmp done40
|
|
|
fail40:
|
fail40:
|
mov P1,#40
|
mov P1,#40
|
ljmp failed
|
ljmp failed
|
done40:
|
done40:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 41 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 41 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; inc dptr (41)
|
;; inc dptr (41)
|
clr c;
|
clr c;
|
mov dptr,#12ffh
|
mov dptr,#12ffh
|
inc dptr
|
inc dptr
|
mov a,DPH
|
mov a,DPH
|
subb a,#13h
|
subb a,#13h
|
jz DPH_OK_41
|
jz DPH_OK_41
|
mov P1,#41
|
mov P1,#41
|
ljmp failed
|
ljmp failed
|
DPH_OK_41:
|
DPH_OK_41:
|
mov a,DPL
|
mov a,DPL
|
jz done41
|
jz done41
|
mov P1,#41
|
mov P1,#41
|
ljmp failed
|
ljmp failed
|
done41:
|
done41:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 42 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 42 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; JB bit,rel (42)
|
;; JB bit,rel (42)
|
mov a,#16
|
mov a,#16
|
jb acc.3,fail42
|
jb acc.3,fail42
|
jb acc.4,done42
|
jb acc.4,done42
|
|
|
fail42:
|
fail42:
|
mov P1,#42
|
mov P1,#42
|
ljmp failed
|
ljmp failed
|
done42:
|
done42:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 43 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 43 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jbc bit,rel (43)
|
;; jbc bit,rel (43)
|
mov a,#8
|
mov a,#8
|
jbc acc.3,CHECK_BIT_43
|
jbc acc.3,CHECK_BIT_43
|
mov P1,#43
|
mov P1,#43
|
ljmp failed
|
ljmp failed
|
CHECK_BIT_43:
|
CHECK_BIT_43:
|
jz done43
|
jz done43
|
mov P1,#43
|
mov P1,#43
|
ljmp failed
|
ljmp failed
|
done43:
|
done43:
|
|
|
;;;;;;;;;;;;;;;;; INST 44 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 44 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jc rel (44)
|
;; jc rel (44)
|
clr c
|
clr c
|
jc fail44
|
jc fail44
|
cpl c
|
cpl c
|
jc done44
|
jc done44
|
fail44:
|
fail44:
|
mov P1,#44
|
mov P1,#44
|
ljmp failed
|
ljmp failed
|
done44:
|
done44:
|
|
|
;;;;;;;;;;;;;;;;; INST 45 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 45 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jmp @a+dptr (45)
|
;; jmp @a+dptr (45)
|
mov a,#4
|
mov a,#4
|
mov dptr,#JMP_TBL
|
mov dptr,#JMP_TBL
|
jmp @a+dptr
|
jmp @a+dptr
|
JMP_TBL:
|
JMP_TBL:
|
ajmp JUMP_0
|
ajmp JUMP_0
|
ajmp JUMP_2
|
ajmp JUMP_2
|
ajmp JUMP_4
|
ajmp JUMP_4
|
ajmp JUMP_6
|
ajmp JUMP_6
|
JUMP_0:
|
JUMP_0:
|
JUMP_2:
|
JUMP_2:
|
JUMP_6:
|
JUMP_6:
|
mov P1,#43
|
mov P1,#43
|
ljmp failed
|
ljmp failed
|
JUMP_4:
|
JUMP_4:
|
|
|
;;;;;;;;;;;;;;;;; INST 46 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 46 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jnb bit,rel (46)
|
;; jnb bit,rel (46)
|
mov a,#16
|
mov a,#16
|
jnb acc.4,fail42
|
jnb acc.4,fail42
|
jnb acc.5,done46
|
jnb acc.5,done46
|
fail46:
|
fail46:
|
mov P1,#46
|
mov P1,#46
|
ljmp failed
|
ljmp failed
|
done46:
|
done46:
|
|
|
;;;;;;;;;;;;;;;;; INST 47 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 47 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jnc rel (47)
|
;; jnc rel (47)
|
setb c
|
setb c
|
jnc fail47
|
jnc fail47
|
cpl c
|
cpl c
|
jnc done47
|
jnc done47
|
fail47:
|
fail47:
|
mov P1,#47
|
mov P1,#47
|
ljmp failed
|
ljmp failed
|
|
|
|
|
|
|
done47:
|
done47:
|
|
|
;;;;;;;;;;;;;;;;; INST 48 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 48 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jnz rel (48)
|
;; jnz rel (48)
|
mov r1,#0
|
mov r1,#0
|
mov a,0
|
mov a,0
|
inc r1
|
inc r1
|
jnz fail48
|
jnz fail48
|
|
|
mov a,#1
|
mov a,#1
|
dec r1
|
dec r1
|
jnz done48
|
jnz done48
|
fail48:
|
fail48:
|
mov P1,#48
|
mov P1,#48
|
ljmp failed
|
ljmp failed
|
done48:
|
done48:
|
|
|
;;;;;;;;;;;;;;;;; INST 49 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 49 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; jz rel (49)
|
;; jz rel (49)
|
mov r1,1
|
mov r1,1
|
mov a,#2
|
mov a,#2
|
dec r1
|
dec r1
|
jz fail49
|
jz fail49
|
|
|
mov a,#0
|
mov a,#0
|
inc r1
|
inc r1
|
jz done49
|
jz done49
|
fail49:
|
fail49:
|
mov P1,#49
|
mov P1,#49
|
ljmp failed
|
ljmp failed
|
done49:
|
done49:
|
|
|
;;;;;;;;;;;;;;;; INST 50 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 50 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; lcall addr11
|
;; lcall addr11
|
mov a,#85
|
mov a,#85
|
lcall testret
|
lcall testret
|
inc a
|
inc a
|
jc fail50
|
jc fail50
|
subb a,#87
|
subb a,#87
|
jz done50
|
jz done50
|
fail50:
|
fail50:
|
mov P1,1
|
mov P1,1
|
ljmp failed
|
ljmp failed
|
done50:
|
done50:
|
;;;;;;;;;;;;;;;;; INST 51 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 51 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; ljmp (51)
|
;; ljmp (51)
|
ljmp done51
|
ljmp done51
|
mov P1,#51
|
mov P1,#51
|
ljmp failed
|
ljmp failed
|
done51:
|
done51:
|
|
|
;;;;;;;;;;;;;;;;; INST 52 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 52 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov a,Rn (52)
|
;; mov a,Rn (52)
|
mov r0,#10
|
mov r0,#10
|
clr a
|
clr a
|
setb c
|
setb c
|
mov a,r0
|
mov a,r0
|
jnc fail52
|
jnc fail52
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done52
|
jz done52
|
fail52:
|
fail52:
|
mov P1,#52
|
mov P1,#52
|
ljmp failed
|
ljmp failed
|
done52:
|
done52:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 53 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 53 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov a,direct (53)
|
;; mov a,direct (53)
|
mov 127,#10
|
mov 127,#10
|
clr a
|
clr a
|
setb c
|
setb c
|
mov a,127
|
mov a,127
|
jnc fail53
|
jnc fail53
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done53
|
jz done53
|
fail53:
|
fail53:
|
mov P1,#53
|
mov P1,#53
|
ljmp failed
|
ljmp failed
|
done53:
|
done53:
|
|
|
;;;;;;;;;;;;;;;;; INST 54 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 54 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov a,@Ri (54)
|
;; mov a,@Ri (54)
|
mov r0,#127
|
mov r0,#127
|
mov 127,#10
|
mov 127,#10
|
clr a
|
clr a
|
setb c
|
setb c
|
mov a,@r0
|
mov a,@r0
|
jnc fail54
|
jnc fail54
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done54
|
jz done54
|
fail54:
|
fail54:
|
mov P1,#54
|
mov P1,#54
|
ljmp failed
|
ljmp failed
|
done54:
|
done54:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 55 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 55 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov a,#data (55)
|
;; mov a,#data (55)
|
clr a
|
clr a
|
setb c
|
setb c
|
mov a,#10
|
mov a,#10
|
jnc fail55
|
jnc fail55
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done55
|
jz done55
|
fail55:
|
fail55:
|
mov P1,#55
|
mov P1,#55
|
ljmp failed
|
ljmp failed
|
done55:
|
done55:
|
|
|
;;;;;;;;;;;;;;;;; INST 56 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 56 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov Rn,a (56)
|
;; mov Rn,a (56)
|
mov a,#10
|
mov a,#10
|
mov r0,#0
|
mov r0,#0
|
setb c
|
setb c
|
mov r0,a
|
mov r0,a
|
jnc fail56
|
jnc fail56
|
clr a
|
clr a
|
mov a,r0
|
mov a,r0
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done56
|
jz done56
|
fail56:
|
fail56:
|
mov P1,#56
|
mov P1,#56
|
ljmp failed
|
ljmp failed
|
done56:
|
done56:
|
|
|
;;;;;;;;;;;;;;;;; INST 57 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 57 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov Rn,direct (57)
|
;; mov Rn,direct (57)
|
mov 127,#10
|
mov 127,#10
|
mov r0,#0
|
mov r0,#0
|
setb c
|
setb c
|
mov r0,127
|
mov r0,127
|
jnc fail57
|
jnc fail57
|
mov a,r0
|
mov a,r0
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done57
|
jz done57
|
fail57:
|
fail57:
|
mov P1,#57
|
mov P1,#57
|
ljmp failed
|
ljmp failed
|
done57:
|
done57:
|
|
|
;;;;;;;;;;;;;;;;; INST 58 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 58 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov Rn,#data (58)
|
;; mov Rn,#data (58)
|
mov r0,#0
|
mov r0,#0
|
clr a
|
clr a
|
setb c
|
setb c
|
mov r0,#10
|
mov r0,#10
|
jnc fail58
|
jnc fail58
|
mov a,r0
|
mov a,r0
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done58
|
jz done58
|
fail58:
|
fail58:
|
mov P1,#58
|
mov P1,#58
|
ljmp failed
|
ljmp failed
|
done58:
|
done58:
|
|
|
;;;;;;;;;;;;;;;;; INST 59 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 59 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov direct,a (59)
|
;; mov direct,a (59)
|
mov a,#10
|
mov a,#10
|
clr 127
|
clr 127
|
setb c
|
setb c
|
mov 127,a
|
mov 127,a
|
jnc fail59
|
jnc fail59
|
clr a
|
clr a
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done59
|
jz done59
|
fail59:
|
fail59:
|
mov P1,#59
|
mov P1,#59
|
ljmp failed
|
ljmp failed
|
done59:
|
done59:
|
|
|
;;;;;;;;;;;;;;;;; INST 60 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 60 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov direct,Rn (60)
|
;; mov direct,Rn (60)
|
mov r0,#10
|
mov r0,#10
|
clr 127
|
clr 127
|
setb c
|
setb c
|
clr a
|
clr a
|
mov 127,r0
|
mov 127,r0
|
jnz fail60
|
jnz fail60
|
jnc fail60
|
jnc fail60
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done60
|
jz done60
|
fail60:
|
fail60:
|
mov P1,#60
|
mov P1,#60
|
ljmp failed
|
ljmp failed
|
done60:
|
done60:
|
|
|
;;;;;;;;;;;;;;;;; INST 61 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 61 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov direct,direct (61)
|
;; mov direct,direct (61)
|
mov 127,#10
|
mov 127,#10
|
clr 126
|
clr 126
|
clr a
|
clr a
|
setb c
|
setb c
|
mov 126,127
|
mov 126,127
|
jnz fail61
|
jnz fail61
|
jnc fail61
|
jnc fail61
|
mov a,126
|
mov a,126
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done61
|
jz done61
|
fail61:
|
fail61:
|
mov P1,#61
|
mov P1,#61
|
ljmp failed
|
ljmp failed
|
done61:
|
done61:
|
|
|
;;;;;;;;;;;;;;;;; INST 62 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 62 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov direct,@Ri (62)
|
;; mov direct,@Ri (62)
|
mov 127,#10
|
mov 127,#10
|
mov r0,#127
|
mov r0,#127
|
clr 126
|
clr 126
|
clr a
|
clr a
|
setb c
|
setb c
|
mov 126,@r0
|
mov 126,@r0
|
jnz fail62
|
jnz fail62
|
jnc fail62
|
jnc fail62
|
mov a,126
|
mov a,126
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done62
|
jz done62
|
fail62:
|
fail62:
|
mov P1,#62
|
mov P1,#62
|
ljmp failed
|
ljmp failed
|
done62:
|
done62:
|
|
|
;;;;;;;;;;;;;;;;; INST 63 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 63 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov direct,#data (63)
|
;; mov direct,#data (63)
|
clr 127
|
clr 127
|
clr a
|
clr a
|
setb c
|
setb c
|
mov 127,#10
|
mov 127,#10
|
jnz fail63
|
jnz fail63
|
jnc fail63
|
jnc fail63
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done63
|
jz done63
|
fail63:
|
fail63:
|
mov P1,#63
|
mov P1,#63
|
ljmp failed
|
ljmp failed
|
done63:
|
done63:
|
|
|
;;;;;;;;;;;;;;;;; INST 64 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 64 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov @Ri,a (64)
|
;; mov @Ri,a (64)
|
mov a,#10
|
mov a,#10
|
mov r0,#127
|
mov r0,#127
|
mov @r0,#0
|
mov @r0,#0
|
setb c
|
setb c
|
mov @r0,a
|
mov @r0,a
|
jnc fail64
|
jnc fail64
|
clr a
|
clr a
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done64
|
jz done64
|
fail64:
|
fail64:
|
mov P1,#64
|
mov P1,#64
|
ljmp failed
|
ljmp failed
|
done64:
|
done64:
|
|
|
;;;;;;;;;;;;;;;;; INST 65 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 65 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov @Ri,direct (65)
|
;; mov @Ri,direct (65)
|
mov 127,#10
|
mov 127,#10
|
mov r0,#126
|
mov r0,#126
|
mov @r0,#0
|
mov @r0,#0
|
clr a
|
clr a
|
setb c
|
setb c
|
mov @r0,127
|
mov @r0,127
|
jnc fail65
|
jnc fail65
|
jnz fail65
|
jnz fail65
|
mov a,126
|
mov a,126
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done65
|
jz done65
|
fail65:
|
fail65:
|
mov P1,#65
|
mov P1,#65
|
ljmp failed
|
ljmp failed
|
done65:
|
done65:
|
|
|
;;;;;;;;;;;;;;;;; INST 66 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 66 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov @Ri,#data (66)
|
;; mov @Ri,#data (66)
|
mov r0,#127
|
mov r0,#127
|
mov @r0,#0
|
mov @r0,#0
|
clr a
|
clr a
|
setb c
|
setb c
|
mov @r0,#10
|
mov @r0,#10
|
jnz fail66
|
jnz fail66
|
jnc fail66
|
jnc fail66
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#10
|
subb a,#10
|
jz done66
|
jz done66
|
fail66:
|
fail66:
|
mov P1,#66
|
mov P1,#66
|
ljmp failed
|
ljmp failed
|
done66:
|
done66:
|
|
|
;;;;;;;;;;;;;;;;; INST 67 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 67 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov c,bit (67)
|
;; mov c,bit (67)
|
mov a,#1
|
mov a,#1
|
clr c
|
clr c
|
mov c,acc.0
|
mov c,acc.0
|
jnc fail67
|
jnc fail67
|
setb c
|
setb c
|
mov c,acc.1
|
mov c,acc.1
|
jnc done67
|
jnc done67
|
fail67:
|
fail67:
|
mov P1,#67
|
mov P1,#67
|
ljmp failed
|
ljmp failed
|
done67:
|
done67:
|
|
|
;;;;;;;;;;;;;;;;; INST 68 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 68 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov bit,c (68)
|
;; mov bit,c (68)
|
setb c
|
setb c
|
mov acc.0,c
|
mov acc.0,c
|
cpl c
|
cpl c
|
subb a,#1
|
subb a,#1
|
jz done68
|
jz done68
|
mov P1,#68
|
mov P1,#68
|
ljmp failed
|
ljmp failed
|
done68:
|
done68:
|
|
|
;;;;;;;;;;;;;;;;; INST 69 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 69 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mov dptr,#data (69)
|
;; mov dptr,#data (69)
|
mov dptr,#1234h
|
mov dptr,#1234h
|
mov a,DPH
|
mov a,DPH
|
subb a,#12h
|
subb a,#12h
|
jnz fail69
|
jnz fail69
|
mov a,DPL
|
mov a,DPL
|
subb a,#34h
|
subb a,#34h
|
jz done69
|
jz done69
|
fail69:
|
fail69:
|
mov P1,#69
|
mov P1,#69
|
ljmp failed
|
ljmp failed
|
done69:
|
done69:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 70 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 70 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; movc a,@a+dptr (70)
|
;; movc a,@a+dptr (70)
|
clr a
|
clr a
|
mov dptr,#DB_TBL
|
mov dptr,#DB_TBL
|
movc a,@a+dptr
|
movc a,@a+dptr
|
subb a,#66h
|
subb a,#66h
|
jnz fail70
|
jnz fail70
|
mov a,#1
|
mov a,#1
|
movc a,@a+dptr
|
movc a,@a+dptr
|
subb a,#77h
|
subb a,#77h
|
jz done70
|
jz done70
|
jnz fail70
|
jnz fail70
|
DB_TBL:
|
DB_TBL:
|
db 66h
|
db 66h
|
db 77h
|
db 77h
|
fail70:
|
fail70:
|
mov P1,#70
|
mov P1,#70
|
ljmp failed
|
ljmp failed
|
done70:
|
done70:
|
|
|
|
|
;;;;;;;;;;;;;;;;; INST 71 ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; INST 71 ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; movc a,@a+PC (71)
|
;; movc a,@a+PC (71)
|
mov a,#13
|
mov a,#13
|
movc a,@a+pc
|
movc a,@a+pc
|
subb a,#66h
|
subb a,#66h
|
jnz fail71
|
jnz fail71
|
mov a,#7
|
mov a,#7
|
movc a,@a+pc
|
movc a,@a+pc
|
subb a,#77h
|
subb a,#77h
|
jz done71
|
jz done71
|
jnz fail71
|
jnz fail71
|
db 66h
|
db 66h
|
db 77h
|
db 77h
|
fail71:
|
fail71:
|
mov P1,#71
|
mov P1,#71
|
ljmp failed
|
ljmp failed
|
done71:
|
done71:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 76 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 76 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; mul AB (76)
|
;; mul AB (76)
|
mov a,#80
|
mov a,#80
|
mov B,#160
|
mov B,#160
|
mul AB ; = 3200h
|
mul AB ; = 3200h
|
jc fail76
|
jc fail76
|
jnz fail76
|
jnz fail76
|
mov c, ov
|
mov c, ov
|
jnc fail76
|
jnc fail76
|
mov a,B
|
mov a,B
|
clr c
|
clr c
|
subb a,#32h
|
subb a,#32h
|
jnz fail76
|
jnz fail76
|
|
|
mov a,#111
|
mov a,#111
|
mov B,#87
|
mov B,#87
|
mul AB ; = 25b9h
|
mul AB ; = 25b9h
|
jc fail76
|
jc fail76
|
mov c, ov
|
mov c, ov
|
jnc fail76
|
jnc fail76
|
|
|
clr c
|
clr c
|
subb a,#0b9h
|
subb a,#0b9h
|
jnz fail76
|
jnz fail76
|
mov a,B
|
mov a,B
|
subb a,#25h
|
subb a,#25h
|
jnz fail76
|
jnz fail76
|
|
|
mov a,#11
|
mov a,#11
|
mov B,#17
|
mov B,#17
|
mul AB ; = 00BBh
|
mul AB ; = 00BBh
|
jc fail76
|
jc fail76
|
mov c, ov
|
mov c, ov
|
jc fail76
|
jc fail76
|
clr c
|
clr c
|
subb a,#0bbh
|
subb a,#0bbh
|
jnz fail76
|
jnz fail76
|
mov a,B
|
mov a,B
|
jnz fail76
|
jnz fail76
|
ljmp done76
|
ljmp done76
|
|
|
fail76:
|
fail76:
|
mov P1,#76
|
mov P1,#76
|
ljmp failed
|
ljmp failed
|
done76:
|
done76:
|
|
|
;;;;;;;;;;;;;;;; INST 77 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 77 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; nop
|
;; nop
|
mov a,#85
|
mov a,#85
|
setb c
|
setb c
|
nop
|
nop
|
jnc fail77
|
jnc fail77
|
subb a,#84
|
subb a,#84
|
jnz fail77
|
jnz fail77
|
|
|
mov a,#123
|
mov a,#123
|
clr c
|
clr c
|
nop
|
nop
|
jc fail77
|
jc fail77
|
subb a,#123
|
subb a,#123
|
jz done77
|
jz done77
|
fail77:
|
fail77:
|
mov P1,#77
|
mov P1,#77
|
ljmp failed
|
ljmp failed
|
done77:
|
done77:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 78 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 78 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; orl a,Rn (78)
|
;; orl a,Rn (78)
|
mov a,#90h
|
mov a,#90h
|
mov r0,#09h
|
mov r0,#09h
|
setb c
|
setb c
|
orl a,r0
|
orl a,r0
|
jnc fail78
|
jnc fail78
|
clr c
|
clr c
|
subb a,#99h
|
subb a,#99h
|
jnz fail78
|
jnz fail78
|
|
|
mov a,#48h
|
mov a,#48h
|
mov r0,#19h
|
mov r0,#19h
|
clr c
|
clr c
|
orl a,r0
|
orl a,r0
|
jc fail78
|
jc fail78
|
subb a,#59h
|
subb a,#59h
|
jz done78
|
jz done78
|
fail78:
|
fail78:
|
mov P1,#78
|
mov P1,#78
|
ljmp failed
|
ljmp failed
|
done78:
|
done78:
|
|
|
;;;;;;;;;;;;;;;; INST 79 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 79 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; orl a,direct (79)
|
;; orl a,direct (79)
|
mov a,#90h
|
mov a,#90h
|
mov 127,#09h
|
mov 127,#09h
|
setb c
|
setb c
|
orl a,127
|
orl a,127
|
jnc fail79
|
jnc fail79
|
clr c
|
clr c
|
subb a,#99h
|
subb a,#99h
|
jnz fail79
|
jnz fail79
|
|
|
mov a,#48h
|
mov a,#48h
|
mov 127,#19h
|
mov 127,#19h
|
clr c
|
clr c
|
orl a,127
|
orl a,127
|
jc fail79
|
jc fail79
|
subb a,#59h
|
subb a,#59h
|
jz done79
|
jz done79
|
fail79:
|
fail79:
|
mov P1,#79
|
mov P1,#79
|
ljmp failed
|
ljmp failed
|
done79:
|
done79:
|
|
|
;;;;;;;;;;;;;;;; INST 80 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 80 ;;;;;;;;;;;;;;;;;;;;;;;
|
;; orl a,@Ri (80)
|
;; orl a,@Ri (80)
|
mov a,#90h
|
mov a,#90h
|
mov r1,#127
|
mov r1,#127
|
mov @r1,#09h
|
mov @r1,#09h
|
setb c
|
setb c
|
orl a,@r1
|
orl a,@r1
|
jnc fail80
|
jnc fail80
|
clr c
|
clr c
|
subb a,#99h
|
subb a,#99h
|
jnz fail80
|
jnz fail80
|
|
|
mov a,#48h
|
mov a,#48h
|
mov @r1,#19h
|
mov @r1,#19h
|
clr c
|
clr c
|
orl a,@r1
|
orl a,@r1
|
jc fail80
|
jc fail80
|
subb a,#59h
|
subb a,#59h
|
jz done80
|
jz done80
|
fail80:
|
fail80:
|
mov P1,#80
|
mov P1,#80
|
ljmp failed
|
ljmp failed
|
done80:
|
done80:
|
|
|
;;;;;;;;;;;;;;;; INST 81 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 81 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; orl a,#data (81)
|
;; orl a,#data (81)
|
mov a,#90h
|
mov a,#90h
|
setb c
|
setb c
|
orl a,#09h
|
orl a,#09h
|
jnc fail81
|
jnc fail81
|
clr c
|
clr c
|
subb a,#99h
|
subb a,#99h
|
jnz fail81
|
jnz fail81
|
|
|
mov a,#48h
|
mov a,#48h
|
clr c
|
clr c
|
orl a,#19h
|
orl a,#19h
|
jc fail81
|
jc fail81
|
subb a,#59h
|
subb a,#59h
|
jz done81
|
jz done81
|
fail81:
|
fail81:
|
mov P1,#81
|
mov P1,#81
|
ljmp failed
|
ljmp failed
|
done81:
|
done81:
|
|
|
;;;;;;;;;;;;;;;; INST 82 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 82 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; orl direct,a (82)
|
;; orl direct,a (82)
|
mov a,#90h
|
mov a,#90h
|
mov 127,#09h
|
mov 127,#09h
|
setb c
|
setb c
|
orl 127,a
|
orl 127,a
|
jnc fail82
|
jnc fail82
|
clr c
|
clr c
|
subb a,#90h
|
subb a,#90h
|
jnz fail82
|
jnz fail82
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#99h
|
subb a,#99h
|
jnz fail82
|
jnz fail82
|
|
|
mov a,#48h
|
mov a,#48h
|
mov 127,#19h
|
mov 127,#19h
|
clr c
|
clr c
|
orl 127,a
|
orl 127,a
|
jc fail82
|
jc fail82
|
subb a,#48h
|
subb a,#48h
|
jnz fail82
|
jnz fail82
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#59h
|
subb a,#59h
|
jz done82
|
jz done82
|
fail82:
|
fail82:
|
mov P1,#82
|
mov P1,#82
|
ljmp failed
|
ljmp failed
|
done82:
|
done82:
|
|
|
;;;;;;;;;;;;;;;; INST 83 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 83 ;;;;;;;;;;;;;;;;;;;;;;;
|
;; orl direct,#data (83)
|
;; orl direct,#data (83)
|
mov a,#91h
|
mov a,#91h
|
mov 127,#09h
|
mov 127,#09h
|
setb c
|
setb c
|
orl 127,#90h
|
orl 127,#90h
|
jnc fail83
|
jnc fail83
|
clr c
|
clr c
|
subb a,#91h
|
subb a,#91h
|
jnz fail83
|
jnz fail83
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#99h
|
subb a,#99h
|
jnz fail83
|
jnz fail83
|
|
|
mov a,#49h
|
mov a,#49h
|
mov 127,#19h
|
mov 127,#19h
|
clr c
|
clr c
|
orl 127,#48h
|
orl 127,#48h
|
jc fail83
|
jc fail83
|
subb a,#49h
|
subb a,#49h
|
jnz fail83
|
jnz fail83
|
mov a,127
|
mov a,127
|
clr c
|
clr c
|
subb a,#59h
|
subb a,#59h
|
jz done83
|
jz done83
|
fail83:
|
fail83:
|
mov P1,#83
|
mov P1,#83
|
ljmp failed
|
ljmp failed
|
done83:
|
done83:
|
|
|
;;;;;;;;;;;;;;;; INST 84 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 84 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; orl c,bit (84)
|
;; orl c,bit (84)
|
mov a,#1
|
mov a,#1
|
orl c,acc.1
|
orl c,acc.1
|
jc fail84
|
jc fail84
|
orl c,acc.0
|
orl c,acc.0
|
jnc fail84
|
jnc fail84
|
orl c,acc.1
|
orl c,acc.1
|
jc done84
|
jc done84
|
fail84:
|
fail84:
|
mov P1,#84
|
mov P1,#84
|
ljmp failed
|
ljmp failed
|
done84:
|
done84:
|
|
|
;;;;;;;;;;;;;;;; INST 85 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 85 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; orl c,/bit (85)
|
;; orl c,/bit (85)
|
mov a,#1
|
mov a,#1
|
clr c
|
clr c
|
orl c,/acc.0
|
orl c,/acc.0
|
jc fail85
|
jc fail85
|
orl c,/acc.1
|
orl c,/acc.1
|
jnc fail85
|
jnc fail85
|
setb c
|
setb c
|
orl c,/acc.0
|
orl c,/acc.0
|
jc done85
|
jc done85
|
fail85:
|
fail85:
|
mov P1,#85
|
mov P1,#85
|
ljmp failed
|
ljmp failed
|
done85:
|
done85:
|
|
|
;;;;;;;;;;;;;;;; INST 86,87 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 86,87 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; push direct (87)
|
;; push direct (87)
|
clr c
|
clr c
|
mov dptr,#0123h
|
mov dptr,#0123h
|
mov 127,#8
|
mov 127,#8
|
push DPL
|
push DPL
|
push DPH
|
push DPH
|
push 127
|
push 127
|
mov a,8
|
mov a,8
|
subb a,#23h
|
subb a,#23h
|
jnz fail87
|
jnz fail87
|
mov a,9
|
mov a,9
|
subb a,#1
|
subb a,#1
|
jnz fail87
|
jnz fail87
|
mov a,10
|
mov a,10
|
subb a,#8
|
subb a,#8
|
jz done87
|
jz done87
|
fail87:
|
fail87:
|
mov P1,#87
|
mov P1,#87
|
ljmp failed
|
ljmp failed
|
done87:
|
done87:
|
|
|
;; pop direct (86)
|
;; pop direct (86)
|
pop SP
|
pop SP
|
pop 100
|
pop 100
|
mov a,100
|
mov a,100
|
subb a,#23h
|
subb a,#23h
|
jz done88
|
jz done88
|
mov P1,#86
|
mov P1,#86
|
ljmp failed
|
ljmp failed
|
|
|
done88:
|
done88:
|
|
|
;;;;;;;;;;;;;;;; INST 90 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 90 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; rl a (90)
|
;; rl a (90)
|
mov a,#129
|
mov a,#129
|
rl a
|
rl a
|
subb a,#3
|
subb a,#3
|
jz done90
|
jz done90
|
mov P1,#90
|
mov P1,#90
|
ljmp failed
|
ljmp failed
|
done90:
|
done90:
|
|
|
;;;;;;;;;;;;;;;; INST 91 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 91 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; rlc a (91)
|
;; rlc a (91)
|
setb c
|
setb c
|
mov a,#129
|
mov a,#129
|
rlc a
|
rlc a
|
subb a,#2 ;a(3)-c(1)-1
|
subb a,#2 ;a(3)-c(1)-1
|
jnz fail91
|
jnz fail91
|
clr c
|
clr c
|
mov a,#129
|
mov a,#129
|
rlc a
|
rlc a
|
subb a,#1 ;a(2)-c(1)-1
|
subb a,#1 ;a(2)-c(1)-1
|
jz done91
|
jz done91
|
fail91:
|
fail91:
|
mov P1,#91
|
mov P1,#91
|
ljmp failed
|
ljmp failed
|
done91:
|
done91:
|
|
|
;;;;;;;;;;;;;;;; INST 92 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 92 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; rr a (92)
|
;; rr a (92)
|
mov a,#129
|
mov a,#129
|
rr a
|
rr a
|
subb a,#192
|
subb a,#192
|
jz done92
|
jz done92
|
mov P1,#92
|
mov P1,#92
|
ljmp failed
|
ljmp failed
|
done92:
|
done92:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 93 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 93 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; rrc a (93)
|
;; rrc a (93)
|
setb c
|
setb c
|
mov a,#3
|
mov a,#3
|
rrc a
|
rrc a
|
subb a,#128 ;a(129)-c(1)-0
|
subb a,#128 ;a(129)-c(1)-0
|
jnz fail93
|
jnz fail93
|
clr c
|
clr c
|
mov a,#3
|
mov a,#3
|
rrc a
|
rrc a
|
subb a,#0 ;a(1)-c(1)-0
|
subb a,#0 ;a(1)-c(1)-0
|
jz done93
|
jz done93
|
fail93:
|
fail93:
|
mov P1,#93
|
mov P1,#93
|
ljmp failed
|
ljmp failed
|
done93:
|
done93:
|
|
|
;;;;;;;;;;;;;;;; INST 94 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 94 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; setb c (94)
|
;; setb c (94)
|
clr c
|
clr c
|
setb c
|
setb c
|
mov a,#1
|
mov a,#1
|
subb a,#0 ;a(1)-c(1)-0
|
subb a,#0 ;a(1)-c(1)-0
|
jz done94
|
jz done94
|
mov P1,#94
|
mov P1,#94
|
ljmp failed
|
ljmp failed
|
done94:
|
done94:
|
|
|
;;;;;;;;;;;;;;;; INST 95 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 95 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; setb bit (95)
|
;; setb bit (95)
|
clr a
|
clr a
|
setb acc.7
|
setb acc.7
|
subb a,#128
|
subb a,#128
|
jz done95
|
jz done95
|
mov P1,#95
|
mov P1,#95
|
ljmp failed
|
ljmp failed
|
done95:
|
done95:
|
|
|
;;;;;;;;;;;;;;;; INST 96 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 96 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; sjmp (96)
|
;; sjmp (96)
|
sjmp done96
|
sjmp done96
|
mov P1,#96
|
mov P1,#96
|
ljmp failed
|
ljmp failed
|
done96:
|
done96:
|
|
|
;;;;;;;;;;;;;;;; INST 97 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 97 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; subb a,Rn (97)
|
;; subb a,Rn (97)
|
setb c
|
setb c
|
mov a,#100
|
mov a,#100
|
mov r0,#10
|
mov r0,#10
|
subb a,r0 ; 100 - 10 - 1 = 89
|
subb a,r0 ; 100 - 10 - 1 = 89
|
jc fail97
|
jc fail97
|
add a,#167 ; 167 + 89 = 0
|
add a,#167 ; 167 + 89 = 0
|
jnz fail97
|
jnz fail97
|
clr c
|
clr c
|
mov a,#10
|
mov a,#10
|
mov r0,#100
|
mov r0,#100
|
subb a,r0 ; 10 - 100 - 0 = 166
|
subb a,r0 ; 10 - 100 - 0 = 166
|
jnc fail97
|
jnc fail97
|
add a,#90 ; 166 + 90 = 0
|
add a,#90 ; 166 + 90 = 0
|
jz done97
|
jz done97
|
fail97:
|
fail97:
|
mov P1,#97
|
mov P1,#97
|
ljmp failed
|
ljmp failed
|
done97:
|
done97:
|
|
|
;;;;;;;;;;;;;;;; INST 98 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 98 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; subb a,direct (98)
|
;; subb a,direct (98)
|
setb c
|
setb c
|
mov a,#100
|
mov a,#100
|
mov 127,#10
|
mov 127,#10
|
subb a,127 ; 100 - 10 - 1 = 89
|
subb a,127 ; 100 - 10 - 1 = 89
|
jc fail98
|
jc fail98
|
add a,#167 ; 167 + 89 = 0
|
add a,#167 ; 167 + 89 = 0
|
jnz fail98
|
jnz fail98
|
clr c
|
clr c
|
mov a,#10
|
mov a,#10
|
mov 127,#100
|
mov 127,#100
|
subb a,127 ; 10 - 100 - 0 = 166
|
subb a,127 ; 10 - 100 - 0 = 166
|
jnc fail98
|
jnc fail98
|
add a,#90 ; 166 + 90 = 0
|
add a,#90 ; 166 + 90 = 0
|
jz done98
|
jz done98
|
fail98:
|
fail98:
|
mov P1,#98
|
mov P1,#98
|
ljmp failed
|
ljmp failed
|
done98:
|
done98:
|
|
|
;;;;;;;;;;;;;;;; INST 99 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 99 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; subb a,@Ri (99)
|
;; subb a,@Ri (99)
|
setb c
|
setb c
|
mov r0,#126
|
mov r0,#126
|
mov a,#100
|
mov a,#100
|
mov @r0,#10
|
mov @r0,#10
|
subb a,@r0 ; 100 - 10 - 1 = 89
|
subb a,@r0 ; 100 - 10 - 1 = 89
|
jc fail99
|
jc fail99
|
add a,#167 ; 167 + 89 = 0
|
add a,#167 ; 167 + 89 = 0
|
jnz fail99
|
jnz fail99
|
clr c
|
clr c
|
mov a,#10
|
mov a,#10
|
mov @r0,#100
|
mov @r0,#100
|
subb a,@r0 ; 10 - 100 - 0 = 166
|
subb a,@r0 ; 10 - 100 - 0 = 166
|
jnc fail99
|
jnc fail99
|
add a,#90 ; 166 + 90 = 0
|
add a,#90 ; 166 + 90 = 0
|
jz done99
|
jz done99
|
fail99:
|
fail99:
|
mov P1,#99
|
mov P1,#99
|
ljmp failed
|
ljmp failed
|
done99:
|
done99:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 100 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 100 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; subb a,#data (100)
|
;; subb a,#data (100)
|
setb c
|
setb c
|
mov a,#100
|
mov a,#100
|
subb a,#10 ; 100 - 10 - 1 = 89
|
subb a,#10 ; 100 - 10 - 1 = 89
|
jc fail100
|
jc fail100
|
add a,#167 ; 167 + 89 = 0
|
add a,#167 ; 167 + 89 = 0
|
jnz fail100
|
jnz fail100
|
clr c
|
clr c
|
mov a,#10
|
mov a,#10
|
subb a,#100 ; 10 - 100 - 0 = 166
|
subb a,#100 ; 10 - 100 - 0 = 166
|
jnc fail100
|
jnc fail100
|
add a,#90 ; 166 + 90 = 0
|
add a,#90 ; 166 + 90 = 0
|
jz done100
|
jz done100
|
fail100:
|
fail100:
|
mov P1,#100
|
mov P1,#100
|
ljmp failed
|
ljmp failed
|
done100:
|
done100:
|
|
|
;;;;;;;;;;;;;;;; INST 101 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 101 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; swap a (101)
|
;; swap a (101)
|
clr c
|
clr c
|
mov a,#23h
|
mov a,#23h
|
swap a
|
swap a
|
jc fail101
|
jc fail101
|
subb a,#32h
|
subb a,#32h
|
jnz fail101
|
jnz fail101
|
mov a,#0C3h
|
mov a,#0C3h
|
setb c
|
setb c
|
swap a
|
swap a
|
jnc fail101
|
jnc fail101
|
clr c
|
clr c
|
subb a,#3Ch
|
subb a,#3Ch
|
jz done101
|
jz done101
|
fail101:
|
fail101:
|
mov P1,#101
|
mov P1,#101
|
ljmp failed
|
ljmp failed
|
done101:
|
done101:
|
|
|
;;;;;;;;;;;;;;;; INST 102 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 102 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xch a,Rn (102)
|
;; xch a,Rn (102)
|
mov a,#10
|
mov a,#10
|
mov r0,#97
|
mov r0,#97
|
xch a,r0
|
xch a,r0
|
subb a,#97
|
subb a,#97
|
jnz fail102
|
jnz fail102
|
mov a,r0
|
mov a,r0
|
subb a,#10
|
subb a,#10
|
jz done102
|
jz done102
|
fail102:
|
fail102:
|
mov P1,#102
|
mov P1,#102
|
ljmp failed
|
ljmp failed
|
done102:
|
done102:
|
|
|
;;;;;;;;;;;;;;;; INST 103 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 103 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xch a,direct (103)
|
;; xch a,direct (103)
|
mov a,#10
|
mov a,#10
|
mov 127,#99
|
mov 127,#99
|
xch a,127
|
xch a,127
|
subb a,#99
|
subb a,#99
|
jnz fail103
|
jnz fail103
|
mov a,127
|
mov a,127
|
subb a,#10
|
subb a,#10
|
jz done103
|
jz done103
|
fail103:
|
fail103:
|
mov P1,#103
|
mov P1,#103
|
ljmp failed
|
ljmp failed
|
done103:
|
done103:
|
|
|
;;;;;;;;;;;;;;;; INST 104 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 104 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xch a,@Ri (104)
|
;; xch a,@Ri (104)
|
mov a,#10
|
mov a,#10
|
mov r0,#127
|
mov r0,#127
|
mov 127,#99
|
mov 127,#99
|
xch a,@r0
|
xch a,@r0
|
subb a,#99
|
subb a,#99
|
jnz fail104
|
jnz fail104
|
mov a,127
|
mov a,127
|
subb a,#10
|
subb a,#10
|
jz done104
|
jz done104
|
fail104:
|
fail104:
|
mov P1,#104
|
mov P1,#104
|
ljmp failed
|
ljmp failed
|
done104:
|
done104:
|
|
|
;;;;;;;;;;;;;;;; INST 105 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 105 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xchd a,@Ri (105)
|
;; xchd a,@Ri (105)
|
mov a,#44h
|
mov a,#44h
|
mov r0,#127
|
mov r0,#127
|
mov 127,#55h
|
mov 127,#55h
|
xchd a,@r0
|
xchd a,@r0
|
subb a,#45h
|
subb a,#45h
|
jnz fail105
|
jnz fail105
|
mov a,127
|
mov a,127
|
subb a,#54h
|
subb a,#54h
|
jz done105
|
jz done105
|
fail105:
|
fail105:
|
mov P1,#105
|
mov P1,#105
|
ljmp failed
|
ljmp failed
|
done105:
|
done105:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 106 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 106 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xrl a,Rn (106)
|
;; xrl a,Rn (106)
|
mov a,#35h
|
mov a,#35h
|
mov r0,#0C3h
|
mov r0,#0C3h
|
xrl a,r0
|
xrl a,r0
|
subb a,#0F6h
|
subb a,#0F6h
|
jz done106
|
jz done106
|
mov P1,#106
|
mov P1,#106
|
ljmp failed
|
ljmp failed
|
done106:
|
done106:
|
|
|
;;;;;;;;;;;;;;;; INST 107 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 107 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xrl a,direct (107)
|
;; xrl a,direct (107)
|
mov a,#0C3h
|
mov a,#0C3h
|
mov 127,#35h
|
mov 127,#35h
|
xrl a,127
|
xrl a,127
|
subb a,#0F6h
|
subb a,#0F6h
|
jz done107
|
jz done107
|
mov P1,#107
|
mov P1,#107
|
ljmp failed
|
ljmp failed
|
done107:
|
done107:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 108 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 108 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xrl a,@Ri (108)
|
;; xrl a,@Ri (108)
|
mov a,#35h
|
mov a,#35h
|
mov r0,#127
|
mov r0,#127
|
mov 127,#0C3h
|
mov 127,#0C3h
|
xrl a,@r0
|
xrl a,@r0
|
subb a,#0F6h
|
subb a,#0F6h
|
jz done108
|
jz done108
|
mov P1,#108
|
mov P1,#108
|
ljmp failed
|
ljmp failed
|
done108:
|
done108:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 109 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 109 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xrl a,#data (109)
|
;; xrl a,#data (109)
|
mov a,#35h
|
mov a,#35h
|
xrl a,#0C3h
|
xrl a,#0C3h
|
subb a,#0F6h
|
subb a,#0F6h
|
jz done109
|
jz done109
|
mov P1,#109
|
mov P1,#109
|
ljmp failed
|
ljmp failed
|
done109:
|
done109:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 110 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 110 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xrl direct,a (110)
|
;; xrl direct,a (110)
|
mov a,#35h
|
mov a,#35h
|
mov 127,#0C3h
|
mov 127,#0C3h
|
xrl 127,a
|
xrl 127,a
|
clr a
|
clr a
|
mov a,127
|
mov a,127
|
subb a,#0F6h
|
subb a,#0F6h
|
jz done110
|
jz done110
|
mov P1,#110
|
mov P1,#110
|
ljmp failed
|
ljmp failed
|
done110:
|
done110:
|
|
|
|
|
;;;;;;;;;;;;;;;; INST 111 ;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;; INST 111 ;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;; xrl direct,#data (111)
|
;; xrl direct,#data (111)
|
mov 127,#35h
|
mov 127,#35h
|
xrl 127,#0C3h
|
xrl 127,#0C3h
|
mov a,127
|
mov a,127
|
subb a,#0F6h
|
subb a,#0F6h
|
jz done111
|
jz done111
|
mov P1,#111
|
mov P1,#111
|
ljmp failed
|
ljmp failed
|
done111:
|
done111:
|
|
|
|
|
;;;;;;;;;;;;;;;;; DONE ;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;; DONE ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
mov P1,#127 ; All instructions passed
|
mov P1,#127 ; All instructions passed
|
|
|
|
|
failed:
|
failed:
|
nop;
|
nop;
|
nop;
|
nop;
|
sjmp failed;
|
sjmp failed;
|
|
|
end
|
end
|
|
|