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

📄 tt.bare.s

📁 Spim软件的一些源码。其中有Xspim的
💻 S
字号:
# SPIM S20 MIPS simulator.# A simple torture test for the bare SPIM simulator.# Run with -notrap -delayed_branches -delayed_load flags (not -bare,# as file uses pseudo ops).## Copyright (C) 1990-2004 James Larus, larus@cs.wisc.edu.# ALL RIGHTS RESERVED.## SPIM is distributed under the following conditions:## You may make copies of SPIM for your own use and modify those copies.## All copies of SPIM must retain my name and copyright notice.## You may not sell SPIM or distributed SPIM in conjunction with a commerical# product or service without the expressed written consent of James Larus.## THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR# PURPOSE.## $Header: /u/faculty/larus/Software/larus/SPIM/Tests/RCS/tt.bare.s,v 1.12 1994/01/18 03:23:44 larus Exp $# Define the exception handling code.  This must go first!# Duplicate of standard trap handler.	.data	.globl __m1___m1_:	.asciiz "  Exception "	.globl __m2___m2_:	.asciiz " occurred\n"	.ktext 0x80000080	mfc0 $26 $13	# Cause	mfc0 $27 $14	# EPC	addiu $v0 $0 4	# syscall 4 (print_str)	la $a0 __m1_	syscall	addiu $v0 $0 1	# syscall 1 (print_int)	addu $a0 $0 $26	syscall	addiu $v0 $0 4	# syscall 4 (print_str)	la $a0 __m2_	syscall	mtc0 $0 $13		# Clear Cause register	rfe			# Return from exception handler	addiu $27 $27 4		# Return to next instruction	jr $27	nop# Standard startup code.  Invoke the routine main with no arguments.	.text	.globl __start__start: jal main	nop	addiu $v0 $0 10	syscall			# syscall 10 (exit)	.globl mainmain:	addu $20 $0 $31	# Save return PC# Test delayed branches:	.databc1fl_:	.asciiz "Testing BC1FL and BC1TL\n"fp_s1:	.float 1.0fp_s1p5:.float 1.5	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bc1fl_	syscall	lwc1 $f0 fp_s1	lwc1 $f2 fp_s1	lwc1 $f4 fp_s1p5	c.eq.s $f0 $f2	bc1fl fail	nop	c.eq.s $f0 $f2	bc1fl fail	j fail	c.eq.s $f0 $f4	bc1tl fail	nop	c.eq.s $f0 $f4	bc1tl fail	j fail	bc1fl l010	j fail	nopl010:# BC2FL BC2TL should be tested if CoProcessor 2 exists	.databeq_:	.asciiz "Testing BEQ and BEQL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 beq_	syscall	addiu $2 $0 0	beq $0 $0 l020	addiu $2 $0 1		# Delayed instructionl020:	addiu $3 $0 1	bne $2 $3 fail	nop	li $2 1	li $3 1	li $4 2	li $5 0	beq $2 $4 fail	nop	beq $2 $4 l021	addu $5 $0 5		# Delay slotl021:	bne $5 5 fail	nop	beql $2 $3 l022	j fail	nopl022:	li $5 0	beql $2 $3 l023	addu $5 $0 5		# Delay slotl023:	bne $5 5 fail	nop# BGEZAL and BGEZALL should be tested	.databgez_:	.asciiz "Testing BGEZ and BGEZL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bgez_	syscall	addiu $2 $0 0	bgez $0 l030	addiu $2 $0 1		# Delayed instructionl030:	addiu $3 $0 1	bne $2 $3 fail	nop	li $2 1	li $3 -1	li $4 2	li $5 0	bgez $3 fail	nop	bgez $2 l031	addu $5 $0 5		# Delay slotl031:	bne $5 5 fail	nop	bgezl $2 l032	j fail	nopl032:	li $5 0	bgezl $2 l033	addu $5 $0 5		# Delay slotl033:	bne $5 5 fail	nop	.databgtz_:	.asciiz "Testing BGTZ and BGTZL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bgtz_	syscall	addiu $2 $0 0	bgtz $0 l040	addiu $2 $0 1		# Delayed instruction	addiu $2 $0 2l040:	addiu $3 $0 2	bne $2 $3 fail	nop	li $2 1	li $3 -1	li $4 2	li $5 0	bgtz $3 fail	nop	bgtz $2 l041	addu $5 $0 5		# Delay slotl041:	bne $5 5 fail	nop	bgtzl $2 l042	j fail	nopl042:	li $5 0	bgtzl $2 l043	addu $5 $0 5		# Delay slotl043:	bne $5 5 fail	nop	.datablez_:	.asciiz "Testing BLEZ and BLEZL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 blez_	syscall	addiu $2 $0 0	blez $0 l050	addiu $2 $0 1		# Delayed instructionl050:	addiu $3 $0 1	bne $2 $3 fail	nop	li $2 1	li $3 -1	li $4 2	li $5 0	blez $2 fail	nop	blez $3 l051	addu $5 $0 5		# Delay slotl051:	bne $5 5 fail	nop	blezl $3 l052	j fail	nopl052:	li $5 0	blezl $3 l053	addu $5 $0 5		# Delay slotl053:	bne $5 5 fail	nop	.databltz_:	.asciiz "Testing BLTZ and BLTZL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bltz_	syscall	addiu $2 $0 0	bltz $0 l060	addiu $2 $0 1		# Delayed instruction	addiu $2 $0 2l060:	addiu $3 $0 2	bne $2 $3 fail	nop	li $2 1	li $3 -1	li $4 2	li $5 0	bltz $2 fail	nop	bltz $3 l061	addu $5 $0 5		# Delay slotl061:	bne $5 5 fail	nop	bltzl $3 l062	j fail	nopl062:	li $5 0	bltzl $3 l063	addu $5 $0 5		# Delay slotl063:	bne $5 5 fail	nop# BLTZAL and BLTZALL should be tested	.databne_:	.asciiz "Testing BNE and BNEL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bne_	syscall	addiu $2 $0 0	bne $0 $0 l070	addiu $2 $0 1		# Delayed instructionl070:	addiu $3 $0 1	bne $2 $3 fail	nop	li $2 1	li $3 1	li $4 2	li $5 0	bne $2 $3 fail	nop	bne $2 $4 l071	addu $5 $0 5		# Delay slotl071:	bne $5 5 fail	nop	bnel $2 $3 l072	j fail	nopl072:	li $5 0	bnel $2 $3 l073	addu $5 $0 5		# Delay slotl073:	bne $5 0 fail	nop# Test delayed loads:	.data	.globl dd:	.word 101ld_:	.asciiz "Testing LD\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ld_	syscall	addiu $3 $0 0	la $4 d	lw $3 d	addu $3 $0 5		# Delayed instruction	bne $3 101 fail	nop# Done !!!	.data	.globl smsm:	.asciiz "\nPassed all tests\n"	.text	addiu $v0 $0 4	# syscall 4 (print_str)	la $a0 sm	syscall	addu $31 $0 $20	# Return PC	jr $31			# Return from main	nop	.data	.globl fmfm:	.asciiz "Failed test\n"	.textfail:	addiu $v0 $0 4	# syscall 4 (print_str)	la $a0 fm	syscall	addiu $v0 $0 10	# syscall 10 (exit)	syscall

⌨️ 快捷键说明

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