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

📄 tt.s

📁 用汇编语言编程源代码
💻 S
📖 第 1 页 / 共 4 页
字号:
l105:	li $2 1	beqz $2 fail	.databge_:	.asciiz "Testing BGE\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bge_	syscall	bge $0 $0 l106	j faill106:	li $2 1	bge $0 $2 fail	bge $2 $0 l107	j faill107:	li $3 -1	bge $3 $2 fail	bge $2 $3 l108	j faill108:	bge $0 0 l109	j faill109:	li $2 1	bge $0 1 fail	bge $2 0 l110	j faill110:	li $3 -1	bge $3 1 fail	bge $2 -1 l111	j faill111:	.databgeu_:	.asciiz "Testing BGEU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bgeu_	syscall	bgeu $0 $0 l112	j faill112:	li $2 1	bgeu $0 $2 fail	bgeu $2 $0 l113	j faill113:	li $3 -1	bgeu $2 $3 fail	bgeu $3 $2 l114	j faill114:	bgeu $0 0 l115	j faill115:	li $2 1	bgeu $0 1 fail	bgeu $2 0 l116	j faill116:	li $3 -1	bgeu $2 -1 fail	bgeu $3 1 l117	j faill117:	.databgt_:	.asciiz "Testing BGT\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bgt_	syscall	bgt $0 $0 faill120:	li $2 1	bgt $0 $2 fail	bgt $2 $0 l121	j faill121:	li $3 -1	bgt $3 $2 fail	bgt $2 $3 l122	j faill122:	bgt $0 0 faill123:	li $2 1	bgt $0 1 fail	bgt $2 0 l124	j faill124:	li $3 -1	bgt $3 1 fail	bgt $2 -1 l125	j faill125:	.databgtu_:	.asciiz "Testing BGTU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bgtu_	syscall	bgtu $0 $0 faill132:	li $2 1	bgtu $0 $2 fail	bgtu $2 $0 l133	j faill133:	li $3 -1	bgtu $2 $3 fail	bgtu $3 $2 l134	j faill134:	bgtu $0 0 faill135:	li $2 1	bgtu $0 1 fail	bgtu $2 0 l136	j faill136:	li $3 -1	bgtu $2 -1 fail	bgtu $3 1 l137	j faill137:	.datable_:	.asciiz "Testing BLE\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ble_	syscall	ble $0 $0 l140	j faill140:	li $2 1	ble $2 $0 fail	ble $0 $2 l141	j faill141:	li $3 -1	ble $2 $3 fail	ble $3 $2 l142	j faill142:	ble $0 0 l143	j faill143:	li $2 1	ble $2 0 fail	ble $0 1 l144	j faill144:	li $3 -1	ble $2 -1 fail	ble $3 1 l145	j faill145:	.datableu_:	.asciiz "Testing BLEU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bleu_	syscall	bleu $0 $0 l152	j faill152:	li $2 1	bleu $2 $0 fail	bleu $0 $2 l153	j faill153:	li $3 -1	bleu $3 $2 fail	bleu $2 $3 l154	j faill154:	bleu $0 0 l155	j faill155:	li $2 1	bleu $2 0 fail	bleu $0 1 l156	j faill156:	li $3 -1	bleu $3 1 fail	bleu $2 -1 l157	j faill157:	.datablt_:	.asciiz "Testing BLT\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 blt_	syscall	blt $0 $0 faill160:	li $2 1	blt $2 $0 fail	blt $0 $2 l161	j faill161:	li $3 -1	blt $2 $3 fail	blt $3 $2 l162	j faill162:	blt $0 0 faill163:	li $2 1	blt $2 0 fail	blt $0 1 l164	j faill164:	li $3 -1	blt $2 -1 fail	blt $3 1 l165	j faill165:	.databltu_:	.asciiz "Testing BLTU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bltu_	syscall	bltu $0 $0 faill172:	li $2 1	bltu $2 $0 fail	bltu $0 $2 l173	j faill173:	li $3 -1	bltu $3 $2 fail	bltu $2 $3 l174	j faill174:	bltu $0 0 faill175:	li $2 1	bltu $2 0 fail	bltu $0 1 l176	j faill176:	li $3 -1	bltu $3 1 fail	bltu $2 -1 l177	j faill177:	.databnez_:	.asciiz "Testing BNEZ\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 bnez_	syscall	bnez $0 fail	li $2 1	bnez $2 l180	j faill180:# DIV and DIVU checked previously	.datal_s_:	.asciiz "Testing L_S\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 l_s_	syscall	lw $2 fp_s1p5	l.s $f0 fp_s1p5	mfc1 $4 $f0	bne $2 $4 fail	.datal_d_:	.asciiz "Testing L_D\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 l_d_	syscall	lw $2 fp_d1p5	lw $3 fp_d1p5+4	l.d $f0 fp_d1p5	mfc1 $4 $f0	mfc1 $5 $f1	bne $2 $4 fail	bne $3 $5 fail# LA better work or nothing above will work	.datali_:	.asciiz "Testing LI\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 li_	syscall	li $2 0xfffffff	bne $2 0xfffffff fail	li $2 0xffffffe	bne $2 0xffffffe fail	li $2 0	bnez $2 fail	li $2 0x7fffffff	bne $2 0x7fffffff fail	li $2 32767	bne $2 32767 fail	li $2 32768	bne $2 32768 fail	li $2 65535	bne $2 65535 fail	li $2 65536	bne $2 65536 fail	.datali.d_:	.asciiz "Testing LI.d\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 li.d_	syscall	li.d $f0 1.0	mfc1 $2, $f0	mfc1 $3, $f1	lw $4, fp_d1	lw $5, fp_d1+4	bne $2 $4 fail	bne $3 $5 fail	li.d $f0 -1.0	mfc1 $2, $f0	mfc1 $3, $f1	lw $4, fp_dm1	lw $5, fp_dm1+4	bne $2 $4 fail	bne $3 $5 fail	.datali.s_:	.asciiz "Testing LI.s\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 li.s_	syscall	li.s $f0 1.0	mfc1 $2, $f0	lw $3, fp_s1	bne $2 $3 fail	li.s $f0 -1.0	mfc1 $2, $f0	lw $3, fp_sm1	bne $2 $3 fail	.datamove_:	.asciiz "Testing MOVE\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 move_	syscall	li $2 0xfffffff	move $3 $2	bne $2 $3 fail# MUL and MULO and MULOU were tested previously	.dataneg_:	.asciiz "Testing NEG\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 neg_	syscall	li $2 -101	neg $3 $2	bne $3 101 fail	li $2 101	neg $2 $2	bne $2 -101 fail	neg $2 $0	bne $2 0 fail	.datanegu_:	.asciiz "Testing NEGU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 negu_	syscall	li $2 -101	negu $3 $2	bne $3 101 fail	li $2 101	negu $2 $2	bne $2 -101 fail	negu $2 $0	bne $2 0 fail	.datanop_:	.asciiz "Testing NOP\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 nop_	syscall	nop		# How do we test it??	.datanot_:	.asciiz "Testing NOT\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 not_	syscall	not $2 $0	bne $2 0xffffffff fail	li $2 0	not $3 $2	bne $3 0xffffffff fail	li $2 0xffffffff	not $3 $2	bne $3 0 fail	.datarem_:	.asciiz "Testing REM\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 rem_	syscall	li $2 5	li $3 2	li $4 -2	rem $5 $2 $3	bne $5 1 fail	rem $5 $2 $4	bne $5 1 fail	.dataremu_:	.asciiz "Testing REMU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 remu_	syscall	li $2 5	li $3 2	li $4 -2	remu $5 $2 $3	bne $5 1 fail	remu $5 $2 $4	bne $5 5 fail	.datarol_:	.asciiz "Testing ROL\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 rol_	syscall	li $2 5	li $3 5	rol $4 $2 $3	bne $4 0xa0 fail	li $2 5	li $3 -5	rol $4 $2 $3	bne $4 0x28000000 fail	li $2 5	rol $4 $2 5	bne $4 0xa0 fail	.dataror_:	.asciiz "Testing ROR\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ror_	syscall	li $2 5	li $3 5	ror $4 $2 $3	bne $4 0x28000000 fail	li $2 5	li $3 -5	ror $4 $2 $3	bne $4 0xa0 fail	li $2 5	ror $4 $2 5	bne $4 0x28000000 fail	.datas_s_:	.asciiz "Testing S_S\n"foo:	.word 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 s_s_	syscall	lw $2 fp_s1p5	mtc1 $2 $0	s.s $f0 foo	lw $4 foo	bne $2 $4 fail	.datas_d_:	.asciiz "Testing S_D\n"bar:	.word 0 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 s_d_	syscall	lw $2 fp_d1p5	lw $3 fp_d1p5+4	mtc1 $2 $0	mtc1 $3 $1	s.d $f0 bar	lw $4 bar	lw $5 bar+4	bne $2 $4 fail	bne $3 $5 fail	.dataseq_:	.asciiz "Testing SEQ\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 seq_	syscall	li $2 -1	li $3 1	seq $4 $0 $0	beqz $4 fail	seq $4 $2 $3	bnez $4 fail	seq $4 $0 0	beqz $4 fail	seq $4 $3 2	bnez $4 fail	.datasge_:	.asciiz "Testing SGE\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sge_	syscall	sge $4 $0 $0	beqz $4 fail	li $2 1	sge $4 $0 $2	bnez $4 fail	sge $4 $2 $0	beqz $4 fail	li $2 -1	sge $4 $0 $2	beqz $4 fail	sge $4 $2 $0	bnez $4 fail	li $2 1	sge $2 $0 $2	bnez $2 fail	li $2 1	sge $2 $2 $0	beqz $2 fail	li $2 -1	sge $2 $0 $2	beqz $2 fail	li $2 -1	sge $2 $2 $0	bnez $2 fail	sge $4 $0 0	beqz $4 fail	li $2 1	sge $4 $0 1	bnez $4 fail	sge $4 $2 0	beqz $4 fail	li $2 -1	sge $4 $0 -1	beqz $4 fail	sge $4 $2 0	bnez $4 fail	.datasgeu_:	.asciiz "Testing SGEU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sgeu_	syscall	sgeu $4 $0 $0	beqz $4 fail	li $2 1	sgeu $4 $0 $2	bnez $4 fail	sgeu $4 $2 $0	beqz $4 fail	li $2 -1	sgeu $4 $0 $2	bnez $4 fail	sgeu $4 $2 $0	beqz $4 fail	sgeu $4 $0 0	beqz $4 fail	li $2 1	sgeu $4 $0 1	bnez $4 fail	sgeu $4 $2 0	beqz $4 fail	li $2 -1	sgeu $4 $0 -1	bnez $4 fail	sgeu $4 $2 0	beqz $4 fail	.datasgt_:	.asciiz "Testing SGT\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sgt_	syscall	sgt $4 $0 $0	bnez $4 fail	li $2 1	sgt $4 $0 $2	bnez $4 fail	sgt $4 $2 $0	beqz $4 fail	li $2 -1	sgt $4 $0 $2	beqz $4 fail	sgt $4 $2 $0	bnez $4 fail	sgt $4 $0 0	bnez $4 fail	sgt $4 $0 1	bnez $4 fail	li $2 1	sgt $4 $2 0	beqz $4 fail	sgt $4 $0 -1	beqz $4 fail	li $2 -1	sgt $4 $2 0	bnez $4 fail	.datasgtu_:	.asciiz "Testing SGTU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sgtu_	syscall	sgtu $4 $0 $0	bnez $4 fail	li $2 1	sgtu $4 $0 $2	bnez $4 fail	sgtu $4 $2 $0	beqz $4 fail	li $2 -1	sgtu $4 $0 $2	bnez $4 fail	sgtu $4 $2 $0	beqz $4 fail	sgtu $4 $0 0	bnez $4 fail	sgtu $4 $0 1	bnez $4 fail	li $2 1	sgtu $4 $2 0	beqz $4 fail	sgtu $4 $0 -1	bnez $4 fail	li $2 -1	sgtu $4 $2 0	beqz $4 fail	.datasle_:	.asciiz "Testing SLE\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sle_	syscall	sle $4 $0 $0	beqz $4 fail	li $2 1	sle $4 $0 $2	beqz $4 fail	sle $4 $2 $0	bnez $4 fail	li $2 -1	sle $4 $0 $2	bnez $4 fail	sle $4 $2 $0	beqz $4 fail	li $2 1	sle $2 $0 $2	beqz $2 fail	li $2 1	sle $2 $2 $0	bnez $2 fail	li $2 -1	sle $2 $0 $2	bnez $2 fail	li $2 -1	sle $2 $2 $0	beqz $2 fail	sle $4 $0 0	beqz $4 fail	li $2 1	sle $4 $0 1	beqz $4 fail	sle $4 $2 0	bnez $4 fail	li $2 -1	sle $4 $0 -1	bnez $4 fail	sle $4 $2 0	beqz $4 fail	.datasleu_:	.asciiz "Testing SLEU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sleu_	syscall	sleu $4 $0 $0	beqz $4 fail	li $2 1	sleu $4 $0 $2	beqz $4 fail	sleu $4 $2 $0	bnez $4 fail	li $2 -1	sleu $4 $0 $2	beqz $4 fail	sleu $4 $2 $0	bnez $4 fail	sleu $4 $0 0	beqz $4 fail	li $2 1	sleu $4 $0 1	beqz $4 fail	sleu $4 $2 0	bnez $4 fail	li $2 -1	sleu $4 $0 -1	beqz $4 fail	sleu $4 $2 0	bnez $4 fail	.datasne_:	.asciiz "Testing SNE\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sne_	syscall	li $2 -1	li $3 1	sne $4 $0 $0	bnez $4 fail	sne $4 $2 $3	beqz $4 fail	sne $4 $0 0	bnez $4 fail	sne $4 $3 2	beqz $4 fail	.dataulh_:	.asciiz "Testing ULH\n"ulh1_:	.byte 1 2 3 4 5 6 7 8ulh2_:	.byte 0xff 0xff	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ulh_	syscall	la $2 ulh1_	ulh $3 0($2)	bne $3 0x0201 fail	ulh $3 1($2)	bne $3 0x0302 fail	ulh $3 2($2)	bne $3 0x0403 fail	ulh $3 3($2)	bne $3 0x0504 fail	ulh $3 4($2)	bne $3 0x0605 fail	la $2 ulh2_	ulh $3 0($2)	bne $3 -1 fail	.dataulhu_:	.asciiz "Testing ULHU\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ulhu_	syscall	li $v0 4	# syscall 4 (print_str)	la $a0 ulhu_	syscall	la $2 ulh1_	ulhu $3 0($2)	bne $3 0x0201 fail	ulhu $3 1($2)	bne $3 0x0302 fail	ulhu $3 2($2)	bne $3 0x0403 fail	ulhu $3 3($2)	bne $3 0x0504 fail	ulhu $3 4($2)	bne $3 0x0605 fail	la $2 ulh2_	ulhu $3 0($2)	bne $3 0xffff fail	.dataulw_:	.asciiz "Testing ULW\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ulw_	syscall	la $2 ulh1_	ulw $3 0($2)	bne $3 0x04030201 fail	ulw $3 1($2)	bne $3 0x05040302 fail	ulw $3 2($2)	bne $3 0x06050403 fail	ulw $3 3($2)	bne $3 0x07060504 fail	.dataush_:	.asciiz "Testing USH\n"ushd:	.word 0 0	.text	li $v0 4	# syscall 4 (print_str)	la $a0 ush_	syscall	la $2 ushd	sw $0 0($2)	sw $0 4($2)	li $3 0x01020304	ush $3 0($2)	lw $4 0($2)	bne $4 0x0304 fail	lw $4 4($2)	bne $4 0 fail	sw $0 0($2)	sw $0 4($2)	li $3 0x01020304	ush $3 1($2)	lw $4 0($2)	bne $4 0x030400 fail	lw $4 4($2)	bne $4 0 fail	sw $0 0($2)	sw $0 4($2)	li $3 0x01020304	ush $3 2($2)	lw $4 0($2)	bne $4 0x03040000 fail	lw $4 4($2)	bne $4 0 fail	sw $0 0($2)	sw $0 4($2)	li $3 0x01020304	ush $3 3($2)	lw $4 0($2)	bne $4 0x04000000 fail	lw $4 4($2)	bne $4 0x03 fail	.datausw_:	.asciiz "Testing USW\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 usw_	syscall	la $2 ushd	sw $0 0($2)	sw $0 4($2)	li $3 -1	usw $3 0($2)	lw $4 0($2)	bne $4 -1 fail	lw $4 4($2)	bne $4 0 fail	sw $0 0($2)	sw $0 4($2)	li $3 -1	usw $3 1($2)	lw $4 0($2)	bne $4 0xffffff00 fail	lw $4 4($2)	bne $4 0xff fail	sw $0 0($2)	sw $0 4($2)	li $3 -1	usw $3 2($2)	lw $4 0($2)	bne $4 0xffff0000 fail	lw $4 4($2)	bne $4 0xffff fail	sw $0 0($2)	sw $0 4($2)	li $3 -1	usw $3 3($2)	lw $4 0($2)	bne $4 0xff000000 fail	lw $4 4($2)	bne $4 0xffffff fail	.dataword_:	.asciiz "Testing .WORD\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 word_	syscall	.data	.align 0wordd:	.byte 0x1	.word 0x2345678	.word 0x9abcdef	.text	la $2 wordd	lwr $3 1($2)	lwl $3 4($2)	bne $3 0x2345678 fail	lwr $3 5($2)	lwl $3 8($2)	bne $3 0x9abcdef fail	.data	.byte 0x:	.word OK	# Forward reference in unaligned data!	.text	lw $8 x	beq $8 $0 failOK:# Done !!!	.datasm:	.asciiz "\nPassed all tests\n"	.text	li $v0 4	# syscall 4 (print_str)	la $a0 sm	syscall	lw $31 saved_ret_pc	jr $31		# Return from main	.datafm:	.asciiz "Failed test\n"	.textfail:	li $v0 4	# syscall 4 (print_str)	la $a0 fm	syscall	li $v0, 10	# syscall 10 (exit)	syscall	.text 0x408000far_away:	beq $0, $0, come_back

⌨️ 快捷键说明

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