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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [m68hc11/] [malis.s] - Blame information for rev 205

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
;;
2
;; This file verifies the compliance with the Motorola specification:
3
;; 
4
;; MOTOROLA STANDARDS
5
;; Document #1001, Version 1.0
6
;; SPECIFICATION FOR Motorola 8- and 16-Bit ASSEMBLY LANGUAGE INPUT STANDARD
7
;; 26, October 1999
8
;;
9
;; Available at:
10
;; 
11
;; http://www.mcu.motsps.com/dev_tools/hc12/eabi/m8-16alis.pdf
12
;;
13
;; Lines starting with '#' represent instructions that fail in GAS.
14
;;
15
;;
16
;; Section 8.2 INPUTS
17
        ;; Validated within the whole file
18
 
19
;; Section 8.2.1 Character Set
20
        ;; TBD
21
 
22
;; Section 8.2.2 Assembly Language Statement
23
        ;; Validated within the whole file
24
 
25
;; Section 8.2.3 Comments
26
        ; Motorola comment
27
        ;; This file is full of comments
28
 
29
;; Section 8.2.5 Location Counter
30
        section .text
31
 
32
_start:
33
L0:     *                       ; L0 set to 0 (relative to text)
34
        ldaa    1,x
35
L1:     equ     *               ; L1 set to 2 (relative to text)
36
 
37
;; Section 8.2.6 Sections
38
        section .data
39
        section .text
40
        section empty
41
        section .text
42
 
43
;; Section 8.2.7 Expressions
44
L2:     equ     23              ; Absolute = 0x17
45
L3:     equ     L0-23           ; Simple relocatable
46
 
47
;; Section 8.2.7.1 Primary Expression
48
L4:     equ     45              ; Numeric  = 0x2d
49
L5:     equ     L0              ; Symbolic
50
 
51
;; Section 8.2.7.2 Absolute Expression
52
L_txt:  ldaa    #44
53
L_txt2:
54
L6:     equ     -L4             ; unary expr            0xffffffd3
55
L7:     equ     L6+1000         ; binary expr           0x03bb
56
L8:     equ     L6-12           ;                       0xffffffc7
57
L9:     equ     L_txt2-L_txt    ; reloc - reloc         2 = sizeof(ldaa #44)
58
 
59
;; Section 8.2.7.3 Simple Relocatable Expressions
60
L10:    equ     _start          ; symbol                0 + text
61
L11:    equ     L10+23          ; reloc+abs             0x17 + text
62
L12:    equ     L11-4           ; reloc-abs             0x13 + text
63
L13:    equ     L12+L9          ; reloc+abs             0x15 + text
64
 
65
;; Section 8.2.8 Symbols
66
        section .text
67
Text_Symbol:
68
        ldx     #Data_Symbol
69
 
70
        section .data
71
Data_Symbol:
72
 
73
;; Section 8.2.8.1 Labels
74
L_label_shall_be_significant_to_at_least_32_chars:
75
        dc.b    1
76
L_label_lower:                  ; Labels are case sensitive
77
        dc.b    2
78
L_Label_Lower:
79
        dc.b    3
80
 
81
;; Section 8.2.9 Constants
82
;
83
;       Section 8.2.9.1 Decimal Constants
84
        section .text
85
L_constant:
86
        ldaa    #123            ; -> ldaa #0x7b
87
        ldaa    #-23            ; -> ldaa #0xe9
88
 
89
;;      Section 8.2.9.2 Binary Constants
90
        ldab    #%10001010      ; -> ldab #0x8A
91
        ldab    #%0111          ; -> ldab #0x07
92
 
93
;;      Section 8.2.9.3 Octal Constants
94
        ldaa    #@74            ; -> ldaa 0x3c
95
        ldaa    #@377           ; -> ldaa 0xff
96
 
97
;;      Section 8.2.9.4 Hexadecimal Constants
98
        ldaa    #$ae            ; -> ldaa 0xae
99
        ldaa    #$B2            ; -> ldaa 0xb2
100
 
101
;;      Section 8.2.9.5 String Constants
102
        section .data
103
#       ascii   '"Single quote string"'
104
        ascii   "'Double quote string'"
105
 
106
;;      Section 8.2.9.6 Floating Point Constants
107
;;      No specification
108
L_float:        float   3.241592e-2
109
 
110
;;      Section 8.2.10  Operators
111
        section .text
112
L_operator:
113
        ldx     #(((1<<3)&(1<<3)|2)<<4)+(4*4-1)
114
        ldx     #(L2>=23)&1-(L2<=23)&1+(L2==23)&1 ; -> ldx #1
115
        ldx     #(L2>23)&1-(L2<23)&1+(L2==23)&1   ; -> ldx #0
116
        ldx     #1-1+1-1+1-1
117
        ldab    #~L4            ; -> ldab #0xd2
118
#       ldab    #<_start        ; force to 8-bit
119
#       ldx     #>_start        ; force to 16-bit
120
#       ldab    #page(_start)   ; 68HC12 page number of symbol
121
 
122
;; Section 8.2.11 Instructions
123
;;      Defined by other tests
124
 
125
;; Section 8.2.12 Assembler Directives
126
;; 
127
;; Section 8.2.12.1 Conditional Directives
128
;;
129
# The specification says we are allowed to have spaces in expressions.
130
# This does not work with GAS in mri mode, the instruction 'if L2 < 24'
131
# is in fact treated as 'if L2'.
132
L_if:
133
        if L2<24                ; true
134
        ldx     #1              ; -> ldx #1
135
        else
136
        ldx     #2
137
        endif
138
        if L2<23||L2>23||L2==22+1 ; true
139
        if L2<23                ; false
140
        ldaa    #0
141
        endif
142
        if L2>23                ; false
143
        ldaa    #1
144
        endif
145
        if L2 == 23             ; true
146
        ldaa    #L2+8           ; -> ldaa #31
147
        endif
148
        if L2+2<23+2            ; false
149
        if L2+4>23+4
150
        ldaa    #1
151
        elseif L2==23
152
        ldaa    #2
153
        else
154
        ldaa    #3
155
        endif
156
        elseif L2==23           ; true
157
        ldaa    #4              ; -> ldaa #4
158
        else
159
        ldaa    #5
160
        endif
161
        endif
162
        ifdef L1                ; true
163
        ldx     #23             ; -> ldx #0x17
164
        endif
165
        ifndef L_undef          ; true
166
        ldx     #4              ; -> ldx #4
167
        endif
168
 
169
;;      Section 8.2.12.2 Define Constant -dc
170
        section .data
171
L_const_data:
172
        dc.b    (1<<3)|2        ; 0x0a
173
        dc.w    (1<<9)+2        ; 0x02 0x02
174
        dc.l    $12345678
175
        dc.b    10
176
        dc.l    (1<<9)*(3<<12)
177
#       dc.b    "Hello"
178
#       dc.w    "World"
179
#       dc.l    "!!!"
180
 
181
;;      Section 8.2.12.3 Define Constant Block -dcb
182
        dcb.b   3,2
183
        dcb.w   2,$55AA
184
        dcb.l   2,$12345678
185
        dcb.b   10,2
186
        dcb.w   5,$55AA
187
        dcb.l   2,$12345678
188
#       dcb.b   4, 12           ; Fails in GAS due to space
189
 
190
;;      Section 8.2.12.4 Define Storage - ds
191
        ds.b    4
192
        ds.w    2
193
        ds.l    1
194
        ds      2
195
 
196
;;      Section 8.2.12.5 Equate Symbol Value - equ
197
L_equ1: equ     (1<<8)+3
198
L_equ2: equ     L_equ1*3
199
L_equ3: equ     L_equ2-L_equ1
200
 
201
;;      Section 8.2.12.6 Include File - include
202
#       include 'malis-include.s'
203
#       include "malis-include.s"
204
        include malis-include.s
205
        include malis-include.s
206
 
207
;;      Section 8.2.12.7 Origin - org
208
        section .text
209
#       org     $100
210
        ldaa    #23
211
#       org     $200
212
        staa    24
213
#       org     $0
214
        rts
215
 
216
;;      Section 8.2.12.8 Define Section - section
217
        section .text
218
        ldaa    23
219
 
220
        section .data
221
        dc.b    23
222
 
223
;;      Section 8.2.12.9 Set Value of Symbol - set
224
s1:     set     3
225
s1:     set     4
226
s2:     set     s1+2
227
s3:     set     s2+4
228
 
229
;; Section 8.2.12.10 External Symbol Definition - xdef
230
        xdef    s1
231
        xdef    s2
232
        xdef    entry
233
 
234
;; Section 8.2.12.11 External Symbol Reference - xref
235
        section .text
236
        xref    printf
237
        xrefb   write
238
entry:
239
        rts
240
 

powered by: WebSVN 2.1.0

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