OpenCores
URL https://opencores.org/ocsvn/8051/8051/trunk

Subversion Repositories 8051

[/] [8051/] [tags/] [rel_1/] [asm/] [testall.asm] - Blame information for rev 33

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 markom
; Program tests all instructions except:
2
; MOVX(1-4) and RETI
3
 
4
        ; Clear RAM
5
        mov  r0,#128
6
ram_clr:
7
        dec  r0
8
        mov  @r0,#0
9
        mov  a,r0
10
        jnz  ram_clr
11
        mov  PSW,#0
12
 
13
;;;;;;;;;;;;;;;;;   INST 1 ;;;;;;;;;;;;;;;;;;;;;;;
14
 
15
;; acall addr11
16
        mov  a,#85
17
        acall testret
18
        inc  a
19
        jc   fail1
20
        subb a,#87
21
        jz   done1
22
fail1:
23
        mov  P1,1
24
        ljmp failed
25
done1:
26
 
27
;;;;;;;;;;;;;;;;   INST 2 ;;;;;;;;;;;;;;;;;;;;;;;
28
 
29
;; add a,Rn (2) -- test if ALU and flag setting works
30
        mov  a,#10
31
        mov  r0,#117
32
        mov  r1,#10
33
        mov  r2,#127
34
        mov  r3,#128
35
        mov  r5,#245
36
        mov  r7,#250
37
 
38 33 simont
        mov  a,#10
39 24 markom
        add  a,r0
40
        jc   fail2
41
        subb a,#127
42
        jnz  fail2
43
 
44 33 simont
        mov  a,#10
45 24 markom
        add  a,r2
46
        jc   fail2
47
        subb a,#137
48
        jnz  fail2
49
 
50 33 simont
        mov  a,#10
51 24 markom
        add  a,r3
52
        jc   fail2
53
        subb a,#138
54
        jnz  fail2
55
 
56 33 simont
        mov  a,#10
57 24 markom
        add  a,r5
58
        jc   fail2
59
        subb a,#255
60
        jnz  fail2
61
 
62 33 simont
        mov  a,#10
63 24 markom
        add  a,r7
64
        jnc  fail2
65
        clr  c
66
        subb a,#4
67
        jnz  fail2
68
 
69
        mov  a,#117
70
        add  a,r1
71
        jc   fail2
72
        subb a,#127
73
        jnz  fail2
74
 
75
        mov  a,#127
76
        add  a,r1
77
        jc   fail2
78
        subb a,#137
79
        jnz  fail2
80
 
81
        mov  a,#128
82
        add  a,r1
83
        jc   fail2
84
        subb a,#138
85
        jnz  fail2
86
 
87
        mov  a,#245
88
        add  a,r1
89
        jc   fail2
90
        subb a,#255
91
        jnz  fail2
92
 
93
        mov  a,#250
94
        add  a,r1
95
        jnc   fail2
96
        clr  c
97
        subb a,#4
98
        jnz  fail2
99
 
100
        ljmp done2
101
 
102
fail2:
103
        mov  P1,#2
104
        ljmp failed
105
done2:
106
 
107
;;;;;;;;;;;;;;;;   INST 3 ;;;;;;;;;;;;;;;;;;;;;;;
108
 
109
;; add a,direct (3) -- test if ALU and flag setting works
110
 
111
        mov  100,#117
112
        mov  a,#10
113
        add  a,100
114
        jc   fail3
115
        subb a,#127
116
        jnz  fail3
117
 
118
        mov  100,#127
119 33 simont
        mov  a,#10
120 24 markom
        add  a,100
121
        jc   fail3
122
        subb a,#137
123
        jnz  fail3
124
 
125
        mov  100,#128
126 33 simont
        mov  a,#10
127 24 markom
        add  a,100
128
        jc   fail3
129
        subb a,#138
130
        jnz  fail3
131
 
132
        mov  100,#245
133 33 simont
        mov  a,#10
134 24 markom
        add  a,100
135
        jc   fail3
136
        subb a,#255
137
        jnz  fail3
138
 
139
        mov  100,#250
140 33 simont
        mov  a,#10
141 24 markom
        add  a,100
142
        jnc   fail3
143
        clr  c
144
        subb a,#4
145
        jnz  fail3
146
 
147
        mov  a,#117
148
        mov  100,#10
149
        add  a,100
150
        jc   fail3
151
        subb a,#127
152
        jnz  fail3
153
 
154
        mov  a,#127
155
        mov  100,#10
156
        add  a,100
157
        jc   fail3
158
        subb a,#137
159
        jnz  fail3
160
 
161
        mov  a,#128
162
        add  a,100
163
        jc   fail3
164
        subb a,#138
165
        jnz  fail3
166
 
167
        mov  a,#245
168
        add  a,100
169
        jc   fail3
170
        subb a,#255
171
        jnz  fail3
172
 
173
        mov  a,#250
174
        add  a,100
175
        jnc  fail3
176
        clr  c
177
        subb a,#4
178
        jnz  fail3
179
 
180
        ljmp done3
181
 
182
fail3:
183
        jz   done3
184
        mov  P1,#3
185
        ljmp failed
186
done3:
187
 
188
;;;;;;;;;;;;;;;;   INST 4 ;;;;;;;;;;;;;;;;;;;;;;;
189
 
190
;; add a,@Ri (4) -- indexed and simple CY
191
        mov  a,#40
192
        mov  r0,#100
193
        mov  100,#10
194
        mov  r1,#101
195
        mov  101,#100
196
 
197
        add  a,@r0
198
        jc   fail4
199
        subb a,#50
200
        jnz  fail4
201
 
202 33 simont
        mov  a,#40
203 24 markom
        add  a,@r1
204
        jc   fail4
205
        subb a,#140
206
        jnz  fail4
207
 
208 33 simont
        mov  a,#10
209 24 markom
        mov  r1,#102
210 33 simont
        mov  102,#250
211 24 markom
        add  a,@r1
212 33 simont
        jnc   fail4
213 24 markom
        clr  c
214 33 simont
        subb a,#4
215 24 markom
        jnz  fail4
216
        ljmp done4
217
 
218
fail4:
219
        mov  P1,#4
220
        ljmp failed
221
done4:
222
 
223
;;;;;;;;;;;;;;;;   INST 5 ;;;;;;;;;;;;;;;;;;;;;;;
224
 
225
;; add a,#data (5)
226
        mov  a,#10
227
 
228
        add  a,#117
229
        jc   fail5
230
        subb a,#127
231
        jnz  fail5
232
 
233 33 simont
        mov  a,#10
234 24 markom
        add  a,#127
235
        jc   fail5
236
        subb a,#137
237
        jnz  fail5
238
 
239 33 simont
        mov  a,#10
240 24 markom
        add  a,#128
241
        jc   fail5
242
        subb a,#138
243
        jnz  fail5
244
 
245 33 simont
        mov  a,#10
246 24 markom
        add  a,#245
247
        jc   fail5
248
        subb a,#255
249
        jnz  fail5
250
 
251 33 simont
        mov  a,#10
252 24 markom
        add  a,#250
253
        jnc   fail5
254
        clr  c
255
        subb a,#4
256
        jnz  fail5
257
 
258
        mov  a,#117
259
        add  a,#10
260
        jc   fail5
261
        subb a,#127
262
        jnz  fail5
263
 
264
        mov  a,#127
265
        add  a,#10
266
        jc   fail5
267
        subb a,#137
268
        jnz  fail5
269
 
270
        mov  a,#128
271
        add  a,#10
272
        jc   fail5
273
        subb a,#138
274
        jnz  fail5
275
 
276
        mov  a,#245
277
        add  a,#10
278
        jc   fail5
279
        subb a,#255
280
        jnz  fail5
281
 
282
        mov  a,#250
283
        add  a,#10
284
        jnc  fail5
285
        clr  c
286
        subb a,#4
287
        jnz  fail5
288
 
289
        ljmp done5
290
 
291
fail5:
292
        jz   done5
293
        mov  P1,#5
294
        ljmp failed
295
        mov  P1,#5
296
        ljmp failed
297
done5:
298
 
299
;;;;;;;;;;;;;;;;   INST 6 ;;;;;;;;;;;;;;;;;;;;;;;
300
 
301
;; addc a,Rn (6)
302
        mov  a,#10
303
        mov  r0,#10
304
 
305
        clr  c
306
        addc a,r0
307
        jc   fail6
308
        subb a,#20
309
        jnz  fail6
310
 
311 33 simont
        mov  a,#10
312 24 markom
        setb c
313
        addc a,r0
314
        jc   fail6
315
        subb a,#21
316
        jnz  fail6
317
 
318
        mov  a,#100
319
        clr  c
320
        addc a,r0
321
        jc   fail6
322
        subb a,#110
323
        jnz  fail6
324
 
325 33 simont
        mov  a,#100
326 24 markom
        setb c
327
        addc a,r0
328
        jc   fail6
329
        subb a,#111
330
        jnz  fail6
331
 
332
        mov  a,#250
333
        clr  c
334
        addc a,r0
335
        jnc  fail6
336
        clr  c
337
        subb a,#4
338
        jnz  fail6
339
 
340 33 simont
        mov  a,#250
341 24 markom
        setb c
342
        addc a,r0
343
        jnc  fail6
344
        clr  c
345
        subb a,#5
346
        jnz  fail6
347
 
348
        ljmp done6
349
fail6:
350
        mov  P1,#6
351
        ljmp failed
352
done6:
353
 
354
;;;;;;;;;;;;;;;;   INST 7 ;;;;;;;;;;;;;;;;;;;;;;;
355
 
356
;; addc a,direct (7)
357
        mov  a,#10
358
        mov  100,#10
359
 
360
        clr  c
361
        addc a,100
362
        jc   fail7
363
        subb a,#20
364
        jnz  fail7
365
 
366 33 simont
        mov  a,#10
367 24 markom
        setb c
368
        addc a,100
369
        jc   fail7
370
        subb a,#21
371
        jnz  fail7
372
 
373
        mov  a,#100
374
        clr  c
375
        addc a,100
376
        jc   fail7
377
        subb a,#110
378
        jnz  fail7
379
 
380 33 simont
        mov  a,#100
381 24 markom
        setb c
382
        addc a,100
383
        jc   fail7
384
        subb a,#111
385
        jnz  fail7
386
 
387
        mov  a,#250
388
        clr  c
389
        addc a,100
390
        jnc  fail7
391
        clr  c
392
        subb a,#4
393
        jnz  fail7
394
 
395 33 simont
        mov  a,#250
396 24 markom
        setb c
397
        addc a,100
398
        jnc  fail7
399
        clr  c
400
        subb a,#5
401
        jnz  fail7
402
 
403
        ljmp done7
404
fail7:
405
        mov  P1,#7
406
        ljmp failed
407
done7:
408
 
409
;;;;;;;;;;;;;;;;   INST 8 ;;;;;;;;;;;;;;;;;;;;;;;
410
 
411
;; addc a,@Ri (8)
412
        mov  a,#10
413
        mov  r0,#100
414
        mov  100,#11
415
 
416
        clr  c
417
        addc a,@r0
418
        jc   fail8
419
        subb a,#21
420
        jnz  fail8
421
 
422 33 simont
        mov  a,#10
423 24 markom
        setb c
424
        addc a,@r0
425
        jc   fail8
426
        subb a,#22
427
        jnz  fail8
428
 
429
        mov  a,#100
430
        clr  c
431
        addc a,@r0
432
        jc   fail8
433
        subb a,#111
434
        jnz  fail8
435
 
436 33 simont
        mov  a,#100
437 24 markom
        setb c
438
        addc a,@r0
439
        jc   fail8
440
        subb a,#112
441
        jnz  fail8
442
 
443
        mov  a,#250
444
        clr  c
445
        addc a,@r0
446
        jnc  fail8
447
        clr  c
448
        subb a,#5
449
        jnz  fail8
450
 
451 33 simont
        mov  a,#250
452 24 markom
        setb c
453
        addc a,@r0
454
        jnc  fail8
455
        clr  c
456
        subb a,#6
457
        jnz  fail8
458
 
459
        ljmp done8
460
fail8:
461
        mov  P1,#8
462
        ljmp failed
463
done8:
464
 
465
 
466
;;;;;;;;;;;;;;;;   INST 9 ;;;;;;;;;;;;;;;;;;;;;;;
467
 
468
;; addc a,#data (9)
469
        mov  a,#14
470
 
471
        clr  c
472
        addc a,#14
473
        jc   fail9
474
        subb a,#28
475
        jnz  fail9
476
 
477 33 simont
        mov  a,#14
478 24 markom
        setb c
479
        addc a,#15
480
        jc   fail9
481
        subb a,#30
482
        jnz  fail9
483
 
484
        mov  a,#110
485
        clr  c
486
        addc a,#20
487
        jc   fail9
488
        subb a,#130
489
        jnz  fail9
490
 
491 33 simont
        mov  a,#110
492 24 markom
        setb c
493
        addc a,#20
494
        jc   fail9
495
        subb a,#131
496
        jnz  fail9
497
 
498
        mov  a,#250
499
        clr  c
500
        addc a,#11
501
        jnc  fail9
502
        clr  c
503
        subb a,#5
504
        jnz  fail9
505
 
506 33 simont
        mov  a,#250
507 24 markom
        setb c
508
        addc a,#11
509
        jnc  fail9
510
        clr  c
511
        subb a,#6
512
        jnz  fail9
513
 
514
        ljmp done9
515
fail9:
516
        mov  P1,#9
517
        ljmp failed
518
done9:
519
 
520
;;;;;;;;;;;;;;;;  INST 10 ;;;;;;;;;;;;;;;;;;;;;;;
521
 
522
;; ajmp (10)
523
        setb c
524
        ajmp done10
525
fail10:
526
        mov  P1,#10
527
        ljmp failed
528
done10:clr  c
529
        jc   fail10
530
 
531
;;;;;;;;;;;;;;;;  INST 11 ;;;;;;;;;;;;;;;;;;;;;;;
532
 
533
;; anl a,Rn (11)
534
        mov  r0,#250
535
        clr  c
536
        clr  a
537
        mov  a,#171
538
        anl  a,r0
539
        jc   fail11
540 33 simont
        jz   fail11
541
        subb a,#170
542 24 markom
        jnz  fail11
543
 
544
        mov  r0,#190
545
        mov  a,#84
546
        inc  a
547
        setb c
548
        anl  a,r0
549
        jz   fail11
550
        jnc  fail11
551
        clr  c
552 33 simont
        subb a,#20
553 24 markom
        jnz  fail11
554
        ljmp done11
555
 
556
fail11:
557
        mov  P1,#11
558
        ljmp failed
559
done11:
560
 
561
;;;;;;;;;;;;;;;;  INST 12 ;;;;;;;;;;;;;;;;;;;;;;;
562
 
563
;; anl a,direct (12)
564
        mov  127,#250
565
        clr  c
566
        clr  a
567
        mov  a,#171
568
        anl  a,127
569
        jc   fail12
570 33 simont
        jz   fail12
571
        subb a,#170
572 24 markom
        jnz  fail12
573
 
574
        mov  127,#190
575
        mov  a,#84
576
        inc  a
577
        setb c
578
        anl  a,127
579
        jz   fail12
580
        jnc  fail12
581
        clr  c
582 33 simont
        subb a,#20
583 24 markom
        jnz  fail12
584
        ljmp done12
585
 
586
fail12:
587
        mov  P1,#12
588
        ljmp failed
589
done12:
590
 
591
;;;;;;;;;;;;;;;;  INST 13 ;;;;;;;;;;;;;;;;;;;;;;;
592
 
593
;; anl a,@Ri (13)
594
        mov  r0,127
595
        clr  c
596
        clr  a
597
        mov  127,#171
598
        mov  a,#250
599
        anl  a,@r0
600
        jc   fail13
601 33 simont
        jz   fail13
602
        subb a,#170
603 24 markom
        jnz  fail13
604
 
605
        mov  127,#190
606
        mov  a,#84
607
        inc  a
608
        setb c
609
        anl  a,@r0
610
        jz   fail13
611
        jnc  fail13
612
        clr  c
613 33 simont
        subb a,#20
614 24 markom
        jnz  fail13
615
        ljmp done13
616
 
617
fail13:
618
        anl  a,@r0
619
        jz   done13
620
        mov  P1,#13
621
        ljmp failed
622
done13:
623
 
624
;;;;;;;;;;;;;;;;  INST 14 ;;;;;;;;;;;;;;;;;;;;;;;
625
 
626
;; anl a,#data (14)
627
        clr  c
628
        clr  a
629
        mov  a,#250
630
        anl  a,#171
631
        jc   fail14
632 33 simont
        jz   fail14
633
        subb a,#170
634 24 markom
        jnz  fail14
635
 
636
        mov  a,#190
637
        mov  a,#84
638
        inc  a
639
        setb c
640
        anl  a,@r0
641
        jz   fail14
642
        jnc  fail14
643
        clr  c
644 33 simont
        subb a,#20
645 24 markom
        jnz  fail14
646
        ljmp done14
647
 
648
fail14:
649
        subb a,#255
650
        jz   done14
651
        mov  P1,#14
652
        ljmp failed
653
done14:
654
 
655
;;;;;;;;;;;;;;;;  INST 15 ;;;;;;;;;;;;;;;;;;;;;;;
656
 
657
;; anl direct,a (15)
658
        mov  127,#250
659
        clr  c
660
        clr  a
661
        mov  a,#171
662
        anl  127,a
663
        jc   fail15
664
        mov  a,127
665 33 simont
        jz   fail15
666
        subb a,#170
667 24 markom
        jnz  fail15
668
 
669
        mov  127,#190
670
        mov  a,#84
671
        inc  a
672
        setb c
673
        anl  127,a
674
        mov  a,127
675
        jz   fail15
676
        jnc  fail15
677
        clr  c
678 33 simont
        subb a,#20
679 24 markom
        jnz  fail15
680
        ljmp done15
681
 
682
fail15:
683
        mov  P1,#15
684
        ljmp failed
685
done15:
686
 
687
;;;;;;;;;;;;;;;;  INST 16 ;;;;;;;;;;;;;;;;;;;;;;;
688
 
689
;; anl direct,#data (16)
690
        mov  127,#250
691
        clr  c
692
        clr  a
693
        anl  127,#171
694
        jc   fail16
695
        mov  a,127
696 33 simont
        jz   fail16
697
        subb a,#170
698 24 markom
        jnz  fail16
699
 
700
        mov  127,#190
701
        setb c
702
        anl  127,#85
703
        mov  a,127
704
        jz   fail16
705
        jnc  fail16
706
        clr  c
707 33 simont
        subb a,#20
708 24 markom
        jnz  fail16
709
        ljmp done16
710
 
711
fail16:
712
        mov  P1,#16
713
        ljmp failed
714
done16:
715
 
716
;;;;;;;;;;;;;;;;  INST 17 ;;;;;;;;;;;;;;;;;;;;;;;
717
 
718
;; anl c,bit (17)
719
        mov  a,#128
720
        clr  c
721
        anl  c,acc.7
722
        jc   fail17
723
        mov  a,#128
724
        setb c
725
        anl  c,acc.7
726
        jnc  fail17
727
        ljmp done17
728
 
729
fail17:
730
        mov  P1,#17
731
        ljmp failed
732
done17:
733
 
734
;;;;;;;;;;;;;;;;  INST 18 ;;;;;;;;;;;;;;;;;;;;;;;
735
 
736
;; anl c,/bit (18)
737
        mov  a,#128
738
        clr  c
739
        anl  c,/acc.7
740 33 simont
        jc   fail18
741 24 markom
        mov  a,#128
742
        setb c
743
        anl  c,/acc.7
744
        jc   fail18
745 33 simont
        mov  a,#128
746
        setb c
747
        anl  c,/acc.5
748
        jnc  fail18
749 24 markom
        ljmp done18
750
 
751 33 simont
fail18:
752
        mov  P1,#18
753 24 markom
        ljmp failed
754
done18:
755
 
756
;;;;;;;;;;;;;;;;  INST 19 ;;;;;;;;;;;;;;;;;;;;;;;
757
 
758
;; cjne a,direct,rel (19)
759
        mov  a,#228
760
        mov  100,#228
761
        cjne a,100,fail19
762
        jc   fail19
763
 
764
        mov  a,#227
765
        cjne a,100,CHECK_C_19
766
        ljmp fail19
767
CHECK_C_19:     ;Checks that carry was set
768
        jnc  fail19
769
 
770
        mov  a,#229
771
        cjne a,100,CHECK_NC_19
772
        ljmp fail19
773
 
774
CHECK_NC_19:    ;Checks that carry was not set
775
        jc   fail19
776
        ljmp done19
777
 
778
fail19:
779
        mov  P1,#19
780
        ljmp failed
781
done19:
782
 
783
;;;;;;;;;;;;;;;;  INST 20 ;;;;;;;;;;;;;;;;;;;;;;;
784
 
785
;; cjne a,#data,rel (20)
786
        mov  a,#100
787
        cjne a,#100,fail20
788
        jc   fail20
789
 
790
        mov  a,#99
791
        cjne a,#100,CHECK_C_20
792
        ljmp fail20
793
CHECK_C_20:     ;Checks that carry was set
794
        jnc  fail20
795
 
796
        mov  a,#101
797
        cjne a,#100,CHECK_NC_20
798
        ljmp fail20
799
 
800
CHECK_NC_20:    ;Checks that carry was not set
801
        jc   fail20
802
        ljmp done20
803
 
804
fail20:
805
        mov  P1,#20
806
        ljmp failed
807
done20:
808
 
809
;;;;;;;;;;;;;;;;  INST 21 ;;;;;;;;;;;;;;;;;;;;;;;
810
 
811
;; cjne Rn,#data,rel (21)
812
        mov  r1,#100
813
        cjne r1,#100,fail21
814
        jc   fail21
815
 
816
        mov  r1,#99
817
        cjne r1,#100,CHECK_C_21
818
        ljmp fail21
819
CHECK_C_21:     ;Checks that carry was set
820
        jnc  fail21
821
 
822
        mov  r1,#101
823
        cjne r1,#100,CHECK_NC_21
824
        ljmp fail21
825
 
826
CHECK_NC_21:    ;Checks that carry was not set
827
        jc   fail21
828
        ljmp done21
829
 
830
fail21:
831
        mov  P1,#21
832
        ljmp failed
833
done21:
834
 
835
;;;;;;;;;;;;;;;;  INST 22 ;;;;;;;;;;;;;;;;;;;;;;;
836
 
837
;; cjne @Ri,#data,rel (22)
838
        mov  125,#99
839
        mov  126,#100
840
        mov  127,#101
841
        mov  r1,#125
842 33 simont
        cjne @r1,#100, CHECK_EQ_22
843
  ljmp fail22
844
 
845
CHECK_EQ_22:
846
        jnc  fail22
847
        mov  r1,#126
848 24 markom
        cjne @r1,#100,fail22
849
        jc   fail22
850
 
851
        mov  r1,#127
852
        cjne @r1,#100,CHECK_NC_22
853
        ljmp fail22
854
 
855
CHECK_NC_22:    ;Checks that carry was not set
856
        jc   fail22
857
        ljmp done22
858
 
859
fail22:
860
        mov  P1,#22
861
        ljmp failed
862
done22:
863
 
864
;;;;;;;;;;;;;;;;  INST 23 ;;;;;;;;;;;;;;;;;;;;;;;
865
 
866
;; clr a (23)
867
        mov  a,#86
868
        clr  a
869
        jnz  fail23
870
        mov  a,#86
871
        clr  a
872
        mov  r0,a
873
        mov  a,r0
874
        jnz  fail23
875
        ljmp done23
876
 
877
fail23:
878
        mov  P1,#23
879
        ljmp failed
880
done23:
881
 
882
;;;;;;;;;;;;;;;;  INST 24 ;;;;;;;;;;;;;;;;;;;;;;;
883
 
884
;; clr c (24)
885
        setb c
886
        clr  c
887
        jc   fail24
888
        clr  c
889
        jc   fail24
890
        ljmp done24
891
 
892
fail24:
893
        mov  P1,#24
894
        ljmp failed
895
done24:
896
 
897
;;;;;;;;;;;;;;;;  INST 25 ;;;;;;;;;;;;;;;;;;;;;;;
898
 
899
;; clr bit (25)
900 33 simont
        mov  a, #02h
901
        jz   fail25
902
        clr  acc.1
903
        jnz   fail25
904
 
905
        setb 7
906
        mov  c, 7
907
        jc clr1;
908
        ljmp fail25;
909
clr1:
910
        clr  7
911
        mov  c, 7
912 24 markom
        jc   fail25
913 33 simont
        clr  7
914
        mov  c, 7
915 24 markom
        jc   fail25
916
        ljmp done25
917
 
918
fail25:
919
        mov  P1,#25
920
        ljmp failed
921
done25:
922
 
923
;;;;;;;;;;;;;;;;  INST 26 ;;;;;;;;;;;;;;;;;;;;;;;
924
 
925
;; cpl a (26)
926
        mov  a,#255
927
        cpl  a
928
        jnz  fail26
929
 
930
        mov  a,#85
931
        cpl  a
932
        clr  c
933 33 simont
        subb a,#170
934 24 markom
        jnz  fail26
935
        ljmp done26
936
 
937
fail26:
938
        mov  P1,#26
939
        ljmp failed
940
done26:
941
 
942
;;;;;;;;;;;;;;;;  INST 27 ;;;;;;;;;;;;;;;;;;;;;;;
943
 
944
;; cpl c (27)
945
        setb c
946
        cpl  c
947
        jc   fail27
948
        clr  c
949
        cpl  c
950
        jnc  fail27
951
        ljmp done27
952
 
953
fail27:
954
        mov  P1,#27
955
        ljmp failed
956
done27:
957
 
958
;;;;;;;;;;;;;;;;  INST 28 ;;;;;;;;;;;;;;;;;;;;;;;
959
 
960
;; cpl bit (28)
961
        clr  a
962 33 simont
        setb acc.5
963
        cpl  acc.5
964 24 markom
        jnz  fail28
965 33 simont
        clr  acc.5
966
        cpl  acc.5
967 24 markom
        jz   fail28
968
        ljmp done28
969
 
970
fail28:
971
        mov  P1,#28
972
        ljmp failed
973
done28:
974
 
975
;;;;;;;;;;;;;;;;  INST 29 ;;;;;;;;;;;;;;;;;;;;;;;
976
 
977
;; DA a (29)
978 33 simont
        mov  a,#80h
979
        add  a,#99h
980 24 markom
        da   a
981 33 simont
        subb a,#78h     ;Will clr acc if c set
982 24 markom
        jz   done29
983
        mov  P1,#29
984
        ljmp failed
985
done29:
986
 
987
 
988
;;;;;;;;;;;;;;;;;  INST 30 ;;;;;;;;;;;;;;;;;;;;;;
989
 
990
;; dec a (30)
991
        mov  a,#10
992
        setb c
993
        dec  a
994
        jnc  fail30
995
        clr  c
996
        subb a,#9
997
        jnz  fail30
998
 
999
        mov  a,#0
1000
        clr  c
1001
        dec  a
1002
        jc   fail30
1003
        subb a,#255
1004
        jnz  fail30
1005
        ljmp done30
1006
 
1007
fail30:
1008
        mov  P1,#30
1009
        ljmp failed
1010
done30:
1011
 
1012
;;;;;;;;;;;;;;;;;  INST 31 ;;;;;;;;;;;;;;;;;;;;;;
1013
 
1014
;; dec Rn (31)
1015
        mov  r2,#10
1016
        setb c
1017
        dec  r2
1018
        jnc  fail31
1019
        clr  c
1020
        mov  a,r2
1021
        subb a,#9
1022
        jnz  fail31
1023
 
1024
        mov  r2,#0
1025
        clr  c
1026
        dec  r2
1027
        jc   fail31
1028
        mov  a,r2
1029
        subb a,#255
1030
        jnz  fail31
1031
        ljmp done31
1032
 
1033
fail31:
1034
        mov  P1,#31
1035
        ljmp failed
1036
done31:
1037
 
1038
;;;;;;;;;;;;;;;;;  INST 32 ;;;;;;;;;;;;;;;;;;;;;;
1039
 
1040
;; dec direct (32)
1041
        mov  127,#10
1042
        setb c
1043
        dec  127
1044
        jnc  fail32
1045
        clr  c
1046
        mov  a,127
1047
        subb a,#9
1048
        jnz  fail32
1049
 
1050
        mov  127,#0
1051
        clr  c
1052
        dec  127
1053
        jc   fail32
1054
        mov  a,127
1055
        subb a,#255
1056
        jnz  fail32
1057
        ljmp done32
1058
 
1059
fail32:
1060
        mov  P1,#32
1061
        ljmp failed
1062
done32:
1063
 
1064
;;;;;;;;;;;;;;;;;  INST 33 ;;;;;;;;;;;;;;;;;;;;;;
1065
 
1066
;; dec @Ri (33)
1067
        mov  r0,#127
1068
        mov  @r0,#10
1069
        setb c
1070
        dec  @r0
1071
        jnc  fail33
1072
        clr  c
1073
        mov  a,@r0
1074
        subb a,#9
1075
        jnz  fail33
1076
 
1077
        mov  @r0,#0
1078
        clr  c
1079
        dec  @r0
1080
        jc   fail33
1081
        mov  a,@r0
1082
        subb a,#255
1083
        jnz  fail33
1084
        ljmp done33
1085
 
1086
fail33:
1087
        mov  P1,#33
1088
        ljmp failed
1089
done33:
1090
 
1091
 
1092
;;;;;;;;;;;;;;;;;  INST 34 ;;;;;;;;;;;;;;;;;;;;;;
1093
 
1094
;; div AB (34)
1095
        mov  a,#251
1096
        mov  B,#18
1097
        div  AB
1098
        jc   fail34
1099
        mov  c,OV
1100
        jc   fail34
1101
        subb a,#13
1102
        jnz  fail34
1103
        mov  a,B
1104
        subb a,#17
1105 33 simont
        jnz  fail34
1106 24 markom
 
1107
        mov  a,#180
1108
        mov  B,#15
1109
        div  AB
1110
        jc   fail34
1111
        mov  c,OV
1112
        jc   fail34
1113
        subb a,#12
1114
        jnz  fail34
1115
        mov  a,B
1116 33 simont
        jnz  fail34
1117 24 markom
 
1118
        mov  a,#0
1119
        mov  B,#15
1120
        div  AB
1121
        jc   fail34
1122
        mov  c,OV
1123
        jc   fail34
1124
        jnz  fail34
1125
        mov  a,B
1126 33 simont
        subb a,#15
1127 24 markom
 
1128
        mov  a,#0
1129
        mov  B,#0
1130
        div  AB
1131
        jc   fail34
1132
        mov  c,OV
1133
        jnc  fail34
1134
 
1135
        mov  a,#170
1136
        mov  B,#0
1137
        div  AB
1138
        jc   fail34
1139
        mov  c,OV
1140
        jnc  fail34
1141 33 simont
        ljmp done34
1142 24 markom
fail34:
1143
        mov  P1,#34
1144
        ljmp failed
1145
done34:
1146
 
1147
 
1148
;;;;;;;;;;;;;;;;;  INST 35 ;;;;;;;;;;;;;;;;;;;;;;
1149
 
1150
;; djnz Rn,rel (35)
1151
        mov  r0,#10
1152
        djnz r0,JUMP_35 ;Should jump
1153
        mov  P1,#35
1154
        ljmp failed
1155
JUMP_35:
1156
        mov  r0,#0
1157
        djnz r0,JUMP_35B        ;Should jump
1158
        mov  P1,#35
1159
        ljmp failed
1160
JUMP_35B:
1161
        mov  r0,#1
1162
        djnz r0,NOT_JUMP_35     ;Should not jump
1163
        ajmp done35
1164
NOT_JUMP_35:
1165
        mov  P1,#35
1166
        ljmp failed
1167
done35:
1168
 
1169
;;;;;;;;;;;;;;;;;  INST 36 ;;;;;;;;;;;;;;;;;;;;;;
1170
 
1171
;; djnz direct,rel (36)
1172
        mov  127,#10
1173
        djnz 127,JUMP_36        ;Should jump
1174
        mov  P1,#36
1175
        ljmp failed
1176
JUMP_36:
1177
        mov  127,#0
1178
        djnz 127,JUMP_36B       ;Should jump
1179
        mov  P1,#36
1180
        ljmp failed
1181
JUMP_36B:
1182
        mov  127,#1
1183
        djnz 127,NOT_JUMP_36    ;Should not jump
1184
        ajmp done36
1185
NOT_JUMP_36:
1186
        mov  P1,#36
1187
        ljmp failed
1188 33 simont
 
1189
done86:
1190
 
1191
;;;;;;;;;;;;;;;;  INST 88 ;;;;;;;;;;;;;;;;;;;;;;;
1192
 
1193
        ljmp done88
1194
        clr  a
1195
testret:             ;; subroutine called from acall and lcall
1196
        inc  a
1197
        ret
1198
        clr  a
1199
 
1200 24 markom
done36:
1201
 
1202
;;;;;;;;;;;;;;;;;  INST 37 ;;;;;;;;;;;;;;;;;;;;;;
1203
 
1204
;; inc a (37)
1205
        mov  a,#10
1206
        clr  c
1207
        inc  a
1208
        jc   fail37
1209
        subb a,#11
1210
        jnz  fail37
1211
 
1212
        mov  a,#255
1213
        setb c
1214
        inc  a
1215
        jnc  fail37
1216
        jnz  fail37
1217
        ljmp done37
1218
 
1219
fail37:
1220
        mov  P1,#37
1221
        ljmp failed
1222
done37:
1223
 
1224
;;;;;;;;;;;;;;;;;  INST 38 ;;;;;;;;;;;;;;;;;;;;;;
1225
 
1226
;; inc Rn (38)
1227
        mov  r3,#10
1228
        clr  c
1229
        inc  r3
1230
        jc   fail38
1231
        mov  a,r3
1232
        subb a,#11
1233
        jnz  fail38
1234
 
1235
        mov  r4,#255
1236
        setb c
1237
        inc  r4
1238
        jnc  fail38
1239
        mov  a,r4
1240
        jnz  fail38
1241
        ljmp done38
1242
 
1243
fail38:
1244
        mov  P1,#38
1245
        ljmp failed
1246
done38:
1247
 
1248
;;;;;;;;;;;;;;;;;  INST 39 ;;;;;;;;;;;;;;;;;;;;;;
1249
 
1250
;; inc direct (39)
1251
        mov  127,#10
1252
        clr  c
1253
        inc  127
1254
        jc   fail39
1255
        mov  a,127
1256
        subb a,#11
1257
        jnz  fail39
1258
 
1259
        mov  127,#255
1260
        setb c
1261
        inc  127
1262
        jnc  fail39
1263
        mov  a,127
1264
        jnz  fail39
1265
        ljmp done39
1266
 
1267
fail39:
1268
        mov  P1,#39
1269
        ljmp failed
1270
done39:
1271
 
1272
;;;;;;;;;;;;;;;;;  INST 40 ;;;;;;;;;;;;;;;;;;;;;;
1273
 
1274
;; inc @Ri (40)
1275
        mov  r1,#126
1276
        mov  @r1,#10
1277
        clr  c
1278
        inc  @r1
1279
        jc   fail40
1280
        mov  a,@r1
1281
        subb a,#11
1282
        jnz  fail40
1283
 
1284
        mov  @r1,#255
1285
        setb c
1286
        inc  @r1
1287
        jnc  fail40
1288
        mov  a,@r1
1289
        jnz  fail40
1290
        ljmp done40
1291
 
1292
fail40:
1293
        mov  P1,#40
1294
        ljmp failed
1295
done40:
1296
 
1297
 
1298
;;;;;;;;;;;;;;;;;  INST 41 ;;;;;;;;;;;;;;;;;;;;;;
1299
 
1300
;; inc dptr (41)
1301 33 simont
  clr  c;
1302
        mov  dptr,#12ffh
1303 24 markom
        inc  dptr
1304
        mov  a,DPH
1305 33 simont
        subb a,#13h
1306 24 markom
        jz   DPH_OK_41
1307
        mov  P1,#41
1308
        ljmp failed
1309
DPH_OK_41:
1310
        mov  a,DPL
1311
        jz   done41
1312
        mov  P1,#41
1313
        ljmp failed
1314
done41:
1315
 
1316
 
1317
;;;;;;;;;;;;;;;;;  INST 42 ;;;;;;;;;;;;;;;;;;;;;;
1318
 
1319
;; JB bit,rel (42)
1320
        mov  a,#16
1321
        jb   acc.3,fail42
1322
        jb   acc.4,done42
1323
 
1324
fail42:
1325
        mov  P1,#42
1326
        ljmp failed
1327
done42:
1328
 
1329
 
1330
;;;;;;;;;;;;;;;;;  INST 43 ;;;;;;;;;;;;;;;;;;;;;;
1331
 
1332
;; jbc bit,rel (43)
1333
        mov  a,#8
1334
        jbc  acc.3,CHECK_BIT_43
1335
        mov  P1,#43
1336
        ljmp failed
1337
CHECK_BIT_43:
1338
        jz   done43
1339
        mov  P1,#43
1340
        ljmp failed
1341
done43:
1342
 
1343
;;;;;;;;;;;;;;;;;  INST 44 ;;;;;;;;;;;;;;;;;;;;;;
1344
 
1345
;; jc rel (44)
1346
        clr  c
1347
        jc   fail44
1348
        cpl  c
1349
        jc   done44
1350
fail44:
1351
        mov  P1,#44
1352
        ljmp failed
1353
done44:
1354
 
1355
;;;;;;;;;;;;;;;;;  INST 45 ;;;;;;;;;;;;;;;;;;;;;;
1356
 
1357
;; jmp @a+dptr (45)
1358
        mov  a,#4
1359
        mov  dptr,#JMP_TBL
1360
        jmp  @a+dptr
1361
JMP_TBL:
1362
        ajmp JUMP_0
1363
        ajmp JUMP_2
1364
        ajmp JUMP_4
1365
        ajmp JUMP_6
1366
JUMP_0:
1367
JUMP_2:
1368
JUMP_6:
1369
        mov  P1,#43
1370
        ljmp failed
1371
JUMP_4:
1372
 
1373
;;;;;;;;;;;;;;;;;  INST 46 ;;;;;;;;;;;;;;;;;;;;;;
1374
 
1375
;; jnb bit,rel (46)
1376
        mov  a,#16
1377
        jnb  acc.4,fail42
1378 33 simont
        jnb  acc.5,done46
1379 24 markom
fail46:
1380
        mov  P1,#46
1381
        ljmp failed
1382
done46:
1383
 
1384
;;;;;;;;;;;;;;;;;  INST 47 ;;;;;;;;;;;;;;;;;;;;;;
1385
 
1386
;; jnc rel (47)
1387
        setb c
1388
        jnc  fail47
1389
        cpl  c
1390
        jnc  done47
1391
fail47:
1392
        mov  P1,#47
1393
        ljmp failed
1394 33 simont
 
1395
 
1396
 
1397 24 markom
done47:
1398
 
1399
;;;;;;;;;;;;;;;;;  INST 48 ;;;;;;;;;;;;;;;;;;;;;;
1400
 
1401
;; jnz rel (48)
1402
        mov  r1,#0
1403
        mov  a,0
1404
        inc  r1
1405
        jnz  fail48
1406
 
1407
        mov  a,#1
1408
        dec  r1
1409
        jnz  done48
1410
fail48:
1411
        mov  P1,#48
1412
        ljmp failed
1413
done48:
1414
 
1415
;;;;;;;;;;;;;;;;;  INST 49 ;;;;;;;;;;;;;;;;;;;;;;
1416
 
1417
;; jz rel (49)
1418
        mov  r1,1
1419
        mov  a,#2
1420
        dec  r1
1421
        jz   fail49
1422
 
1423
        mov  a,#0
1424
        inc  r1
1425
        jz   done49
1426
fail49:
1427
        mov  P1,#49
1428
        ljmp failed
1429
done49:
1430
 
1431
;;;;;;;;;;;;;;;;   INST 50 ;;;;;;;;;;;;;;;;;;;;;;
1432
 
1433
;; lcall addr11
1434
        mov  a,#85
1435
        lcall testret
1436
        inc  a
1437
        jc   fail50
1438
        subb a,#87
1439
        jz   done50
1440
fail50:
1441
        mov  P1,1
1442
        ljmp failed
1443
done50:
1444
;;;;;;;;;;;;;;;;;  INST 51 ;;;;;;;;;;;;;;;;;;;;;;
1445
 
1446
;; ljmp (51)
1447
        ljmp done51
1448
        mov  P1,#51
1449
        ljmp failed
1450
done51:
1451
 
1452
;;;;;;;;;;;;;;;;;  INST 52 ;;;;;;;;;;;;;;;;;;;;;;
1453
 
1454
;; mov a,Rn (52)
1455
        mov  r0,#10
1456
        clr  a
1457
        setb c
1458
        mov  a,r0
1459
        jnc  fail52
1460 33 simont
  clr  c
1461 24 markom
        subb a,#10
1462
        jz   done52
1463
fail52:
1464
        mov  P1,#52
1465
        ljmp failed
1466
done52:
1467
 
1468
 
1469
;;;;;;;;;;;;;;;;;  INST 53 ;;;;;;;;;;;;;;;;;;;;;;
1470
 
1471
;; mov a,direct (53)
1472
        mov  127,#10
1473
        clr  a
1474
        setb c
1475
        mov  a,127
1476
        jnc  fail53
1477 33 simont
  clr  c
1478 24 markom
        subb a,#10
1479
        jz   done53
1480
fail53:
1481
        mov  P1,#53
1482
        ljmp failed
1483
done53:
1484
 
1485
;;;;;;;;;;;;;;;;;  INST 54 ;;;;;;;;;;;;;;;;;;;;;;
1486
 
1487
;; mov a,@Ri (54)
1488
        mov  r0,#127
1489
        mov  127,#10
1490
        clr  a
1491
        setb c
1492
        mov  a,@r0
1493
        jnc  fail54
1494 33 simont
  clr  c
1495 24 markom
        subb a,#10
1496
        jz   done54
1497
fail54:
1498
        mov  P1,#54
1499
        ljmp failed
1500
done54:
1501
 
1502
 
1503
;;;;;;;;;;;;;;;;;  INST 55 ;;;;;;;;;;;;;;;;;;;;;;
1504
 
1505
;; mov a,#data (55)
1506
        clr  a
1507
        setb c
1508
        mov  a,#10
1509
        jnc  fail55
1510 33 simont
  clr  c
1511 24 markom
        subb a,#10
1512
        jz   done55
1513
fail55:
1514
        mov  P1,#55
1515
        ljmp failed
1516
done55:
1517
 
1518
;;;;;;;;;;;;;;;;;  INST 56 ;;;;;;;;;;;;;;;;;;;;;;
1519
 
1520
;; mov Rn,a (56)
1521
        mov  a,#10
1522
        mov  r0,#0
1523
        setb c
1524
        mov  r0,a
1525
        jnc  fail56
1526
        clr  a
1527
        mov  a,r0
1528 33 simont
  clr  c
1529 24 markom
        subb a,#10
1530
        jz   done56
1531
fail56:
1532
        mov  P1,#56
1533
        ljmp failed
1534
done56:
1535
 
1536
;;;;;;;;;;;;;;;;;  INST 57 ;;;;;;;;;;;;;;;;;;;;;;
1537
 
1538
;; mov Rn,direct (57)
1539
        mov  127,#10
1540
        mov  r0,#0
1541
        setb c
1542
        mov  r0,127
1543
        jnc  fail57
1544
        mov  a,r0
1545 33 simont
  clr  c
1546 24 markom
        subb a,#10
1547
        jz   done57
1548
fail57:
1549
        mov  P1,#57
1550
        ljmp failed
1551
done57:
1552
 
1553
;;;;;;;;;;;;;;;;;  INST 58 ;;;;;;;;;;;;;;;;;;;;;;
1554
 
1555
;; mov Rn,#data (58)
1556
        mov  r0,#0
1557
        clr  a
1558
        setb c
1559
        mov  r0,#10
1560
        jnc  fail58
1561
        mov  a,r0
1562 33 simont
  clr  c
1563 24 markom
        subb a,#10
1564
        jz   done58
1565
fail58:
1566
        mov  P1,#58
1567
        ljmp failed
1568
done58:
1569
 
1570
;;;;;;;;;;;;;;;;;  INST 59 ;;;;;;;;;;;;;;;;;;;;;;
1571
 
1572
;; mov direct,a (59)
1573
        mov  a,#10
1574
        clr  127
1575
        setb c
1576
        mov  127,a
1577
        jnc  fail59
1578
        clr  a
1579
        mov  a,127
1580 33 simont
  clr  c
1581 24 markom
        subb a,#10
1582
        jz   done59
1583
fail59:
1584
        mov  P1,#59
1585
        ljmp failed
1586
done59:
1587
 
1588
;;;;;;;;;;;;;;;;;  INST 60 ;;;;;;;;;;;;;;;;;;;;;;
1589
 
1590
;; mov direct,Rn (60)
1591
        mov  r0,#10
1592
        clr  127
1593
        setb c
1594
        clr  a
1595
        mov  127,r0
1596
        jnz  fail60
1597
        jnc  fail60
1598
        mov  a,127
1599 33 simont
  clr  c
1600 24 markom
        subb a,#10
1601
        jz   done60
1602
fail60:
1603
        mov  P1,#60
1604
        ljmp failed
1605
done60:
1606
 
1607
;;;;;;;;;;;;;;;;;  INST 61 ;;;;;;;;;;;;;;;;;;;;;;
1608
 
1609
;; mov direct,direct (61)
1610
        mov  127,#10
1611
        clr  126
1612
        clr  a
1613
        setb c
1614
        mov  126,127
1615
        jnz  fail61
1616
        jnc  fail61
1617
        mov  a,126
1618 33 simont
  clr  c
1619 24 markom
        subb a,#10
1620
        jz   done61
1621
fail61:
1622
        mov  P1,#61
1623
        ljmp failed
1624
done61:
1625
 
1626
;;;;;;;;;;;;;;;;;  INST 62 ;;;;;;;;;;;;;;;;;;;;;;
1627
 
1628
;; mov direct,@Ri (62)
1629
        mov  127,#10
1630
        mov  r0,#127
1631
        clr  126
1632
        clr  a
1633
        setb c
1634
        mov  126,@r0
1635
        jnz  fail62
1636
        jnc  fail62
1637
        mov  a,126
1638 33 simont
  clr  c
1639 24 markom
        subb a,#10
1640
        jz   done62
1641
fail62:
1642
        mov  P1,#62
1643
        ljmp failed
1644
done62:
1645
 
1646
;;;;;;;;;;;;;;;;;  INST 63 ;;;;;;;;;;;;;;;;;;;;;;
1647
 
1648
;; mov direct,#data (63)
1649
        clr  127
1650
        clr  a
1651
        setb c
1652
        mov  127,#10
1653
        jnz  fail63
1654
        jnc  fail63
1655
        mov  a,127
1656 33 simont
  clr  c
1657 24 markom
        subb a,#10
1658
        jz   done63
1659
fail63:
1660
        mov  P1,#63
1661
        ljmp failed
1662
done63:
1663
 
1664
;;;;;;;;;;;;;;;;;  INST 64 ;;;;;;;;;;;;;;;;;;;;;;
1665
 
1666
;; mov @Ri,a (64)
1667
        mov  a,#10
1668
        mov  r0,#127
1669
        mov  @r0,#0
1670
        setb c
1671
        mov  @r0,a
1672
        jnc  fail64
1673
        clr  a
1674
        mov  a,127
1675 33 simont
  clr  c
1676 24 markom
        subb a,#10
1677
        jz   done64
1678
fail64:
1679
        mov  P1,#64
1680
        ljmp failed
1681
done64:
1682
 
1683
;;;;;;;;;;;;;;;;;  INST 65 ;;;;;;;;;;;;;;;;;;;;;;
1684
 
1685
;; mov @Ri,direct (65)
1686
        mov  127,#10
1687
        mov  r0,#126
1688
        mov  @r0,#0
1689
        clr  a
1690
        setb c
1691
        mov  @r0,127
1692
        jnc  fail65
1693
        jnz  fail65
1694
        mov  a,126
1695 33 simont
  clr  c
1696 24 markom
        subb a,#10
1697
        jz   done65
1698
fail65:
1699
        mov  P1,#65
1700
        ljmp failed
1701
done65:
1702
 
1703
;;;;;;;;;;;;;;;;;  INST 66 ;;;;;;;;;;;;;;;;;;;;;;
1704
 
1705
;; mov @Ri,#data (66)
1706
        mov  r0,#127
1707
        mov  @r0,#0
1708
        clr  a
1709
        setb c
1710
        mov  @r0,#10
1711
        jnz  fail66
1712
        jnc  fail66
1713
        mov  a,127
1714 33 simont
  clr  c
1715 24 markom
        subb a,#10
1716
        jz   done66
1717
fail66:
1718
        mov  P1,#66
1719
        ljmp failed
1720
done66:
1721
 
1722
;;;;;;;;;;;;;;;;;  INST 67 ;;;;;;;;;;;;;;;;;;;;;;
1723
 
1724
;; mov c,bit (67)
1725
        mov  a,#1
1726
        clr  c
1727
        mov  c,acc.0
1728
        jnc  fail67
1729
        setb c
1730
        mov  c,acc.1
1731 33 simont
        jnc  done67
1732 24 markom
fail67:
1733
        mov  P1,#67
1734
        ljmp failed
1735
done67:
1736
 
1737
;;;;;;;;;;;;;;;;;  INST 68 ;;;;;;;;;;;;;;;;;;;;;;
1738
 
1739
;; mov bit,c (68)
1740
        setb c
1741
        mov  acc.0,c
1742
        cpl  c
1743
        subb a,#1
1744
        jz   done68
1745
        mov  P1,#68
1746
        ljmp failed
1747
done68:
1748
 
1749
;;;;;;;;;;;;;;;;;  INST 69 ;;;;;;;;;;;;;;;;;;;;;;
1750
 
1751
;; mov dptr,#data (69)
1752
        mov  dptr,#0x1234
1753
        mov  a,DPH
1754
        subb a,#0x12
1755
        jnz  fail69
1756
        mov  a,DPL
1757
        subb a,#0x34
1758
        jz   done69
1759
fail69:
1760
        mov  P1,#69
1761
        ljmp failed
1762
done69:
1763
 
1764
 
1765
;;;;;;;;;;;;;;;;;  INST 70 ;;;;;;;;;;;;;;;;;;;;;;
1766
 
1767
;; movc a,@a+dptr (70)
1768
        clr  a
1769
        mov  dptr,#DB_TBL
1770
        movc a,@a+dptr
1771
        subb a,#0x66
1772
        jnz  fail70
1773
        mov  a,#1
1774
        movc a,@a+dptr
1775
        subb a,#0x77
1776
        jz   done70
1777
        jnz  fail70
1778
DB_TBL:
1779
        .db   0x66
1780
        .db   0x77
1781
fail70:
1782
        mov  P1,#70
1783
        ljmp failed
1784
done70:
1785
 
1786
 
1787
;;;;;;;;;;;;;;;;;  INST 71 ;;;;;;;;;;;;;;;;;;;;;;
1788
 
1789
;; movc a,@a+PC (71)
1790
        mov  a,#13
1791
        movc a,@a+pc
1792
        subb a,#0x66
1793
        jnz  fail71
1794
        mov  a,#7
1795
        movc a,@a+pc
1796
        subb a,#0x77
1797
        jz   done71
1798
        jnz  fail71
1799
        .db   0x66
1800
        .db   0x77
1801
fail71:
1802
        mov  P1,#71
1803
        ljmp failed
1804
done71:
1805
 
1806
 
1807
;;;;;;;;;;;;;;;;  INST 76 ;;;;;;;;;;;;;;;;;;;;;;;
1808
 
1809
;; mul AB (76)
1810
        mov  a,#80
1811
        mov  B,#160
1812
        mul  AB ; = 0x3200
1813 33 simont
        jc   fail76
1814 24 markom
        jnz  fail76
1815 33 simont
  mov  c, ov
1816
  jnc  fail76
1817 24 markom
        mov  a,B
1818 33 simont
        clr  c
1819
        subb a,#32h
1820 24 markom
        jnz  fail76
1821
 
1822
        mov  a,#111
1823
        mov  B,#87
1824
        mul  AB ; = 0x25b9
1825 33 simont
        jc   fail76
1826
  mov  c, ov
1827
  jnc  fail76
1828 24 markom
        clr  c
1829 33 simont
        subb a,#0b9h
1830 24 markom
        jnz  fail76
1831
        mov  a,B
1832 33 simont
        subb a,#25h
1833 24 markom
        jnz  fail76
1834
 
1835
        mov  a,#11
1836
        mov  B,#17
1837 33 simont
        mul  AB ; = 0x00BB
1838 24 markom
        jc   fail76
1839 33 simont
  mov  c, ov
1840
  jc   fail76
1841 24 markom
        clr  c
1842 33 simont
        subb a,#0bbh
1843 24 markom
        jnz  fail76
1844
        mov  a,B
1845
        jnz  fail76
1846
        ljmp done76
1847
 
1848
fail76:
1849
        mov  P1,#76
1850
        ljmp failed
1851
done76:
1852
 
1853
;;;;;;;;;;;;;;;;  INST 77 ;;;;;;;;;;;;;;;;;;;;;;;
1854
 
1855
;; nop
1856
        mov  a,#85
1857
        setb c
1858
        nop
1859
        jnc  fail77
1860
        subb a,#84
1861
        jnz  fail77
1862
 
1863
        mov  a,#123
1864
        clr  c
1865
        nop
1866
        jc   fail77
1867
        subb a,#123
1868
        jz   done77
1869
fail77:
1870
        mov  P1,#77
1871
        ljmp failed
1872
done77:
1873
 
1874
 
1875
;;;;;;;;;;;;;;;;  INST 78 ;;;;;;;;;;;;;;;;;;;;;;;
1876
 
1877
;; orl a,Rn (78)
1878
        mov  a,#0x90
1879
        mov  r0,#0x09
1880
        setb c
1881
        orl  a,r0
1882
        jnc  fail78
1883
        clr  c
1884
        subb a,#0x99
1885
        jnz  fail78
1886
 
1887
        mov  a,#0x48
1888
        mov  r0,#0x19
1889
        clr  c
1890
        orl  a,r0
1891
        jc   fail78
1892
        subb a,#0x59
1893
        jz   done78
1894
fail78:
1895
        mov  P1,#78
1896
        ljmp failed
1897
done78:
1898
 
1899
;;;;;;;;;;;;;;;;  INST 79 ;;;;;;;;;;;;;;;;;;;;;;;
1900
 
1901
;; orl a,direct (79)
1902
        mov  a,#0x90
1903
        mov  127,#0x09
1904
        setb c
1905
        orl  a,127
1906
        jnc  fail79
1907
        clr  c
1908
        subb a,#0x99
1909
        jnz  fail79
1910
 
1911
        mov  a,#0x48
1912
        mov  127,#0x19
1913
        clr  c
1914
        orl  a,127
1915
        jc   fail79
1916
        subb a,#0x59
1917
        jz   done79
1918
fail79:
1919
        mov  P1,#79
1920
        ljmp failed
1921
done79:
1922
 
1923
;;;;;;;;;;;;;;;;  INST 80 ;;;;;;;;;;;;;;;;;;;;;;;
1924
;; orl a,@Ri (80)
1925
        mov  a,#0x90
1926
        mov  r1,#127
1927
        mov  @r1,#0x9
1928
        setb c
1929
        orl  a,@r1
1930
        jnc  fail80
1931
        clr  c
1932
        subb a,#0x99
1933
        jnz  fail80
1934
 
1935
        mov  a,#0x48
1936
        mov  @r1,#0x19
1937
        clr  c
1938
        orl  a,@r1
1939
        jc   fail80
1940
        subb a,#0x59
1941
        jz   done80
1942
fail80:
1943
        mov  P1,#80
1944
        ljmp failed
1945
done80:
1946
 
1947
;;;;;;;;;;;;;;;;  INST 81 ;;;;;;;;;;;;;;;;;;;;;;;
1948
 
1949
;; orl a,#data (81)
1950
        mov  a,#0x90
1951
        setb c
1952
        orl  a,#0x9
1953
        jnc  fail81
1954
        clr  c
1955
        subb a,#0x99
1956
        jnz  fail81
1957
 
1958
        mov  a,#0x48
1959
        clr  c
1960
        orl  a,#0x19
1961
        jc   fail81
1962
        subb a,#0x59
1963
        jz   done81
1964
fail81:
1965
        mov  P1,#81
1966
        ljmp failed
1967
done81:
1968
 
1969
;;;;;;;;;;;;;;;;  INST 82 ;;;;;;;;;;;;;;;;;;;;;;;
1970
 
1971
;; orl direct,a (82)
1972
        mov  a,#0x90
1973
        mov  127,#0x9
1974
        setb c
1975
        orl  127,a
1976
        jnc  fail82
1977
        clr  c
1978
        subb a,#0x90
1979
        jnz  fail82
1980
        mov  a,127
1981
        clr  c
1982
        subb a,#0x99
1983
        jnz  fail82
1984
 
1985
        mov  a,#0x48
1986
        mov  127,#0x19
1987
        clr  c
1988
        orl  127,a
1989
        jc   fail82
1990
        subb a,#0x48
1991
        jnz  fail82
1992
        mov  a,127
1993
        clr  c
1994
        subb a,#0x59
1995
        jz   done82
1996
fail82:
1997
        mov  P1,#82
1998
        ljmp failed
1999
done82:
2000
 
2001
;;;;;;;;;;;;;;;;  INST 83 ;;;;;;;;;;;;;;;;;;;;;;;
2002
;; orl direct,#data (83)
2003
        mov  a,#0x91
2004
        mov  127,#0x9
2005
        setb c
2006
        orl  127,#0x90
2007
        jnc  fail83
2008
        clr  c
2009
        subb a,#0x91
2010
        jnz  fail83
2011
        mov  a,127
2012
        clr  c
2013
        subb a,#0x99
2014
        jnz  fail83
2015
 
2016
        mov  a,#0x49
2017
        mov  127,#0x19
2018
        clr  c
2019
        orl  127,#0x48
2020
        jc   fail83
2021
        subb a,#0x49
2022
        jnz  fail83
2023
        mov  a,127
2024
        clr  c
2025
        subb a,#0x59
2026
        jz   done83
2027
fail83:
2028
        mov  P1,#83
2029
        ljmp failed
2030
done83:
2031
 
2032
;;;;;;;;;;;;;;;;  INST 84 ;;;;;;;;;;;;;;;;;;;;;;;
2033
 
2034
;; orl c,bit (84)
2035
        mov  a,#1
2036
        orl  c,acc.1
2037
        jc   fail84
2038
        orl  c,acc.0
2039
        jnc  fail84
2040
        orl  c,acc.1
2041
        jc   done84
2042
fail84:
2043
        mov  P1,#84
2044
        ljmp failed
2045
done84:
2046
 
2047
;;;;;;;;;;;;;;;;  INST 85 ;;;;;;;;;;;;;;;;;;;;;;;
2048
 
2049 33 simont
;; orl c,/bit (85)
2050 24 markom
        mov  a,#1
2051 33 simont
  clr  c
2052 24 markom
        orl  c,/acc.0
2053
        jc   fail85
2054
        orl  c,/acc.1
2055
        jnc  fail85
2056 33 simont
  setb c
2057 24 markom
        orl  c,/acc.0
2058
        jc   done85
2059
fail85:
2060
        mov  P1,#85
2061
        ljmp failed
2062
done85:
2063
 
2064
;;;;;;;;;;;;;;;;  INST 86,87 ;;;;;;;;;;;;;;;;;;;;;;;
2065
 
2066
;; push direct (87)
2067 33 simont
  clr  c
2068
        mov  dptr,#0123h
2069 24 markom
        mov  127,#8
2070
        push DPL
2071
        push DPH
2072
        push 127
2073
        mov  a,8
2074 33 simont
        subb a,#23h
2075 24 markom
        jnz  fail87
2076
        mov  a,9
2077
        subb a,#1
2078
        jnz fail87
2079
        mov  a,10
2080
        subb a,#8
2081
        jz   done87
2082
fail87:
2083
        mov  P1,#87
2084
        ljmp failed
2085
done87:
2086
 
2087
;; pop direct (86)
2088
        pop  SP
2089
        pop  100
2090
        mov  a,100
2091 33 simont
        subb a,#23h
2092
        jz   done88
2093 24 markom
        mov  P1,#86
2094
        ljmp failed
2095
 
2096
done88:
2097
 
2098
;;;;;;;;;;;;;;;;  INST 90 ;;;;;;;;;;;;;;;;;;;;;;;
2099
 
2100
;; rl a (90)
2101
        mov  a,#129
2102
        rl   a
2103
        subb a,#3
2104
        jz   done90
2105
        mov  P1,#90
2106
        ljmp failed
2107
done90:
2108
 
2109
;;;;;;;;;;;;;;;;  INST 91 ;;;;;;;;;;;;;;;;;;;;;;;
2110
 
2111
;; rlc a (91)
2112
        setb c
2113
        mov  a,#129
2114
        rlc  a
2115
        subb a,#2       ;a(3)-c(1)-1
2116
        jnz  fail91
2117
        clr  c
2118
        mov  a,#129
2119
        rlc  a
2120
        subb a,#1       ;a(2)-c(1)-1
2121
        jz   done91
2122
fail91:
2123
        mov  P1,#91
2124
        ljmp failed
2125
done91:
2126
 
2127
;;;;;;;;;;;;;;;;  INST 92 ;;;;;;;;;;;;;;;;;;;;;;;
2128
 
2129
;; rr a (92)
2130
        mov  a,#129
2131
        rr   a
2132
        subb a,#192
2133
        jz   done92
2134
        mov  P1,#92
2135
        ljmp failed
2136
done92:
2137
 
2138
 
2139
;;;;;;;;;;;;;;;;  INST 93 ;;;;;;;;;;;;;;;;;;;;;;;
2140
 
2141
;; rrc a (93)
2142
        setb c
2143
        mov  a,#3
2144
        rrc  a
2145
        subb a,#128     ;a(129)-c(1)-0
2146
        jnz  fail93
2147
        clr  c
2148
        mov  a,#3
2149
        rrc  a
2150
        subb a,#0       ;a(1)-c(1)-0
2151
        jz   done93
2152
fail93:
2153
        mov  P1,#93
2154
        ljmp failed
2155
done93:
2156
 
2157
;;;;;;;;;;;;;;;;  INST 94 ;;;;;;;;;;;;;;;;;;;;;;;
2158
 
2159
;; setb c (94)
2160
        clr  c
2161
        setb c
2162
        mov  a,#1
2163
        subb a,#0       ;a(1)-c(1)-0
2164
        jz   done94
2165
        mov  P1,#94
2166
        ljmp failed
2167
done94:
2168
 
2169
;;;;;;;;;;;;;;;;  INST 95 ;;;;;;;;;;;;;;;;;;;;;;;
2170
 
2171
;; setb bit (95)
2172
        clr  a
2173
        setb acc.7
2174
        subb a,#128
2175
        jz   done95
2176
        mov  P1,#95
2177
        ljmp failed
2178
done95:
2179
 
2180
;;;;;;;;;;;;;;;;  INST 96 ;;;;;;;;;;;;;;;;;;;;;;;
2181
 
2182
;; sjmp (96)
2183
        sjmp done96
2184
        mov  P1,#96
2185
        ljmp failed
2186
done96:
2187
 
2188
;;;;;;;;;;;;;;;;  INST 97 ;;;;;;;;;;;;;;;;;;;;;;;
2189
 
2190
;; subb a,Rn (97)
2191
        setb c
2192
        mov  a,#100
2193
        mov  r0,#10
