📄 testall.asm
字号:
ljmp fail21
CHECK_C_21: ;Checks that carry was set
jnc fail21
mov r1,#101
cjne r1,#100,CHECK_NC_21
ljmp fail21
CHECK_NC_21: ;Checks that carry was not set
jc fail21
ljmp done21
fail21:
mov P1,#21
ljmp failed
done21:
;;;;;;;;;;;;;;;; INST 22 ;;;;;;;;;;;;;;;;;;;;;;;
;; cjne @Ri,#data,rel (22)
mov 125,#99
mov 126,#100
mov 127,#101
mov r1,#125
cjne @r1,#100, CHECK_EQ_22
ljmp fail22
CHECK_EQ_22:
jnc fail22
mov r1,#126
cjne @r1,#100,fail22
jc fail22
mov r1,#127
cjne @r1,#100,CHECK_NC_22
ljmp fail22
CHECK_NC_22: ;Checks that carry was not set
jc fail22
ljmp done22
fail22:
mov P1,#22
ljmp failed
done22:
;;;;;;;;;;;;;;;; INST 23 ;;;;;;;;;;;;;;;;;;;;;;;
;; clr a (23)
mov a,#86
clr a
jnz fail23
mov a,#86
clr a
mov r0,a
mov a,r0
jnz fail23
ljmp done23
fail23:
mov P1,#23
ljmp failed
done23:
;;;;;;;;;;;;;;;; INST 24 ;;;;;;;;;;;;;;;;;;;;;;;
;; clr c (24)
setb c
clr c
jc fail24
clr c
jc fail24
ljmp done24
fail24:
mov P1,#24
ljmp failed
done24:
;;;;;;;;;;;;;;;; INST 25 ;;;;;;;;;;;;;;;;;;;;;;;
;; clr bit (25)
mov a, #02h
jz fail25
clr acc.1
jnz fail25
setb 7
mov c, 7
jc clr1;
ljmp fail25;
clr1:
clr 7
mov c, 7
jc fail25
clr 7
mov c, 7
jc fail25
ljmp done25
fail25:
mov P1,#25
ljmp failed
done25:
;;;;;;;;;;;;;;;; INST 26 ;;;;;;;;;;;;;;;;;;;;;;;
;; cpl a (26)
mov a,#255
cpl a
jnz fail26
mov a,#85
cpl a
clr c
subb a,#170
jnz fail26
ljmp done26
fail26:
mov P1,#26
ljmp failed
done26:
;;;;;;;;;;;;;;;; INST 27 ;;;;;;;;;;;;;;;;;;;;;;;
;; cpl c (27)
setb c
cpl c
jc fail27
clr c
cpl c
jnc fail27
ljmp done27
fail27:
mov P1,#27
ljmp failed
done27:
;;;;;;;;;;;;;;;; INST 28 ;;;;;;;;;;;;;;;;;;;;;;;
;; cpl bit (28)
clr a
setb acc.5
cpl acc.5
jnz fail28
clr acc.5
cpl acc.5
jz fail28
ljmp done28
fail28:
mov P1,#28
ljmp failed
done28:
;;;;;;;;;;;;;;;; INST 29 ;;;;;;;;;;;;;;;;;;;;;;;
;; DA a (29)
mov a,#80h
add a,#99h
da a
subb a,#78h ;Will clr acc if c set
jz done29
mov P1,#29
ljmp failed
done29:
;;;;;;;;;;;;;;;;; INST 30 ;;;;;;;;;;;;;;;;;;;;;;
;; dec a (30)
mov a,#10
setb c
dec a
jnc fail30
clr c
subb a,#9
jnz fail30
mov a,#0
clr c
dec a
jc fail30
subb a,#255
jnz fail30
ljmp done30
fail30:
mov P1,#30
ljmp failed
done30:
;;;;;;;;;;;;;;;;; INST 31 ;;;;;;;;;;;;;;;;;;;;;;
;; dec Rn (31)
mov r2,#10
setb c
dec r2
jnc fail31
clr c
mov a,r2
subb a,#9
jnz fail31
mov r2,#0
clr c
dec r2
jc fail31
mov a,r2
subb a,#255
jnz fail31
ljmp done31
fail31:
mov P1,#31
ljmp failed
done31:
;;;;;;;;;;;;;;;;; INST 32 ;;;;;;;;;;;;;;;;;;;;;;
;; dec direct (32)
mov 127,#10
setb c
dec 127
jnc fail32
clr c
mov a,127
subb a,#9
jnz fail32
mov 127,#0
clr c
dec 127
jc fail32
mov a,127
subb a,#255
jnz fail32
ljmp done32
fail32:
mov P1,#32
ljmp failed
done32:
;;;;;;;;;;;;;;;;; INST 33 ;;;;;;;;;;;;;;;;;;;;;;
;; dec @Ri (33)
mov r0,#127
mov @r0,#10
setb c
dec @r0
jnc fail33
clr c
mov a,@r0
subb a,#9
jnz fail33
mov @r0,#0
clr c
dec @r0
jc fail33
mov a,@r0
subb a,#255
jnz fail33
ljmp done33
fail33:
mov P1,#33
ljmp failed
done33:
;;;;;;;;;;;;;;;;; INST 34 ;;;;;;;;;;;;;;;;;;;;;;
;; div AB (34)
mov a,#251
mov B,#18
div AB
jc fail34
mov c,OV
jc fail34
subb a,#13
jnz fail34
mov a,B
subb a,#17
jnz fail34
mov a,#180
mov B,#15
div AB
jc fail34
mov c,OV
jc fail34
subb a,#12
jnz fail34
mov a,B
jnz fail34
mov a,#0
mov B,#15
div AB
jc fail34
mov c,OV
jc fail34
jnz fail34
mov a,B
subb a,#15
mov a,#0
mov B,#0
div AB
jc fail34
mov c,OV
jnc fail34
mov a,#170
mov B,#0
div AB
jc fail34
mov c,OV
jnc fail34
ljmp done34
fail34:
mov P1,#34
ljmp failed
done34:
;;;;;;;;;;;;;;;;; INST 35 ;;;;;;;;;;;;;;;;;;;;;;
;; djnz Rn,rel (35)
mov r0,#10
djnz r0,JUMP_35 ;Should jump
mov P1,#35
ljmp failed
JUMP_35:
mov r0,#0
djnz r0,JUMP_35B ;Should jump
mov P1,#35
ljmp failed
JUMP_35B:
mov r0,#1
djnz r0,NOT_JUMP_35 ;Should not jump
ajmp done35
NOT_JUMP_35:
mov P1,#35
ljmp failed
done35:
;;;;;;;;;;;;;;;;; INST 36 ;;;;;;;;;;;;;;;;;;;;;;
;; djnz direct,rel (36)
mov 127,#10
djnz 127,JUMP_36 ;Should jump
mov P1,#36
ljmp failed
JUMP_36:
mov 127,#0
djnz 127,JUMP_36B ;Should jump
mov P1,#36
ljmp failed
JUMP_36B:
mov 127,#1
djnz 127,NOT_JUMP_36 ;Should not jump
ajmp done36
NOT_JUMP_36:
mov P1,#36
ljmp failed
done86:
;;;;;;;;;;;;;;;; INST 88 ;;;;;;;;;;;;;;;;;;;;;;;
ljmp done88
clr a
testret: ;; subroutine called from acall and lcall
inc a
ret
clr a
done36:
;;;;;;;;;;;;;;;;; INST 37 ;;;;;;;;;;;;;;;;;;;;;;
;; inc a (37)
mov a,#10
clr c
inc a
jc fail37
subb a,#11
jnz fail37
mov a,#255
setb c
inc a
jnc fail37
jnz fail37
ljmp done37
fail37:
mov P1,#37
ljmp failed
done37:
;;;;;;;;;;;;;;;;; INST 38 ;;;;;;;;;;;;;;;;;;;;;;
;; inc Rn (38)
mov r3,#10
clr c
inc r3
jc fail38
mov a,r3
subb a,#11
jnz fail38
mov r4,#255
setb c
inc r4
jnc fail38
mov a,r4
jnz fail38
ljmp done38
fail38:
mov P1,#38
ljmp failed
done38:
;;;;;;;;;;;;;;;;; INST 39 ;;;;;;;;;;;;;;;;;;;;;;
;; inc direct (39)
mov 127,#10
clr c
inc 127
jc fail39
mov a,127
subb a,#11
jnz fail39
mov 127,#255
setb c
inc 127
jnc fail39
mov a,127
jnz fail39
ljmp done39
fail39:
mov P1,#39
ljmp failed
done39:
;;;;;;;;;;;;;;;;; INST 40 ;;;;;;;;;;;;;;;;;;;;;;
;; inc @Ri (40)
mov r1,#126
mov @r1,#10
clr c
inc @r1
jc fail40
mov a,@r1
subb a,#11
jnz fail40
mov @r1,#255
setb c
inc @r1
jnc fail40
mov a,@r1
jnz fail40
ljmp done40
fail40:
mov P1,#40
ljmp failed
done40:
;;;;;;;;;;;;;;;;; INST 41 ;;;;;;;;;;;;;;;;;;;;;;
;; inc dptr (41)
clr c;
mov dptr,#12ffh
inc dptr
mov a,DPH
subb a,#13h
jz DPH_OK_41
mov P1,#41
ljmp failed
DPH_OK_41:
mov a,DPL
jz done41
mov P1,#41
ljmp failed
done41:
;;;;;;;;;;;;;;;;; INST 42 ;;;;;;;;;;;;;;;;;;;;;;
;; JB bit,rel (42)
mov a,#16
jb acc.3,fail42
jb acc.4,done42
fail42:
mov P1,#42
ljmp failed
done42:
;;;;;;;;;;;;;;;;; INST 43 ;;;;;;;;;;;;;;;;;;;;;;
;; jbc bit,rel (43)
mov a,#8
jbc acc.3,CHECK_BIT_43
mov P1,#43
ljmp failed
CHECK_BIT_43:
jz done43
mov P1,#43
ljmp failed
done43:
;;;;;;;;;;;;;;;;; INST 44 ;;;;;;;;;;;;;;;;;;;;;;
;; jc rel (44)
clr c
jc fail44
cpl c
jc done44
fail44:
mov P1,#44
ljmp failed
done44:
;;;;;;;;;;;;;;;;; INST 45 ;;;;;;;;;;;;;;;;;;;;;;
;; jmp @a+dptr (45)
mov a,#4
mov dptr,#JMP_TBL
jmp @a+dptr
JMP_TBL:
ajmp JUMP_0
ajmp JUMP_2
ajmp JUMP_4
ajmp JUMP_6
JUMP_0:
JUMP_2:
JUMP_6:
mov P1,#43
ljmp failed
JUMP_4:
;;;;;;;;;;;;;;;;; INST 46 ;;;;;;;;;;;;;;;;;;;;;;
;; jnb bit,rel (46)
mov a,#16
jnb acc.4,fail42
jnb acc.5,done46
fail46:
mov P1,#46
ljmp failed
done46:
;;;;;;;;;;;;;;;;; INST 47 ;;;;;;;;;;;;;;;;;;;;;;
;; jnc rel (47)
setb c
jnc fail47
cpl c
jnc done47
fail47:
mov P1,#47
ljmp failed
done47:
;;;;;;;;;;;;;;;;; INST 48 ;;;;;;;;;;;;;;;;;;;;;;
;; jnz rel (48)
mov r1,#0
mov a,0
inc r1
jnz fail48
mov a,#1
dec r1
jnz done48
fail48:
mov P1,#48
ljmp failed
done48:
;;;;;;;;;;;;;;;;; INST 49 ;;;;;;;;;;;;;;;;;;;;;;
;; jz rel (49)
mov r1,1
mov a,#2
dec r1
jz fail49
mov a,#0
inc r1
jz done49
fail49:
mov P1,#49
ljmp failed
done49:
;;;;;;;;;;;;;;;; INST 50 ;;;;;;;;;;;;;;;;;;;;;;
;; lcall addr11
mov a,#85
lcall testret
inc a
jc fail50
subb a,#87
jz done50
fail50:
mov P1,1
ljmp failed
done50:
;;;;;;;;;;;;;;;;; INST 51 ;;;;;;;;;;;;;;;;;;;;;;
;; ljmp (51)
ljmp done51
mov P1,#51
ljmp failed
done51:
;;;;;;;;;;;;;;;;; INST 52 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,Rn (52)
mov r0,#10
clr a
setb c
mov a,r0
jnc fail52
clr c
subb a,#10
jz done52
fail52:
mov P1,#52
ljmp failed
done52:
;;;;;;;;;;;;;;;;; INST 53 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,direct (53)
mov 127,#10
clr a
setb c
mov a,127
jnc fail53
clr c
subb a,#10
jz done53
fail53:
mov P1,#53
ljmp failed
done53:
;;;;;;;;;;;;;;;;; INST 54 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,@Ri (54)
mov r0,#127
mov 127,#10
clr a
setb c
mov a,@r0
jnc fail54
clr c
subb a,#10
jz done54
fail54:
mov P1,#54
ljmp failed
done54:
;;;;;;;;;;;;;;;;; INST 55 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,#data (55)
clr a
setb c
mov a,#10
jnc fail55
clr c
subb a,#10
jz done55
fail55:
mov P1,#55
ljmp failed
done55:
;;;;;;;;;;;;;;;;; INST 56 ;;;;;;;;;;;;;;;;;;;;;;
;; mov Rn,a (56)
mov a,#10
mov r0,#0
setb c
mov r0,a
jnc fail56
clr a
mov a,r0
clr c
subb a,#10
jz done56
fail56:
mov P1,#56
ljmp failed
done56:
;;;;;;;;;;;;;;;;; INST 57 ;;;;;;;;;;;;;;;;;;;;;;
;; mov Rn,direct (57)
mov 127,#10
mov r0,#0
setb c
mov r0,127
jnc fail57
mov a,r0
clr c
subb a,#10
jz done57
fail57:
mov P1,#57
ljmp failed
done57:
;;;;;;;;;;;;;;;;; INST 58 ;;;;;;;;;;;;;;;;;;;;;;
;; mov Rn,#data (58)
mov r0,#0
clr a
setb c
mov r0,#10
jnc fail58
mov a,r0
clr c
subb a,#10
jz done58
fail58:
mov P1,#58
ljmp failed
done58:
;;;;;;;;;;;;;;;;; INST 59 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,a (59)
mov a,#10
clr 127
setb c
mov 127,a
jnc fail59
clr a
mov a,127
clr c
subb a,#10
jz done59
fail59:
mov P1,#59
ljmp failed
done59:
;;;;;;;;;;;;;;;;; INST 60 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,Rn (60)
mov r0,#10
clr 127
setb c
clr a
mov 127,r0
jnz fail60
jnc fail60
mov a,127
clr c
subb a,#10
jz done60
fail60:
mov P1,#60
ljmp failed
done60:
;;;;;;;;;;;;;;;;; INST 61 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,direct (61)
mov 127,#10
clr 126
clr a
setb c
mov 126,127
jnz fail61
jnc fail61
mov a,126
clr c
subb a,#10
jz done61
fail61:
mov P1,#61
ljmp failed
done61:
;;;;;;;;;;;;;;;;; INST 62 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,@Ri (62)
mov 127,#10
mov r0,#127
clr 126
clr a
setb c
mov 126,@r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -