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

📄 prologue.h

📁 PL/0源码
💻 H
字号:
//////////////////////////////////////////////////////////////////////////////////  prologue.h -- assembly-language to be prefixed to output////  one for spim; one for SGI machines.//const char sgi_prologue[] ="\t# FOR USE WITH THE SGI ASSEMBLER! (IRIX 4)\n\\t# This file has been generated by the PL/0 compiler.\n\\n\	.verstamp	3 10\n\	.option	pic1\n\	.lcomm	i 4\n\	.sdata	\n\	.align	2\n\	.align	0\n\$$5:\n\	.ascii	\"%d\\X0A\\X00\"\n\	.sdata	\n\	.align	2\n\	.align	0\n\$$9:\n\	.ascii	\"%d\\X00\"\n\	.sdata	\n\	.align	2\n\	.align	0\n\$$13:\n\	.ascii	\"Start.\\X0A\\X00\"\n\	.sdata	\n\	.align	2\n\	.align	0\n\$$16:\n\	.ascii	\"End.\\X0A\\X00\"\n\	.text	\n\	.align	2\n\	.file	2 \"prologue.c\"\n\	.loc	2 4\n\ #   1	static int i;\n\ #   2	\n\ #   3	static void output(int n)\n\ #   4	{\n\	.ent	output 2\n\output:\n\	.option	O1\n\	subu	$sp, 48\n\	sw	$31, 28($sp)\n\	sw	$4, 48($sp)\n\	.mask	0x80000000, -20\n\	.frame	$sp, 48, $31\n\	.loc	2 5\n\ #   5	   printf(\"%d\n\", n);\n\	la	$4, $$5\n\	lw	$5, 48($sp)\n\	.livereg	0x0C00000E,0x00000000\n\	jal	printf\n\	.loc	2 6\n\ #   6	}\n\	.livereg	0x0000FF0E,0x00000FFF\n\	lw	$31, 28($sp)\n\	addu	$sp, 48\n\	j	$31\n\	.end	output\n\	.text	\n\	.align	2\n\	.file	2 \"prologue.c\"\n\	.loc	2 9\n\ #   7	\n\ #   8	static int input()\n\ #   9	{\n\	.ent	input 2\n\input:\n\	.option	O1\n\	subu	$sp, 96\n\	sw	$31, 28($sp)\n\	.mask	0x80000000, -68\n\	.frame	$sp, 96, $31\n\	.loc	2 12\n\ #  10	   void *r3,*r8,*r9,*r10,*r11,*r12,*r13,*r14,*r15,*r24,*r25;\n\ #  11	   int temp;\n\\n\        # save temporary regs\n\	sw	$3, 92($sp)\n\	sw	$8, 88($sp)\n\	sw	$9, 84($sp)\n\	sw	$10, 80($sp)\n\	sw	$11, 76($sp)\n\	sw	$12, 72($sp)\n\	sw	$13, 68($sp)\n\	sw	$14, 64($sp)\n\	sw	$15, 60($sp)\n\	sw	$24, 56($sp)\n\	sw	$25, 52($sp)\n\\n\	.loc	2 15\n\ #  15	   scanf(\"%d\", &temp);\n\	la	$4, $$9\n\	addu	$5, $sp, 48\n\	.livereg	0x0C00000E,0x00000000\n\	jal	scanf\n\	.loc	2 16\n\ #  16	   return temp;\n\	lw	$2, 48($sp)\n\\n\        # restore temporary regs\n\	lw	$3, 92($sp)\n\	lw	$8, 88($sp)\n\	lw	$9, 84($sp)\n\	lw	$10, 80($sp)\n\	lw	$11, 76($sp)\n\	lw	$12, 72($sp)\n\	lw	$13, 68($sp)\n\	lw	$14, 64($sp)\n\	lw	$15, 60($sp)\n\	lw	$24, 56($sp)\n\	lw	$25, 52($sp)\n\\n\	.livereg	0x2000FF0E,0x00000FFF\n\	lw	$31, 28($sp)\n\	addu	$sp, 96\n\	j	$31\n\	.end	input\n\	.text	\n\	.align	2\n\	.file	2 \"prologue.c\"\n\	.globl	main\n\	.loc	2 22\n\ #  17	}\n\ #  18	\n\ #  19	void start();\n\ #  20	\n\ #  21	main()\n\ #  22	{\n\	.ent	main 2\n\main:\n\	.option	O1\n\	subu	$sp, 48\n\	sw	$31, 28($sp)\n\	.mask	0x80000000, -20\n\	.frame	$sp, 48, $31\n\	.loc	2 23\n\ #  23	   printf(\"Start.\\n\");\n\	la	$4, $$13\n\	.livereg	0x0800000E,0x00000000\n\	jal	printf\n\	.loc	2 24\n\ #  24	   start();\n\	.livereg	0x0000000E,0x00000000\n\	jal	start\n\	.loc	2 25\n\ #  25	   printf(\"End.\\n\");\n\	la	$4, $$16\n\	.livereg	0x0800000E,0x00000000\n\	jal	printf\n\	.loc	2 26\n\ #  26	}\n\	move	$2, $0\n\	.livereg	0x2000FF0E,0x00000FFF\n\	lw	$31, 28($sp)\n\	addu	$sp, 48\n\        j	$31\n\	.end	main\n\\n\        ######################################### end of the prologue";const char spim_prologue[] ="\t# FOR USE WITH THE SPIM SIMULATOR!\n\\t# This file has been generated by the PL/0 compiler.\n\\n\	.data\n\startmsg:\n\	.asciiz \"Start.\\n\"\n\endmsg:	.asciiz \"End.\\n\"\n\nlmsg:	.asciiz \"\\n\"\n\ioret:  .word 0\n\regs:   .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\	.text\n\	.globl main\n\\n\	.ent main\n\main:\n\	li $v0, 4\n\	la $a0,	startmsg\n\	syscall\n\\n\	# jump to the code generated by the compiler.\n\	jal	start\n\\n\	li $v0, 4\n\	la $a0,	endmsg\n\	syscall\n\\n\	li $v0, 10\n\	syscall\n\	.end main\n\\n\	# write a number to stdout\n\	.ent output\n\output:\n\	li $v0, 1\n\	syscall\n\	li $v0, 4\n\	la $a0,	nlmsg\n\	syscall\n\	jr $31\n\	.end output\n\\n\	# read a number from stdin.\n\	# TEMPORARY REGS MUST BE PRESERVED!\n\	.ent	input\n\input:\n\	sw 	$3,  regs + 0\n\	sw 	$8,  regs + 4\n\	sw 	$9,  regs + 8\n\	sw 	$10, regs + 12\n\	sw 	$11, regs + 16\n\	sw 	$12, regs + 20\n\	sw 	$13, regs + 24\n\	sw 	$14, regs + 28\n\	sw 	$15, regs + 32\n\	sw 	$24, regs + 36\n\	sw 	$25, regs + 40\n\	li	$v0, 5\n\	syscall\n\	lw 	$3,  regs + 0\n\	lw 	$8,  regs + 4\n\	lw 	$9,  regs + 8\n\	lw 	$10, regs + 12\n\	lw 	$11, regs + 16\n\	lw 	$12, regs + 20\n\	lw 	$13, regs + 24\n\	lw 	$14, regs + 28\n\	lw 	$15, regs + 32\n\	lw 	$24, regs + 36\n\	lw 	$25, regs + 40\n\	jr	$31\n\	.end	input\n\\n\	######################################### end of the prologue";// End of File

⌨️ 快捷键说明

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