2194
        subb a,r0     ; 100 - 10 - 1 = 89
2195
        jc   fail97
2196 33 simont
        add  a,#167    ; 167 + 89 = 0
2197 24 markom
        jnz  fail97
2198
        clr  c
2199
        mov  a,#10
2200
        mov  r0,#100
2201
        subb a,r0     ; 10 - 100 - 0 = 166
2202
        jnc  fail97
2203 33 simont
        add  a,#90     ; 166 + 90 = 0
2204 24 markom
        jz   done97
2205
fail97:
2206
        mov  P1,#97
2207
        ljmp failed
2208
done97:
2209
 
2210
;;;;;;;;;;;;;;;;  INST 98 ;;;;;;;;;;;;;;;;;;;;;;;
2211
 
2212
;; subb a,direct (98)
2213
        setb c
2214
        mov  a,#100
2215
        mov  127,#10
2216
        subb a,127    ; 100 - 10 - 1 = 89
2217
        jc   fail98
2218 33 simont
        add  a,#167    ; 167 + 89 = 0
2219 24 markom
        jnz  fail98
2220
        clr  c
2221
        mov  a,#10
2222
        mov  127,#100
2223
        subb a,127    ; 10 - 100 - 0 = 166
2224
        jnc  fail98
2225 33 simont
        add  a,#90     ; 166 + 90 = 0
2226 24 markom
        jz   done98
2227
fail98:
2228
        mov  P1,#98
2229
        ljmp failed
2230
done98:
2231
 
2232
;;;;;;;;;;;;;;;;  INST 99 ;;;;;;;;;;;;;;;;;;;;;;;
2233
 
2234
;; subb a,@Ri (99)
2235
        setb c
2236
        mov  r0,#126
2237
        mov  a,#100
2238
        mov  @r0,#10
2239
        subb a,@r0    ; 100 - 10 - 1 = 89
2240
        jc   fail99
2241 33 simont
        add  a,#167    ; 167 + 89 = 0
2242 24 markom
        jnz  fail99
2243
        clr  c
2244
        mov  a,#10
2245
        mov  @r0,#100
2246
        subb a,@r0    ; 10 - 100 - 0 = 166
2247
        jnc  fail99
2248 33 simont
        add  a,#90     ; 166 + 90 = 0
2249 24 markom
        jz   done99
2250
fail99:
2251
        mov  P1,#99
2252
        ljmp failed
2253
done99:
2254
 
2255
 
2256
;;;;;;;;;;;;;;;; INST 100 ;;;;;;;;;;;;;;;;;;;;;;;
2257
 
2258
;; subb a,#data (100)
2259
        setb c
2260
        mov  a,#100
2261
        subb a,#10    ; 100 - 10 - 1 = 89
2262
        jc   fail100
2263 33 simont
        add  a,#167    ; 167 + 89 = 0
2264 24 markom
        jnz  fail100
2265
        clr  c
2266
        mov  a,#10
2267
        subb a,#100   ; 10 - 100 - 0 = 166
2268
        jnc  fail100
2269 33 simont
        add  a,#90     ; 166 + 90 = 0
2270 24 markom
        jz   done100
2271
fail100:
2272
        mov  P1,#100
2273
        ljmp failed
2274
done100:
2275
 
2276
;;;;;;;;;;;;;;;; INST 101 ;;;;;;;;;;;;;;;;;;;;;;;
2277
 
2278
;; swap a (101)
2279
        clr  c
2280 33 simont
        mov  a,#23h
2281 24 markom
        swap a
2282
        jc   fail101
2283 33 simont
        subb a,#32h
2284 24 markom
        jnz  fail101
2285 33 simont
        mov  a,#0C3h
2286 24 markom
        setb c
2287
        swap a
2288
        jnc  fail101
2289 33 simont
  clr  c
2290
        subb a,#3Ch
2291 24 markom
        jz   done101
2292
fail101:
2293
        mov  P1,#101
2294
        ljmp failed
2295
done101:
2296
 
2297
;;;;;;;;;;;;;;;; INST 102 ;;;;;;;;;;;;;;;;;;;;;;;
2298
 
2299
;; xch a,Rn (102)
2300
        mov  a,#10
2301
        mov  r0,#97
2302
        xch  a,r0
2303
        subb a,#97
2304
        jnz  fail102
2305
        mov  a,r0
2306
        subb a,#10
2307
        jz   done102
2308
fail102:
2309
        mov  P1,#102
2310
        ljmp failed
2311
done102:
2312
 
2313
;;;;;;;;;;;;;;;; INST 103 ;;;;;;;;;;;;;;;;;;;;;;;
2314
 
2315
;; xch a,direct (103)
2316
        mov  a,#10
2317
        mov  127,#99
2318
        xch  a,127
2319
        subb a,#99
2320
        jnz  fail103
2321
        mov  a,127
2322
        subb a,#10
2323
        jz   done103
2324
fail103:
2325
        mov  P1,#103
2326
        ljmp failed
2327
done103:
2328
 
2329
;;;;;;;;;;;;;;;; INST 104 ;;;;;;;;;;;;;;;;;;;;;;;
2330
 
2331
;; xch a,@Ri (104)
2332
        mov  a,#10
2333
        mov  r0,#127
2334
        mov  127,#99
2335
        xch  a,@r0
2336
        subb a,#99
2337
        jnz  fail104
2338
        mov  a,127
2339
        subb a,#10
2340
        jz   done104
2341
fail104:
2342
        mov  P1,#104
2343
        ljmp failed
2344
done104:
2345
 
2346
;;;;;;;;;;;;;;;; INST 105 ;;;;;;;;;;;;;;;;;;;;;;;
2347
 
2348
;; xchd a,@Ri (105)
2349 33 simont
        mov  a,#44h
2350 24 markom
        mov  r0,#127
2351 33 simont
        mov  127,#55h
2352 24 markom
        xchd a,@r0
2353 33 simont
        subb a,#45h
2354 24 markom
        jnz  fail105
2355
        mov  a,127
2356 33 simont
        subb a,#54h
2357 24 markom
        jz   done105
2358
fail105:
2359
        mov  P1,#105
2360
        ljmp failed
2361
done105:
2362
 
2363
 
2364
;;;;;;;;;;;;;;;; INST 106 ;;;;;;;;;;;;;;;;;;;;;;;
2365
 
2366
;; xrl a,Rn (106)
2367 33 simont
        mov  a,#35h
2368
        mov  r0,#0C3h
2369 24 markom
        xrl  a,r0
2370 33 simont
        subb a,#0F6h
2371 24 markom
        jz   done106
2372
        mov  P1,#106
2373
        ljmp failed
2374
done106:
2375
 
2376
;;;;;;;;;;;;;;;; INST 107 ;;;;;;;;;;;;;;;;;;;;;;;
2377
 
2378
;; xrl a,direct (107)
2379 33 simont
        mov  a,#0C3h
2380
        mov  127,#35h
2381 24 markom
        xrl  a,127
2382 33 simont
        subb a,#0F6h
2383 24 markom
        jz   done107
2384
        mov  P1,#107
2385
        ljmp failed
2386
done107:
2387
 
2388
 
2389
;;;;;;;;;;;;;;;; INST 108 ;;;;;;;;;;;;;;;;;;;;;;;
2390
 
2391
;; xrl a,@Ri (108)
2392 33 simont
        mov  a,#35h
2393 24 markom
        mov  r0,#127
2394 33 simont
        mov  127,#0C3h
2395 24 markom
        xrl  a,@r0
2396 33 simont
        subb a,#0F6h
2397 24 markom
        jz   done108
2398
        mov  P1,#108
2399
        ljmp failed
2400
done108:
2401
 
2402
 
2403
;;;;;;;;;;;;;;;; INST 109 ;;;;;;;;;;;;;;;;;;;;;;;
2404
 
2405
;; xrl a,#data (109)
2406 33 simont
        mov  a,#35h
2407
        xrl  a,#0C3h
2408
        subb a,#0F6h
2409 24 markom
        jz   done109
2410
        mov  P1,#109
2411
        ljmp failed
2412
done109:
2413
 
2414
 
2415
;;;;;;;;;;;;;;;; INST 110 ;;;;;;;;;;;;;;;;;;;;;;;
2416
 
2417
;; xrl direct,a (110)
2418 33 simont
        mov  a,#35h
2419
        mov  127,#0C3h
2420 24 markom
        xrl  127,a
2421
        clr  a
2422
        mov  a,127
2423 33 simont
        subb a,#0F6h
2424 24 markom
        jz   done110
2425
        mov  P1,#110
2426
        ljmp failed
2427
done110:
2428
 
2429
 
2430
;;;;;;;;;;;;;;;; INST 111 ;;;;;;;;;;;;;;;;;;;;;;;
2431
 
2432
;; xrl direct,#data (111)
2433 33 simont
        mov  127,#35h
2434
        xrl  127,#0C3h
2435 24 markom
        mov  a,127
2436 33 simont
        subb a,#0F6h
2437 24 markom
        jz   done111
2438
        mov  P1,#111
2439
        ljmp failed
2440
done111:
2441
 
2442
 
2443
;;;;;;;;;;;;;;;;;  DONE    ;;;;;;;;;;;;;;;;;;;;;;
2444
 
2445
        mov  P1,#127    ; All instructions passed
2446
 
2447
 
2448
failed:
2449
 
2450
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.