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

📄 12-huge.s

📁 用Java实现的编译器。把源代码编译成SPARC汇编程序
💻 S
📖 第 1 页 / 共 4 页
字号:
	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg40), %g1	or	%g1, %lo(.CalloutArg40), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	32, %g3	sub	%sp, %g3, %sp	! Move instruction for the int literal:  2	mov	2, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+100]	! Move instruction for the int literal:  6	mov	6, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	add	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+104]	mov	0, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+108]	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! Move instruction for the int literal:  -3	mov	-3, %l1	smul	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+112]	! Move instruction for the int literal:  1	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+116]	! Move instruction for the int literal:  3	mov	3, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	! Move instruction for the int literal:  2	mov	2, %l2	smul	%l1, %l2, %l3	sub	%l0, %l3, %l1	! Preparing parameter -> %sp + offset:  	st	%l1, [%sp+120]	mov	0, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+92]	! Move instruction for the int literal:  5	mov	5, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+100], %o0	! Preparing parameter -> Ro:  	ld	[%sp+104], %o1	! Preparing parameter -> Ro:  	ld	[%sp+108], %o2	! Preparing parameter -> Ro:  	ld	[%sp+112], %o3	! Preparing parameter -> Ro:  	ld	[%sp+116], %o4	! Preparing parameter -> Ro:  	ld	[%sp+120], %o5	call	gurp,0	nop	mov	%o0, %l0	mov	32, %g3	add	%sp, %g3, %sp	!Location id store instruction for stmt location:   a = expression	st	%l0, [%fp-16]	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg41), %g1	or	%g1, %lo(.CalloutArg41), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	32, %g3	sub	%sp, %g3, %sp	! Move instruction for the int literal:  -3	mov	-3, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+100]	! Move instruction for the int literal:  8	mov	8, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+104]	mov	1, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+108]	! Move instruction for the int literal:  7	mov	7, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+112]	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! Move instruction for the int literal:  4	mov	4, %l1	sub	%l0, %l1, %l2	! Preparing parameter -> %sp + offset:  	st	%l2, [%sp+116]	! Move instruction for the int literal:  2	mov	2, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+120]	mov	0, %l0	! Preparing parameter -> %sp + offset:  	st	%l0, [%sp+92]	! Move instruction for the int literal:  6	mov	6, %l0	! Load instruction for the location identifier:  x	ld	[%fp-4], %l1	! Move instruction for the int literal:  9	mov	9, %l2	smul	%l1, %l2, %l3	sub	%l0, %l3, %l1	! Preparing parameter -> %sp + offset:  	st	%l1, [%sp+96]	! Preparing parameter -> Ro:  	ld	[%sp+100], %o0	! Preparing parameter -> Ro:  	ld	[%sp+104], %o1	! Preparing parameter -> Ro:  	ld	[%sp+108], %o2	! Preparing parameter -> Ro:  	ld	[%sp+112], %o3	! Preparing parameter -> Ro:  	ld	[%sp+116], %o4	! Preparing parameter -> Ro:  	ld	[%sp+120], %o5	call	gurp,0	nop	mov	%o0, %l0	mov	32, %g3	add	%sp, %g3, %sp	!Location id store instruction for stmt location:   b = expression	st	%l0, [%fp-20]	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg42), %g1	or	%g1, %lo(.CalloutArg42), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg43), %g1	or	%g1, %lo(.CalloutArg43), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg44), %g1	or	%g1, %lo(.CalloutArg44), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Load instruction for the location identifier:  y	ld	[%fp-8], %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(.CalloutArg45), %g1	or	%g1, %lo(.CalloutArg45), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg46), %g1	or	%g1, %lo(.CalloutArg46), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Load instruction for the location identifier:  z	ld	[%fp-12], %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(.CalloutArg47), %g1	or	%g1, %lo(.CalloutArg47), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg48), %g1	or	%g1, %lo(.CalloutArg48), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Load instruction for the location identifier:  a	ld	[%fp-16], %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(.CalloutArg49), %g1	or	%g1, %lo(.CalloutArg49), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	mov	8, %g3	sub	%sp, %g3, %sp	sethi	%hi(.CalloutArg50), %g1	or	%g1, %lo(.CalloutArg50), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Load instruction for the location identifier:  b	ld	[%fp-20], %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(.CalloutArg51), %g1	or	%g1, %lo(.CalloutArg51), %g1	! Preparing parameter -> sp% + offset:  	st	%g1, [%sp+92]	! Preparing parameter -> Ro:  	ld	[%sp+92], %o0	call	printf,0	nop	mov	%o0, %l0	mov	8, %g3	add	%sp, %g3, %sp	! Load instruction for the location identifier:  x	ld	[%fp-4], %l0	! Move instruction for the int literal:  1	mov	1, %l1	add	%l0, %l1, %l2	!Location id store instruction for stmt location:   x = expression	st	%l2, [%fp-4]	b	.WhileCondition33	nop.End33:	!Return statement for method:	ret	restore	!Datasection.CalloutArg1:	.asciz "top of gurp\n"	.align 8.CalloutArg2:	.asciz "done j\n"	.align 8.CalloutArg3:	.asciz "done i\n"	.align 8.CalloutArg4:	.asciz "done j\n"	.align 8.CalloutArg5:	.asciz "done k\n"	.align 8.CalloutArg6:	.asciz "done k\n"	.align 8.CalloutArg7:	.asciz "done m\n%d %d\n"	.align 8.CalloutArg8:	.asciz "after n\n"	.align 8.CalloutArg15:	.asciz "after first if\n"	.align 8.CalloutArg17:	.asciz "after second if\n"	.align 8.CalloutArg20:	.asciz "after third if\n"	.align 8.CalloutArg21:	.asciz "%d"	.align 8.CalloutArg22:	.asciz " "	.align 8.CalloutArg23:	.asciz "%d"	.align 8.CalloutArg24:	.asciz " "	.align 8.CalloutArg25:	.asciz "%d"	.align 8.CalloutArg26:	.asciz " "	.align 8.CalloutArg28:	.asciz "%d"	.align 8.CalloutArg30:	.asciz "%d"	.align 8.CalloutArg31:	.asciz "%d"	.align 8.CalloutArg32:	.asciz "after fourth if\n"	.align 8.MDNAME_gurp:	.asciz "'gurp( )'"	.align 8.MDNAME_gurp_LINE_NO:	.asciz "112"	.align 8.CalloutArg35:	.asciz "Top of loop\n"	.align 8.CalloutArg36:	.asciz "done z gurp\n"	.align 8.CalloutArg37:	.asciz "%d"	.align 8.CalloutArg38:	.asciz "\n"	.align 8.CalloutArg39:	.asciz "done 0z gurp\n"	.align 8.CalloutArg40:	.asciz "done y gurp\n"	.align 8.CalloutArg41:	.asciz "done a gurp\n"	.align 8.CalloutArg42:	.asciz "done b gurp\n"	.align 8.CalloutArg43:	.asciz "After gurps\n"	.align 8.CalloutArg44:	.asciz "%d"	.align 8.CalloutArg45:	.asciz " "	.align 8.CalloutArg46:	.asciz "%d"	.align 8.CalloutArg47:	.asciz " "	.align 8.CalloutArg48:	.asciz "%d"	.align 8.CalloutArg49:	.asciz " "	.align 8.CalloutArg50:	.asciz "%d"	.align 8.CalloutArg51:	.asciz "\n"	.align 8.MDNAME_main:	.asciz "'main( )'"	.align 8.MDNAME_main_LINE_NO:	.asciz "142"	.align 8

⌨️ 快捷键说明

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