📄 testall.asm
字号:
jnz fail62
jnc fail62
mov a,126
clr c
subb a,#10
jz done62
fail62:
mov P1,#62
ljmp failed
done62:
;;;;;;;;;;;;;;;;; INST 63 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,#data (63)
clr 127
clr a
setb c
mov 127,#10
jnz fail63
jnc fail63
mov a,127
clr c
subb a,#10
jz done63
fail63:
mov P1,#63
ljmp failed
done63:
;;;;;;;;;;;;;;;;; INST 64 ;;;;;;;;;;;;;;;;;;;;;;
;; mov @Ri,a (64)
mov a,#10
mov r0,#127
mov @r0,#0
setb c
mov @r0,a
jnc fail64
clr a
mov a,127
clr c
subb a,#10
jz done64
fail64:
mov P1,#64
ljmp failed
done64:
;;;;;;;;;;;;;;;;; INST 65 ;;;;;;;;;;;;;;;;;;;;;;
;; mov @Ri,direct (65)
mov 127,#10
mov r0,#126
mov @r0,#0
clr a
setb c
mov @r0,127
jnc fail65
jnz fail65
mov a,126
clr c
subb a,#10
jz done65
fail65:
mov P1,#65
ljmp failed
done65:
;;;;;;;;;;;;;;;;; INST 66 ;;;;;;;;;;;;;;;;;;;;;;
;; mov @Ri,#data (66)
mov r0,#127
mov @r0,#0
clr a
setb c
mov @r0,#10
jnz fail66
jnc fail66
mov a,127
clr c
subb a,#10
jz done66
fail66:
mov P1,#66
ljmp failed
done66:
;;;;;;;;;;;;;;;;; INST 67 ;;;;;;;;;;;;;;;;;;;;;;
;; mov c,bit (67)
mov a,#1
clr c
mov c,acc.0
jnc fail67
setb c
mov c,acc.1
jnc done67
fail67:
mov P1,#67
ljmp failed
done67:
;;;;;;;;;;;;;;;;; INST 68 ;;;;;;;;;;;;;;;;;;;;;;
;; mov bit,c (68)
setb c
mov acc.0,c
cpl c
subb a,#1
jz done68
mov P1,#68
ljmp failed
done68:
;;;;;;;;;;;;;;;;; INST 69 ;;;;;;;;;;;;;;;;;;;;;;
;; mov dptr,#data (69)
mov dptr,#0x1234
mov a,DPH
subb a,#0x12
jnz fail69
mov a,DPL
subb a,#0x34
jz done69
fail69:
mov P1,#69
ljmp failed
done69:
;;;;;;;;;;;;;;;;; INST 70 ;;;;;;;;;;;;;;;;;;;;;;
;; movc a,@a+dptr (70)
clr a
mov dptr,#DB_TBL
movc a,@a+dptr
subb a,#0x66
jnz fail70
mov a,#1
movc a,@a+dptr
subb a,#0x77
jz done70
jnz fail70
DB_TBL:
.db 0x66
.db 0x77
fail70:
mov P1,#70
ljmp failed
done70:
;;;;;;;;;;;;;;;;; INST 71 ;;;;;;;;;;;;;;;;;;;;;;
;; movc a,@a+PC (71)
mov a,#13
movc a,@a+pc
subb a,#0x66
jnz fail71
mov a,#7
movc a,@a+pc
subb a,#0x77
jz done71
jnz fail71
.db 0x66
.db 0x77
fail71:
mov P1,#71
ljmp failed
done71:
;;;;;;;;;;;;;;;; INST 76 ;;;;;;;;;;;;;;;;;;;;;;;
;; mul AB (76)
mov a,#80
mov B,#160
mul AB ; = 0x3200
jc fail76
jnz fail76
mov c, ov
jnc fail76
mov a,B
clr c
subb a,#32h
jnz fail76
mov a,#111
mov B,#87
mul AB ; = 0x25b9
jc fail76
mov c, ov
jnc fail76
clr c
subb a,#0b9h
jnz fail76
mov a,B
subb a,#25h
jnz fail76
mov a,#11
mov B,#17
mul AB ; = 0x00BB
jc fail76
mov c, ov
jc fail76
clr c
subb a,#0bbh
jnz fail76
mov a,B
jnz fail76
ljmp done76
fail76:
mov P1,#76
ljmp failed
done76:
;;;;;;;;;;;;;;;; INST 77 ;;;;;;;;;;;;;;;;;;;;;;;
;; nop
mov a,#85
setb c
nop
jnc fail77
subb a,#84
jnz fail77
mov a,#123
clr c
nop
jc fail77
subb a,#123
jz done77
fail77:
mov P1,#77
ljmp failed
done77:
;;;;;;;;;;;;;;;; INST 78 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,Rn (78)
mov a,#0x90
mov r0,#0x09
setb c
orl a,r0
jnc fail78
clr c
subb a,#0x99
jnz fail78
mov a,#0x48
mov r0,#0x19
clr c
orl a,r0
jc fail78
subb a,#0x59
jz done78
fail78:
mov P1,#78
ljmp failed
done78:
;;;;;;;;;;;;;;;; INST 79 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,direct (79)
mov a,#0x90
mov 127,#0x09
setb c
orl a,127
jnc fail79
clr c
subb a,#0x99
jnz fail79
mov a,#0x48
mov 127,#0x19
clr c
orl a,127
jc fail79
subb a,#0x59
jz done79
fail79:
mov P1,#79
ljmp failed
done79:
;;;;;;;;;;;;;;;; INST 80 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,@Ri (80)
mov a,#0x90
mov r1,#127
mov @r1,#0x9
setb c
orl a,@r1
jnc fail80
clr c
subb a,#0x99
jnz fail80
mov a,#0x48
mov @r1,#0x19
clr c
orl a,@r1
jc fail80
subb a,#0x59
jz done80
fail80:
mov P1,#80
ljmp failed
done80:
;;;;;;;;;;;;;;;; INST 81 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,#data (81)
mov a,#0x90
setb c
orl a,#0x9
jnc fail81
clr c
subb a,#0x99
jnz fail81
mov a,#0x48
clr c
orl a,#0x19
jc fail81
subb a,#0x59
jz done81
fail81:
mov P1,#81
ljmp failed
done81:
;;;;;;;;;;;;;;;; INST 82 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl direct,a (82)
mov a,#0x90
mov 127,#0x9
setb c
orl 127,a
jnc fail82
clr c
subb a,#0x90
jnz fail82
mov a,127
clr c
subb a,#0x99
jnz fail82
mov a,#0x48
mov 127,#0x19
clr c
orl 127,a
jc fail82
subb a,#0x48
jnz fail82
mov a,127
clr c
subb a,#0x59
jz done82
fail82:
mov P1,#82
ljmp failed
done82:
;;;;;;;;;;;;;;;; INST 83 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl direct,#data (83)
mov a,#0x91
mov 127,#0x9
setb c
orl 127,#0x90
jnc fail83
clr c
subb a,#0x91
jnz fail83
mov a,127
clr c
subb a,#0x99
jnz fail83
mov a,#0x49
mov 127,#0x19
clr c
orl 127,#0x48
jc fail83
subb a,#0x49
jnz fail83
mov a,127
clr c
subb a,#0x59
jz done83
fail83:
mov P1,#83
ljmp failed
done83:
;;;;;;;;;;;;;;;; INST 84 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl c,bit (84)
mov a,#1
orl c,acc.1
jc fail84
orl c,acc.0
jnc fail84
orl c,acc.1
jc done84
fail84:
mov P1,#84
ljmp failed
done84:
;;;;;;;;;;;;;;;; INST 85 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl c,/bit (85)
mov a,#1
clr c
orl c,/acc.0
jc fail85
orl c,/acc.1
jnc fail85
setb c
orl c,/acc.0
jc done85
fail85:
mov P1,#85
ljmp failed
done85:
;;;;;;;;;;;;;;;; INST 86,87 ;;;;;;;;;;;;;;;;;;;;;;;
;; push direct (87)
clr c
mov dptr,#0123h
mov 127,#8
push DPL
push DPH
push 127
mov a,8
subb a,#23h
jnz fail87
mov a,9
subb a,#1
jnz fail87
mov a,10
subb a,#8
jz done87
fail87:
mov P1,#87
ljmp failed
done87:
;; pop direct (86)
pop SP
pop 100
mov a,100
subb a,#23h
jz done88
mov P1,#86
ljmp failed
done88:
;;;;;;;;;;;;;;;; INST 90 ;;;;;;;;;;;;;;;;;;;;;;;
;; rl a (90)
mov a,#129
rl a
subb a,#3
jz done90
mov P1,#90
ljmp failed
done90:
;;;;;;;;;;;;;;;; INST 91 ;;;;;;;;;;;;;;;;;;;;;;;
;; rlc a (91)
setb c
mov a,#129
rlc a
subb a,#2 ;a(3)-c(1)-1
jnz fail91
clr c
mov a,#129
rlc a
subb a,#1 ;a(2)-c(1)-1
jz done91
fail91:
mov P1,#91
ljmp failed
done91:
;;;;;;;;;;;;;;;; INST 92 ;;;;;;;;;;;;;;;;;;;;;;;
;; rr a (92)
mov a,#129
rr a
subb a,#192
jz done92
mov P1,#92
ljmp failed
done92:
;;;;;;;;;;;;;;;; INST 93 ;;;;;;;;;;;;;;;;;;;;;;;
;; rrc a (93)
setb c
mov a,#3
rrc a
subb a,#128 ;a(129)-c(1)-0
jnz fail93
clr c
mov a,#3
rrc a
subb a,#0 ;a(1)-c(1)-0
jz done93
fail93:
mov P1,#93
ljmp failed
done93:
;;;;;;;;;;;;;;;; INST 94 ;;;;;;;;;;;;;;;;;;;;;;;
;; setb c (94)
clr c
setb c
mov a,#1
subb a,#0 ;a(1)-c(1)-0
jz done94
mov P1,#94
ljmp failed
done94:
;;;;;;;;;;;;;;;; INST 95 ;;;;;;;;;;;;;;;;;;;;;;;
;; setb bit (95)
clr a
setb acc.7
subb a,#128
jz done95
mov P1,#95
ljmp failed
done95:
;;;;;;;;;;;;;;;; INST 96 ;;;;;;;;;;;;;;;;;;;;;;;
;; sjmp (96)
sjmp done96
mov P1,#96
ljmp failed
done96:
;;;;;;;;;;;;;;;; INST 97 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,Rn (97)
setb c
mov a,#100
mov r0,#10
subb a,r0 ; 100 - 10 - 1 = 89
jc fail97
add a,#167 ; 167 + 89 = 0
jnz fail97
clr c
mov a,#10
mov r0,#100
subb a,r0 ; 10 - 100 - 0 = 166
jnc fail97
add a,#90 ; 166 + 90 = 0
jz done97
fail97:
mov P1,#97
ljmp failed
done97:
;;;;;;;;;;;;;;;; INST 98 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,direct (98)
setb c
mov a,#100
mov 127,#10
subb a,127 ; 100 - 10 - 1 = 89
jc fail98
add a,#167 ; 167 + 89 = 0
jnz fail98
clr c
mov a,#10
mov 127,#100
subb a,127 ; 10 - 100 - 0 = 166
jnc fail98
add a,#90 ; 166 + 90 = 0
jz done98
fail98:
mov P1,#98
ljmp failed
done98:
;;;;;;;;;;;;;;;; INST 99 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,@Ri (99)
setb c
mov r0,#126
mov a,#100
mov @r0,#10
subb a,@r0 ; 100 - 10 - 1 = 89
jc fail99
add a,#167 ; 167 + 89 = 0
jnz fail99
clr c
mov a,#10
mov @r0,#100
subb a,@r0 ; 10 - 100 - 0 = 166
jnc fail99
add a,#90 ; 166 + 90 = 0
jz done99
fail99:
mov P1,#99
ljmp failed
done99:
;;;;;;;;;;;;;;;; INST 100 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,#data (100)
setb c
mov a,#100
subb a,#10 ; 100 - 10 - 1 = 89
jc fail100
add a,#167 ; 167 + 89 = 0
jnz fail100
clr c
mov a,#10
subb a,#100 ; 10 - 100 - 0 = 166
jnc fail100
add a,#90 ; 166 + 90 = 0
jz done100
fail100:
mov P1,#100
ljmp failed
done100:
;;;;;;;;;;;;;;;; INST 101 ;;;;;;;;;;;;;;;;;;;;;;;
;; swap a (101)
clr c
mov a,#23h
swap a
jc fail101
subb a,#32h
jnz fail101
mov a,#0C3h
setb c
swap a
jnc fail101
clr c
subb a,#3Ch
jz done101
fail101:
mov P1,#101
ljmp failed
done101:
;;;;;;;;;;;;;;;; INST 102 ;;;;;;;;;;;;;;;;;;;;;;;
;; xch a,Rn (102)
mov a,#10
mov r0,#97
xch a,r0
subb a,#97
jnz fail102
mov a,r0
subb a,#10
jz done102
fail102:
mov P1,#102
ljmp failed
done102:
;;;;;;;;;;;;;;;; INST 103 ;;;;;;;;;;;;;;;;;;;;;;;
;; xch a,direct (103)
mov a,#10
mov 127,#99
xch a,127
subb a,#99
jnz fail103
mov a,127
subb a,#10
jz done103
fail103:
mov P1,#103
ljmp failed
done103:
;;;;;;;;;;;;;;;; INST 104 ;;;;;;;;;;;;;;;;;;;;;;;
;; xch a,@Ri (104)
mov a,#10
mov r0,#127
mov 127,#99
xch a,@r0
subb a,#99
jnz fail104
mov a,127
subb a,#10
jz done104
fail104:
mov P1,#104
ljmp failed
done104:
;;;;;;;;;;;;;;;; INST 105 ;;;;;;;;;;;;;;;;;;;;;;;
;; xchd a,@Ri (105)
mov a,#44h
mov r0,#127
mov 127,#55h
xchd a,@r0
subb a,#45h
jnz fail105
mov a,127
subb a,#54h
jz done105
fail105:
mov P1,#105
ljmp failed
done105:
;;;;;;;;;;;;;;;; INST 106 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,Rn (106)
mov a,#35h
mov r0,#0C3h
xrl a,r0
subb a,#0F6h
jz done106
mov P1,#106
ljmp failed
done106:
;;;;;;;;;;;;;;;; INST 107 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,direct (107)
mov a,#0C3h
mov 127,#35h
xrl a,127
subb a,#0F6h
jz done107
mov P1,#107
ljmp failed
done107:
;;;;;;;;;;;;;;;; INST 108 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,@Ri (108)
mov a,#35h
mov r0,#127
mov 127,#0C3h
xrl a,@r0
subb a,#0F6h
jz done108
mov P1,#108
ljmp failed
done108:
;;;;;;;;;;;;;;;; INST 109 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,#data (109)
mov a,#35h
xrl a,#0C3h
subb a,#0F6h
jz done109
mov P1,#109
ljmp failed
done109:
;;;;;;;;;;;;;;;; INST 110 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl direct,a (110)
mov a,#35h
mov 127,#0C3h
xrl 127,a
clr a
mov a,127
subb a,#0F6h
jz done110
mov P1,#110
ljmp failed
done110:
;;;;;;;;;;;;;;;; INST 111 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl direct,#data (111)
mov 127,#35h
xrl 127,#0C3h
mov a,127
subb a,#0F6h
jz done111
mov P1,#111
ljmp failed
done111:
;;;;;;;;;;;;;;;;; DONE ;;;;;;;;;;;;;;;;;;;;;;
mov P1,#127 ; All instructions passed
failed:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -