⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 malis.s

📁 俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)的全部源代码。
💻 S
字号:
;;;; This file verifies the compliance with the Motorola specification:;; ;; MOTOROLA STANDARDS;; Document #1001, Version 1.0;; SPECIFICATION FOR Motorola 8- and 16-Bit ASSEMBLY LANGUAGE INPUT STANDARD;; 26, October 1999;;;; Available at:;; ;; http://www.mcu.motsps.com/dev_tools/hc12/eabi/m8-16alis.pdf;;;; Lines starting with '#' represent instructions that fail in GAS.;;;;;; Section 8.2 INPUTS	;; Validated within the whole file	;; Section 8.2.1 Character Set	;; TBD;; Section 8.2.2 Assembly Language Statement	;; Validated within the whole file;; Section 8.2.3 Comments	; Motorola comment	;; This file is full of comments;; Section 8.2.5 Location Counter	section .text_start:L0:	*			; L0 set to 0 (relative to text)	ldaa	1,xL1:	equ	*		; L1 set to 2 (relative to text);; Section 8.2.6 Sections	section .data	section .text	section empty	section .text;; Section 8.2.7 ExpressionsL2:	equ	23		; Absolute = 0x17L3:	equ	L0-23		; Simple relocatable;; Section 8.2.7.1 Primary ExpressionL4:	equ	45		; Numeric  = 0x2dL5:	equ	L0		; Symbolic;; Section 8.2.7.2 Absolute ExpressionL_txt:	ldaa	#44L_txt2:L6:	equ	-L4		; unary expr		0xffffffd3L7:	equ	L6+1000		; binary expr		0x03bbL8:	equ	L6-12		;			0xffffffc7L9:	equ	L_txt2-L_txt	; reloc - reloc		2 = sizeof(ldaa #44);; Section 8.2.7.3 Simple Relocatable ExpressionsL10:	equ	_start		; symbol		0 + textL11:	equ	L10+23		; reloc+abs		0x17 + textL12:	equ	L11-4		; reloc-abs		0x13 + textL13:	equ	L12+L9		; reloc+abs		0x15 + text;; Section 8.2.8 Symbols	section .textText_Symbol:	ldx	#Data_Symbol	section .dataData_Symbol:;; Section 8.2.8.1 LabelsL_label_shall_be_significant_to_at_least_32_chars:	dc.b	1L_label_lower:			; Labels are case sensitive	dc.b	2L_Label_Lower:	dc.b	3;; Section 8.2.9 Constants;;	Section 8.2.9.1	Decimal Constants	section .textL_constant:	ldaa	#123		; -> ldaa #0x7b	ldaa	#-23		; -> ldaa #0xe9	;;	Section 8.2.9.2	Binary Constants	ldab	#%10001010	; -> ldab #0x8A	ldab	#%0111		; -> ldab #0x07;;	Section 8.2.9.3	Octal Constants	ldaa	#@74		; -> ldaa 0x3c	ldaa	#@377		; -> ldaa 0xff;;	Section 8.2.9.4	Hexadecimal Constants	ldaa	#$ae		; -> ldaa 0xae	ldaa	#$B2		; -> ldaa 0xb2;;	Section 8.2.9.5	String Constants	section	.data#	ascii	'"Single quote string"'	ascii	"'Double quote string'";;	Section 8.2.9.6 Floating Point Constants;;	No specificationL_float:	float	3.241592e-2;;	Section 8.2.10	Operators	section .textL_operator:	ldx	#(((1<<3)&(1<<3)|2)<<4)+(4*4-1)	ldx	#(L2>=23)&1-(L2<=23)&1+(L2==23)&1 ; -> ldx #1	ldx	#(L2>23)&1-(L2<23)&1+(L2==23)&1   ; -> ldx #0	ldx	#1-1+1-1+1-1	ldab	#~L4		; -> ldab #0xd2#	ldab	#<_start	; force to 8-bit#	ldx	#>_start	; force to 16-bit#	ldab	#page(_start)	; 68HC12 page number of symbol;; Section 8.2.11 Instructions;;	Defined by other tests;; Section 8.2.12 Assembler Directives;; ;; Section 8.2.12.1 Conditional Directives;;# The specification says we are allowed to have spaces in expressions.# This does not work with GAS in mri mode, the instruction 'if L2 < 24'# is in fact treated as 'if L2'.L_if:	if L2<24		; true	ldx	#1		; -> ldx #1	else	ldx	#2	endif	if L2<23||L2>23||L2==22+1 ; true	if L2<23		; false	ldaa	#0	endif	if L2>23		; false	ldaa	#1	endif	if L2 == 23		; true	ldaa	#L2+8		; -> ldaa #31	endif	if L2+2<23+2		; false	if L2+4>23+4	ldaa	#1	elseif L2==23	ldaa	#2	else	ldaa	#3	endif	elseif L2==23		; true	ldaa	#4		; -> ldaa #4	else	ldaa	#5	endif	endif	ifdef L1		; true	ldx	#23		; -> ldx #0x17	endif	ifndef L_undef		; true	ldx	#4		; -> ldx #4	endif;;	Section 8.2.12.2 Define Constant -dc	section	.dataL_const_data:	dc.b	(1<<3)|2	; 0x0a	dc.w	(1<<9)+2	; 0x02 0x02	dc.l	$12345678	dc.b	10	dc.l	(1<<9)*(3<<12)#	dc.b	"Hello"#	dc.w	"World"#	dc.l	"!!!";;	Section 8.2.12.3 Define Constant Block -dcb	dcb.b	3,2	dcb.w	2,$55AA	dcb.l	2,$12345678	dcb.b	10,2	dcb.w	5,$55AA	dcb.l	2,$12345678#	dcb.b	4, 12		; Fails in GAS due to space;;	Section 8.2.12.4 Define Storage - ds	ds.b	4	ds.w	2	ds.l	1	ds	2;;	Section 8.2.12.5 Equate Symbol Value - equL_equ1:	equ	(1<<8)+3L_equ2:	equ	L_equ1*3L_equ3:	equ	L_equ2-L_equ1;;	Section 8.2.12.6 Include File - include#	include 'malis-include.s'#	include "malis-include.s"	include malis-include.s	include malis-include.s;;	Section 8.2.12.7 Origin - org	section .text#	org	$100	ldaa	#23#	org	$200	staa	24#	org	$0	rts;;	Section 8.2.12.8 Define Section - section	section .text	ldaa	23	section .data	dc.b	23;;	Section 8.2.12.9 Set Value of Symbol - sets1:	set	3s1:	set	4s2:	set	s1+2s3:	set	s2+4;; Section 8.2.12.10 External Symbol Definition - xdef	xdef	s1	xdef	s2	xdef	entry;; Section 8.2.12.11 External Symbol Reference - xref	section	.text	xref	printf	xrefb	writeentry:	rts

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -