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

📄 runtesti.s

📁 binary ultilities binary ultilities binary ultilities
💻 S
字号:
# Assembler initialization code for actual execution test.	# This code becomes the start of the execution test program.  It is# responsible for initializing the static data, invoking the C code,# and returning the result.  It is called as though it were a C# function with an argument of the address of the data segment.# We need to know the value of _ftext and _fdata at link time, but we# have no way to actually get that at runtime.  This is because when# this code is compiled with -membedded-pic, the la instruction will# be turned into an addiu $gp instruction.  We work around this by# storing the information in words in the .data section.  We then load# the values of these words *before* doing the runtime relocation.	.sdatatext_start:	.word	_ftextdata_start:	.word	_fdata	.globl	start	.textstart:	# Grab some space on the stack, just as though we were a real	# function.	addiu	$sp,$sp,-8	sw	$31,0($sp)	# Save the $gp register, and set it up for our data section.	sw	$gp,4($sp)	addu	$gp,$4,0x8000		# macro	# The start of the data segment is in $4.	# Get the address of start into $5 in a position independent	# fashion.	.set	noreorder	$LF1 = . + 8	bal	$LF1	la	$5,start-$LF1		# macro	.set	reorder	addu	$5,$5,$31	# Now get the address of _ftext into $6.	la	$6,_ftext-start		# macro	addu	$6,$6,$5	# Get the value of _ftext used to link into $7.	lw	$7,text_start		# macro	# Get the value of _fdata used to link into $8.	lw	$8,data_start		# macro	# Get the address of __runtime_reloc_start into $9.	la	$9,__runtime_reloc_start-start	# macro	addu	$9,$9,$5	# Get the address of __runtime_reloc_stop into $10.	la	$10,__runtime_reloc_stop-start	# macro	addu	$10,$10,$5	# The words between $9 and $10 are the runtime initialization	# instructions.  Step through and relocate them.  First set	# $11 and $12 to the values to add to text and data sections,	# respectively.	subu	$11,$6,$7	subu	$12,$4,$81:		bge	$9,$10,3f		# macro	lw	$13,0($9)	and	$14,$13,0xfffffffe	# macro	move	$15,$11	beq	$13,$14,2f	move	$15,$122:		addu	$14,$14,$4	lw	$24,0($14)	addu	$24,$24,$15	sw	$24,0($14)	addiu	$9,$9,4	b	1b3:		# Now the statically initialized data has been relocated	# correctly, and we can call the C code which does the actual	# testing.	bal	foo	# We return the value returned by the C code.	lw	$31,0($sp)	lw	$gp,4($sp)	addu	$sp,$sp,8	j	$31

⌨️ 快捷键说明

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