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

📄 tt.core.s

📁 Spim软件的一些源码。其中有Xspim的
💻 S
📖 第 1 页 / 共 5 页
字号:
	mthi $0	mfhi $2	bnez $2 fail	mtlo $0	mflo $2	bnez $2 fail	li $2 1	mthi $2	mfhi $3	bne $3 $2 fail	li $2 1	mtlo $2	mflo $3	bne $3 $2 fail	li $2 -1	mthi $2	mfhi $3	bne $3 $2 fail	li $2 -1	mtlo $2	mflo $3	bne $3 $2 fail	.datamovf_:	.asciiz "Testing MOVF\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 movf_	syscall	li $2 0xf0	ctc1 $2 $25	li $2 1	li $3 0	li $4 2	movf $3 $2 1	bne $3 1 fail	movf $3 $4 7	bne $3 1 fail	.datamovn_:	.asciiz "Testing MOVN\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 movn_	syscall	li $2 2	li $3 3	li $4 4	movn $4 $3 $0	bne $4 4 fail	movn $4 $3 $2	bne $4 3 fail	.datamovt_:	.asciiz "Testing MOVT\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 movt_	syscall	li $2 0xf	ctc1 $2 $25	li $2 1	li $3 0	li $4 2	movt $3 $2 1	bne $3 1 fail	movt $3 $4 7	bne $3 1 fail	.datamovz_:	.asciiz "Testing MOVZ\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 movz_	syscall	li $2 2	li $3 3	li $4 4	movz $4 $3 $2	bne $4 4 fail	movz $4 $3 $0	bne $4 3 fail	.datamsub_:	.asciiz "Testing MSUB\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 msub_	syscall	mthi $0	mtlo $0	msub $0 $0	mfhi $3	bnez $3 fail	mflo $3	bnez $3 fail	li $4, 1	msub $4 $4	mfhi $3	bne $3 0xffffffff fail	mflo $3	bne $3 0xffffffff fail	li $4, 1	msub $3 $4	mfhi $3	bnez $3 fail	mflo $3	bnez $3 fail	li $4, 0x10000	msub $4 $4	mfhi $3	bne $3 0xffffffff fail	mflo $3	bne $3 0 fail	.datamsubu_:	.asciiz "Testing MSUBU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 msubu_	syscall	mthi $0	mtlo $0	msubu $0 $0	mfhi $3	bnez $3 fail	mflo $3	bnez $3 fail	li $4, 1	msubu $4 $4	mfhi $3	bne $3 0xffffffff fail	mflo $3	bne $3 0xffffffff fail	.datamul_:	.asciiz "Testing MUL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 mul_	syscall	li $2, 1	mul $3, $2, 0	bnez $3 fail	mul $3, $2, 1	bne $3 1 fail	mul $3, $2, 10	bne $3 10 fail	mul $2 $0 $0	bnez $2 fail	mfhi $3	bnez $3 fail	mflo $3	bnez $3 fail	li $4, 1	mul $2 $4 $4	bne $2 1 fail	mfhi $3	bnez $3 fail	mflo $3	bne $3 1 fail	li $4, -1	mul $2 $4 $4	bne $2 1 fail	mfhi $3	bnez $3 fail	mflo $3	bne $3 1 fail	li $4, -1	li $5, 1	mul $2 $4 $5	bne $2 -1 fail	mfhi $3	bne $3 -1 fail	mflo $3	bne $3 -1 fail	li $4, 0x10000	mul $2 $4 $4	bne $2 0 fail	mfhi $3	bne $3 1 fail	mflo $3	bne $3 0 fail	li $4, 0x80000000	mul $2 $4 $4	bne $2 0 fail	mfhi $3	bne $3 0x40000000 fail	mflo $3	bne $3 0 fail	.datamultu_:	.asciiz "Testing MULTU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 multu_	syscall	multu $0 $0	mfhi $3	bnez $3 fail	mflo $3	bnez $3 fail	li $4, 1	multu $4 $4	mfhi $3	bnez $3 fail	mflo $3	bne $3 1 fail	li $4, -1	multu $4 $4	mfhi $3	bne $3 0xfffffffe fail	mflo $3	bne $3 1 fail	li $4, -1	li $5, 0	multu $4 $5	mfhi $3	bne $3 0 fail	mflo $3	bne $3 0 fail	li $4, -1	li $5, 1	multu $4 $5	mfhi $3	bne $3 0 fail	mflo $3	bne $3 -1 fail	li $4, 0x10000	multu $4 $4	mfhi $3	bne $3 1 fail	mflo $3	bne $3 0 fail	li $4, 0x80000000	multu $4 $4	mfhi $3	bne $3 0x40000000 fail	mflo $3	bne $3 0 fail	li $3, 0xcecb8f27	li $4, 0xfd87b5f2	multu $3 $4	mfhi $3	bne $3 0xcccccccb fail	mflo $3	bne $3 0x7134e5de fail	.datamulo_:	.asciiz "Testing MULO\n"mulo1_:	.asciiz "Expect an exception:\n	 "	.text	li $v0 4	# syscall 4 (print_str)	la $a0 mulo_	syscall	mulo $2 $0 $0	bne $2 0 fail	li $4, 1	mulo $2 $4 $4	bne $2 1 fail	li $4, -1	mulo $2 $4 $4	bne $2 1 fail	li $4, -1	li $5, 1	mulo $2 $4 $5	bne $2 -1 fail	li $v0 4	# syscall 4 (print_str)	la $a0 mulo1_	syscall	li $4, 0x10000	mulo $2 $4 $4	bne $2 0 fail	.datanor_:	.asciiz "Testing NOR\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 nor_	syscall	li $2 1	li $3 -1	nor $4 $0 $0	bne $4 -1 fail	nor $4 $2 $2	bne $4 0xfffffffe fail	nor $4 $2 $3	bne $4 0 fail	.dataor_:	.asciiz "Testing OR\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 or_	syscall	li $2 1	li $3 -1	or $4 $0 $0	bne $4 0 fail	or $4 $2 $2	bne $4 1 fail	or $4 $2 $3	bne $4 -1 fail	.dataori_:	.asciiz "Testing ORI\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ori_	syscall	li $2 1	li $3 -1	ori $4 $0 0	bne $4 0 fail	ori $4 $2 1	bne $4 1 fail	ori $4 $2 0xffff	bne $4 0x0000ffff fail# RFE tested previously# SB is endian-specific	.datasd_:	.asciiz "Testing SD\n"sd2_:	.asciiz "Expect two address error exceptions:\n"	.align 2sdd_:	.word 0, 0, 0, 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sd_	syscall	li $3, 0x7f7f7f7f	li $4, 0xf7f7f7f7	la $2 sdd_	sd $3 0($2)	ld $5 0($2)	bne $3 $5 fail	bne $4 $4 fail	li $v0 4	# syscall 4 (print_str)	la $a0 sd2_	syscall	li $t5 0x7fffffff	sd $3 1000($t5)	sd $3 1001($t5)	.dataswc1_:	.asciiz "Testing SWC1\n"	.align 2swc1d_:	.word 0, 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 swc1_	syscall	li $3, 0x7f7f7f7f	la $2 swc1d_	mtc1 $3, $0	swc1 $f0 0($2)	lw $5 0($2)	bne $5 $3 fail	.datas.s_:	.asciiz "Testing S.S\n"	.align 2s.sd_:	.word 0, 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 s.s_	syscall	li $3, 0x7f7f7f7f	la $2 s.sd_	mtc1 $3, $0	s.s $f0 0($2)	lw $5 0($2)	bne $5 $3 fail	.datasdc1_:	.asciiz "Testing SDC1\n"	.align 2sdc1d_:	.word 0, 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sdc1_	syscall	li $3, 0x7f7f7f7f	li $4, 0xf7f7f7f7	la $2 sdc1d_	mtc1 $3, $0	mtc1 $4, $1	sdc1 $f0 0($2)	lw $5 0($2)	bne $5 $3 fail	lw $5 4($2)	bne $5 $4 fail	.datas.d_:	.asciiz "Testing S.D\n"	.align 2s.dd_:	.word 0, 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 s.d_	syscall	li $3, 0x7f7f7f7f	li $4, 0xf7f7f7f7	la $2 s.dd_	mtc1 $3, $0	mtc1 $4, $1	s.d $f0 0($2)	lw $5 0($2)	bne $5 $3 fail	lw $5 4($2)	bne $5 $4 fail# SDC2 not tested	.datasll_:	.asciiz "Testing SLL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sll_	syscall	li $2 1	sll $3 $2 0	bne $3 1 fail	sll $3 $2 1	bne $3 2 fail	sll $3 $2 16	bne $3 0x10000 fail	sll $3 $2 31	bne $3 0x80000000 fail	.datasllv_:	.asciiz "Testing SLLV\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sllv_	syscall	li $2 1	li $4 0	sllv $3 $2 $4	bne $3 1 fail	li $4 1	sllv $3 $2 $4	bne $3 2 fail	li $4 16	sllv $3 $2 $4	bne $3 0x10000 fail	li $4 32	sllv $3 $2 $4	bne $3 1 fail	.dataslt_:	.asciiz "Testing SLT\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 slt_	syscall	slt $3 $0 $0	bne $3 0 fail	li $2 1	slt $3 $2 $0	bne $3 0 fail	slt $3 $0 $2	bne $3 1 fail	li $2 -1	slt $3 $2 $0	bne $3 1 fail	slt $3 $0 $2	bne $3 0 fail	li $2 -1	li $4 1	slt $3 $2 $4	bne $3 1 fail	.dataslti_:	.asciiz "Testing SLTI\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 slti_	syscall	slti $3 $0 0	bne $3 0 fail	li $2 1	slti $3 $2 0	bne $3 0 fail	slti $3 $0 1	bne $3 1 fail	li $2 -1	slti $3 $2 0	bne $3 1 fail	slti $3 $0 -1	bne $3 0 fail	li $2 -1	li $4 1	slti $3 $2 1	bne $3 1 fail	slti $3 $4 -1	bne $3 0 fail	.datasltiu_:	.asciiz "Testing SLTIU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sltiu_	syscall	sltiu $3 $0 0	bne $3 0 fail	li $2 1	sltiu $3 $2 0	bne $3 0 fail	sltiu $3 $0 1	bne $3 1 fail	li $2 -1	sltiu $3 $2 0	bne $3 0 fail	sltiu $3 $0 -1	bne $3 1 fail	li $2 -1	li $4 1	sltiu $3 $2 1	bne $3 0 fail	sltiu $3 $4 -1	bne $3 1 fail	.datasltu_:	.asciiz "Testing SLTU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sltu_	syscall	sltu $3 $0 $0	bne $3 0 fail	li $2 1	sltu $3 $2 $0	bne $3 0 fail	sltu $3 $0 $2	bne $3 1 fail	li $2 -1	sltu $3 $2 $0	bne $3 0 fail	sltu $3 $0 $2	bne $3 1 fail	li $2 -1	li $4 1	sltu $3 $2 $4	bne $3 0 fail	.datasra_:	.asciiz "Testing SRA\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sra_	syscall	li $2 1	sra $3 $2 0	bne $3 1 fail	sra $3 $2 1	bne $3 0 fail	li $2 0x1000	sra $3 $2 4	bne $3 0x100 fail	li $2 0x80000000	sra $3 $2 4	bne $3 0xf8000000 fail	.datasrav_:	.asciiz "Testing SRAV\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 srav_	syscall	li $2 1	li $4 0	srav $3 $2 $4	bne $3 1 fail	li $4 1	srav $3 $2 $4	bne $3 0 fail	li $2 0x1000	li $4 4	srav $3 $2 $4	bne $3 0x100 fail	li $2 0x80000000	li $4 4	srav $3 $2 $4	bne $3 0xf8000000 fail	.datasrl_:	.asciiz "Testing SRL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 srl_	syscall	li $2 1	srl $3 $2 0	bne $3 1 fail	srl $3 $2 1	bne $3 0 fail	li $2 0x1000	srl $3 $2 4	bne $3 0x100 fail	li $2 0x80000000	srl $3 $2 4	bne $3 0x08000000 fail	.datasrlv_:	.asciiz "Testing SRLV\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 srlv_	syscall	li $2 1	li $4 0	srlv $3 $2 $4	bne $3 1 fail	li $4 1	srlv $3 $2 $4	bne $3 0 fail	li $2 0x1000	li $4 4	srlv $3 $2 $4	bne $3 0x100 fail	li $2 0x80000000	li $4 4	srlv $3 $2 $4	bne $3 0x08000000 fail	.datassnop_:	.asciiz "Testing SSNOP\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 nop_	syscall	ssnop		# How do we test it??	.datasub_:	.asciiz "Testing SUB\n"sub1_:	.asciiz "Expect an overflow exceptions:\n  "	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sub_	syscall	li $2 1	li $3 -1	sub $4, $0, $0	bnez $4 fail	sub $4, $0, $2	bne $4 -1 fail	sub $4, $2, $0	bne $4, 1 fail	sub $4, $2, $3	bne $4, 2 fail	sub $4, $3, $2	bne $4, -2 fail	li $v0 4	# syscall 4 (print_str)	la $a0 sub1_	syscall	li $2 0x80000000	li $3 1	sub $4, $3, $2	.datasubu_:	.asciiz "Testing SUBU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 subu_	syscall	li $2 1	li $3 -1	subu $4, $0, $0	bnez $4 fail	subu $4, $0, $2	bne $4 -1 fail	subu $4, $2, $0	bne $4, 1 fail	subu $4, $2, $3	bne $4, 2 fail	subu $4, $3, $2	bne $4, -2 fail	li $2 0x80000000	li $3 1	subu $4, $3, $2	.datasw_:	.asciiz "Testing SW\n"sw2_:	.asciiz "Expect two address error exceptions:\n"	.align 2swd_:	.byte 0, 0, 0, 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sw_	syscall	li $3, 0x7f7f7f7f	la $2 swd_	sw $3 0($2)	lw $4 0($2)	bne $4 0x7f7f7f7f fail	li $2, 4	sw $3 swd_($2)	lw $4 swd_($2)	bne $4 0x7f7f7f7f fail	li $v0 4	# syscall 4 (print_str)	la $a0 sw2_	syscall	li $t5 0x7fffffff	sw $3 1000($t5)	sw $3 1001($t5)	lw $t0 far_away	sw $0 far_away	lw $t1 far_away	bne $t1 $0 fail# SWL is endian-specific# SWR is endian-specific	.datasync_:	.asciiz "Testing SYNC\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 nop_	syscall	sync	.datasyscall_:.asciiz "Testing SYSCALL\n"syscall1_:.asciiz "The next line should contain: -1, -1.000000, -2.000000\n"syscall2_:.asciiz ", "fp_sm1:	.float -1.0fp_dm2:	.double -2.0fp_c1:	.float 17.18fp_c2:	.float 1700.18fp_c3:	.double 17.18e10fp_c4:	.double 1700.18e10syscall5_:.asciiz "\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 syscall_	syscall	li $v0 4	# syscall 4 (print_str)	la $a0 syscall1_	syscall	li $v0 1	# syscall 1 (print_int)	li $a0 -1	syscall	li $v0 4	# syscall 4 (print_str)	la $a0 syscall2_	syscall	lwc1 $f12 fp_sm1# syscall 2 (print_float)	li $v0 2	syscall	li $v0 4	# syscall 4 (print_str)	la $a0 syscall2_	syscall	lwc1 $f12 fp_dm2# syscall 3 (print_double)	lwc1 $f13 fp_dm2+4	li $v0 3	syscall	li $v0 4	# syscall 4 (print_str)	la $a0 syscall5_	syscall	li $v0 5	# syscall 5 (read_int)	syscall	bne $v0 17 fail	li $v0 5	# syscall 5 (read_int)	syscall	bne $v0 1717 fail	li $v0 6	# syscall 6 (read_float)	syscall	lwc1 $f2 fp_c1	c.eq.s $f0, $f2	bc1f fail	li $v0 6	# syscall 6 (read_float)	syscall	lwc1 $f2 fp_c2	c.eq.s $f0, $f2	bc1f fail	li $v0 7	# syscall 7 (read_double)	syscall	lwc1 $f2 fp_c3	lwc1 $f3 fp_c3+4	c.eq.d $f0, $f2	bc1f fail	li $v0 7	# syscall 7 (read_double)	syscall	lwc1 $f2 fp_c4	lwc1 $f3 fp_c4+4	c.eq.d $f0, $f2	bc1f fail	.datateq_:	.asciiz "Testing TEQ\nExpect one exception message:\n  "	.text	li $v0 4	# syscall 4 (print_str)	la $a0 teq_	syscall	li $2 1	teq $0 $2	teq $0 $0	.datateqi_:	.asciiz "Testing TEQI\nExpect one exception message:\n  "	.text	li $v0 4	# syscall 4 (print_str)	la $a0 teqi_	syscall	teqi $0 4	teqi $0 0	.datatge_:	.asciiz "Testing TGE\nExpect two exception messages:\n  "	.text	li $v0 4	# syscall 4 (print_str)	la $a0 tge_	syscall	li $2 1	li $3 2	tge $2 $3	tge $0 $0	tge $3 $2	.data

⌨️ 快捷键说明

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