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

Subversion Repositories 8051

[/] [8051/] [trunk/] [asm/] [lcall.asm] - Blame information for rev 186

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 131 simont
;
2
; test lcall and bit addressable memory space
3
;
4
        mov 20h, #00h   ;
5
        setb  02h       ;
6
        lcall t         ;
7
        mov P0, 20h     ;
8
        ljmp e          ;
9
 
10
t:
11
        mov P0, #10     ;
12
        ret     ;
13
e:
14
        nop     ;
15
        nop     ;
16
 
17
;
18
; test p bit in psw
19
;
20
        mov r0, #0f0h   ;
21
        mov a, #031h    ;    p=1
22
        mov c, psw.0    ;
23
        jnc error       ;
24
        mov p0, #001h   ;
25
        mov r0, #0f1h   ;
26
        mov a, #063h    ;    p=0
27
        mov c, psw.0    ;
28
        jc error        ;
29
        mov P0, #02h    ;
30
        jnz test1       ;
31
        nop
32
        nop
33
        nop
34
test1:
35
        ljmp test       ;
36
 
37
error:
38
        mov p1, r0;
39
 
40
;
41
; test relative jumps
42
;
43
 
44
 
45
        org 01f0h       ;
46 155 simont
test_r1:
47 131 simont
        nop             ;
48
        mov p0, #33h    ;
49 155 simont
        ajmp test_r2    ;
50 131 simont
 
51
        org 0210h
52
test:
53
        mov b, #04h     ;
54
        clr a           ;
55 155 simont
        jz test_r1      ;
56 131 simont
 
57
        org 02f0h       ;
58
        mov r0, #00     ;
59
        ljmp error      ;
60
 
61 155 simont
test_r2:
62
        mov b, #05h     ;
63
        mov r4, #10h    ;
64
        mov r5, #20h    ;
65
        mov a, r4       ;
66
        subb a, #10h    ;
67
        jnz error1      ;
68
        mov a, r5       ;
69
        subb a, #20h    ;
70
        jnz error1      ;
71
 
72
        mov b, #06h     ;
73
        mov r4, b       ;
74
        mov a, r5       ;
75
        subb a, #20h    ;
76
        jnz error1      ;
77
        mov a, r4       ;
78
        subb a, #06h    ;
79
        jnz error1      ;
80
        mov b, #06h     ;
81
 
82
        mov r0, #02h    ;
83
        mov a, #044h    ;
84
        mov b, #044h    ;
85
        subb a, b       ;
86
        jnz error1      ;
87
 
88
        mov r0, #03h    ;
89
        mov a, #04h     ;
90
        mov b, #084h    ;
91
        clr b.7         ;
92
        subb a, b       ;
93
        jnz error1      ;
94
 
95
        mov r0, #03h    ;
96
        mov a, #04h     ;
97
        mov b, #084h    ;
98
        clr b.7         ;
99
        subb a, b       ;
100
        jnz error1      ;
101
 
102
        mov r0, #04h    ;
103
        mov psw, #00h   ;
104
        setb c          ;
105
        mov a, #0e4h    ;
106
        subb a, #04h    ;
107
        mov a, psw      ;
108
        subb a, #041h   ;
109
        jnz error1      ;
110
        ajmp test_lcall ;
111
 
112
error1:
113
        ljmp error      ;
114
;;;;;;;;;;;;;;;;;;
115
 
116
test_lcall:
117
        mov r0, #05h    ;
118
        clr a           ;
119
        lcall tst1      ;
120
        inc a           ;
121
        subb a, #3h     ;
122
        jnz error1      ;
123
        ljmp done       ;
124
        inc a           ;
125
        inc a           ;
126
tst1:
127
        lcall tst2      ;
128
        inc a           ;
129
        ret             ;
130
        inc a           ;
131
        inc a           ;
132
 
133
tst2:
134
        inc a           ;
135
        ret             ;
136
        inc a           ;
137
        inc a           ;
138
 
139
;;;;;;;;;;;;;;;;;;
140
 
141
done:
142
        nop             ;
143
        mov p0, #34h    ;
144
        ajmp done       ;
145
 
146
 
147 131 simont
end
148
 
149
 

powered by: WebSVN 2.1.0

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