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

📄 cf.s

📁 用Java实现的编译器。把源代码编译成SPARC汇编程序
💻 S
字号:
    ! SPARC assembly:     ! Automatically generated by ASM.SPARCGenerator.section	".data".GLOBALFIELD:.ARRAY_OUT_OF_BOUND:	.asciz "testcases/dataflow/cf.dcf:%d: runtime error: array out of bound; accessing: %d, array size: %d\n"	.align 4.DIVISION_ZERO:	.asciz "testcases/dataflow/cf.dcf:%d: runtime error: division to zero\n"	.align 4.CONTROL_FALLING_OFF:	.asciz "testcases/dataflow/cf.dcf:%s: runtime error: control falling off the end of the method: %s , missing a return value\n"	.align 4.section	".text"	.align 4	.global main	.globl mainmain:	sethi	%hi(.GLOBALFIELD), %g2	or	%g2, %lo(.GLOBALFIELD), %g2	save	%sp, -96, %sp	st	%g0, [%fp-4]	st	%g0, [%fp-8]	st	%g0, [%fp-12]	st	%g0, [%fp-16]	st	%g0, [%fp-20]	st	%g0, [%fp-24]	st	%g0, [%fp-28]	st	%g0, [%fp-32]	st	%g0, [%fp-36]	st	%g0, [%fp-40]	st	%g0, [%fp-44]	st	%g0, [%fp-48]	st	%g0, [%fp-52]	st	%g0, [%fp-56]	st	%g0, [%fp-60]	st	%g0, [%fp-64]	st	%g0, [%fp-68]	st	%g0, [%fp-72]	st	%g0, [%fp-76]	st	%g0, [%fp-80]	st	%g0, [%fp-84]	st	%g0, [%fp-88]	st	%g0, [%fp-92]	st	%g0, [%fp-96]	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg1), %g1	or	%g1, %lo(.CalloutArg1), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Move instruction for the int literal:  2	mov	2, %l0	! Preparing parameter -> sp%+offset:  	st	%l0, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	! Preparing parameter -> Ro:  	ld	[%sp+96], %o1	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg2), %g1	or	%g1, %lo(.CalloutArg2), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Move instruction for the int literal:  -1	mov	-1, %l0	! Preparing parameter -> sp%+offset:  	st	%l0, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	! Preparing parameter -> Ro:  	ld	[%sp+96], %o1	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg3), %g1	or	%g1, %lo(.CalloutArg3), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Move instruction for the int literal:  9	mov	9, %l0	! Preparing parameter -> sp%+offset:  	st	%l0, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	! Preparing parameter -> Ro:  	ld	[%sp+96], %o1	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg4), %g1	or	%g1, %lo(.CalloutArg4), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Move instruction for the int literal:  7	mov	7, %l0	! Preparing parameter -> sp%+offset:  	st	%l0, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	! Preparing parameter -> Ro:  	ld	[%sp+96], %o1	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	!Return statement for method:	ret	restore	!Datasection.CalloutArg1:	.asciz "1+1=%d\n"	.align 8.CalloutArg2:	.asciz "1-2=%d\n"	.align 8.CalloutArg3:	.asciz "3*3=%d\n"	.align 8.CalloutArg4:	.asciz "1+2*3=%d\n"	.align 8.MDNAME_main:	.asciz "'main( )'"	.align 8.MDNAME_main_LINE_NO:	.asciz "11"	.align 8

⌨️ 快捷键说明

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