1NAME=8051: checking bitness (asm.bits)
2FILE=malloc://32
3CMDS=<<EOF
4e asm.arch=8051
5e asm.bits=8
6EOF
7EXPECT=<<EOF
8EOF
9RUN
10
11NAME=8051: checking bitness writing (asm.bits)
12FILE=malloc://32
13CMDS=<<EOF
14e asm.arch=8051
15e asm.bits
16EOF
17EXPECT=<<EOF
188
19EOF
20RUN
21
22NAME=8051 instruction length
23FILE=malloc://32
24CMDS=<<EOF
25e asm.arch=8051
26wx 30450d @ 0
27wx d268 @ 3
28wx ef @ 3+2
29ao 3~size
30EOF
31EXPECT=<<EOF
32size: 3
33size: 2
34size: 1
35EOF
36RUN
37
38NAME=: [DJNZ r0,offs] - length check
39FILE=malloc://32
40CMDS=e asm.arch=8051 ; wx d8fc ; ao 1~size
41EXPECT=<<EOF
42size: 2
43EOF
44RUN
45
46NAME=8051: [ACALL addr11] - jump check
47FILE=malloc://10000
48CMDS=e asm.arch=8051 ; s 0x1200 ; wx f123 ; ao 1~jump
49EXPECT=<<EOF
50jump: 0x00001723
51EOF
52RUN
53
54NAME=8051: [AJMP addr11] - jump check
55FILE=malloc://10000
56CMDS=e asm.arch=8051 ; s 0x1200 ; wx e123 ; ao 1~^jump
57EXPECT=<<EOF
58jump: 0x00001723
59EOF
60RUN
61
62NAME=8051: [CJNE a,imm,offs] - jump check
63FILE=malloc://10000
64CMDS=e asm.arch=8051 ; s 0x1200 ; wx b4ab13 ; ao 1~^jump
65EXPECT=<<EOF
66jump: 0x00001216
67EOF
68RUN
69
70NAME=8051: [CJNE a,dir,offs] - jump check
71FILE=malloc://10000
72CMDS=e asm.arch=8051 ; s 0x1200 ; wx b56018 ; ao 1~^jump
73EXPECT=<<EOF
74jump: 0x0000121b
75EOF
76RUN
77
78NAME=8051: [CJNE @r1,imm,offs] - jump check
79FILE=malloc://10000
80CMDS=e asm.arch=8051 ; s 0x1200 ; wx b72432 ; ao 1~^jump
81EXPECT=<<EOF
82jump: 0x00001235
83EOF
84RUN
85
86NAME=8051: [CJNE r7,imm,offs] - jump check
87FILE=malloc://10000
88CMDS=e asm.arch=8051 ; s 0x1200 ; wx bf0205 ; ao 1~^jump
89EXPECT=<<EOF
90jump: 0x00001208
91EOF
92RUN
93
94NAME=8051: [DJNZ dir,offs] - jump check
95FILE=malloc://10000
96CMDS=e asm.arch=8051 ; s 0x1200 ; wx d54088 ; ao 1~^jump
97EXPECT=<<EOF
98jump: 0x0000118b
99EOF
100RUN
101
102NAME=8051: [DJNZ r0,offs] - jump check
103FILE=malloc://10000
104CMDS=e asm.arch=8051 ; s 0x1200 ; wx d8fc ; ao 1~^jump
105EXPECT=<<EOF
106jump: 0x000011fe
107EOF
108RUN
109
110NAME=8051: [DJNZ r0,offs] - length check
111FILE=malloc://32
112CMDS=e asm.arch=8051 ; wx d8fc ; ao 1~size
113EXPECT=<<EOF
114size: 2
115EOF
116RUN
117
118NAME=8051: [DJNZ r7,offs] - length check
119FILE=malloc://32
120CMDS=e asm.arch=8051 ; wx dffa ; ao 1~size
121EXPECT=<<EOF
122size: 2
123EOF
124RUN
125
126NAME=8051: [JB bit,offs] - jump check
127FILE=malloc://10000
128CMDS=e asm.arch=8051 ; s 0x1200 ; wx 207d03 ; ao 1~^jump
129EXPECT=<<EOF
130jump: 0x00001206
131EOF
132RUN
133
134NAME=8051: [JBC bit,offs] - jump check
135FILE=malloc://10000
136CMDS=e asm.arch=8051 ; s 0x1200 ; wx 101508 ; ao 1~^jump
137EXPECT=<<EOF
138jump: 0x0000120b
139EOF
140RUN
141
142NAME=8051: [JC offs] - jump check
143FILE=malloc://10000
144CMDS=e asm.arch=8051 ; s 0x1200 ; wx 4003 ; ao 1~^jump
145EXPECT=<<EOF
146jump: 0x00001205
147EOF
148RUN
149
150NAME=8051: [JNB bit,offs] - jump check
151FILE=malloc://10000
152CMDS=e asm.arch=8051 ; s 0x1200 ; wx 305108 ; ao 1~^jump
153EXPECT=<<EOF
154jump: 0x0000120b
155EOF
156RUN
157
158NAME=8051: [JNC offs] - jump check
159FILE=malloc://10000
160CMDS=e asm.arch=8051 ; s 0x1200 ; wx 5007 ; ao 1~^jump
161EXPECT=<<EOF
162jump: 0x00001209
163EOF
164RUN
165
166NAME=8051: [JNZ offs] - jump check
167FILE=malloc://10000
168CMDS=e asm.arch=8051 ; s 0x1200 ; wx 7013 ; ao 1~^jump
169EXPECT=<<EOF
170jump: 0x00001215
171EOF
172RUN
173
174NAME=8051: [JZ offs] - jump check
175FILE=malloc://10000
176CMDS=e asm.arch=8051 ; s 0x1200 ; wx 6015 ; ao 1~^jump
177EXPECT=<<EOF
178jump: 0x00001217
179EOF
180RUN
181
182NAME=8051: [LCALL add16] - jump check
183FILE=malloc://10000
184CMDS=e asm.arch=8051 ; s 0x1200 ; wx 12b6cf ; ao 1~jump
185EXPECT=<<EOF
186jump: 0x0000b6cf
187EOF
188RUN
189
190NAME=8051: [LJMP addr16] - jump check
191FILE=malloc://10000
192CMDS=e asm.arch=8051 ; s 0x1200 ; wx 022c0d ; ao 1~^jump
193EXPECT=<<EOF
194jump: 0x00002c0d
195EOF
196RUN
197
198NAME=8051: [SJMP offs] - jump check
199FILE=malloc://10000
200CMDS=e asm.arch=8051 ; s 0x1200 ; wx 8014 ; ao 1~^jump
201EXPECT=<<EOF
202jump: 0x00001216
203EOF
204RUN
205