📄 example.s
字号:
.data
psword: .word 123456
load: .asciiz "欢迎使用<<计算机组成及系统结构>>在线测试系统!
*************************************************************************
欢迎使用汕头列车时刻表在线查询系统
*************************************************************************
请输入考试密码:"
loginw: .asciiz "考试密码错误,请重新输入:"
loginq: .asciiz "你输入错误密码已达三次,现在退出系统..."
loginr: .asciiz "
考试密码正确,现在开始答题...
"
logout: .asciiz "
谢谢你使用本系统..再见!"
q1: .asciiz "
(1)从用户观点看,评价计算机系统性能的综合参数是__:
1. 指令系统 2. 吞吐率 3. 主存容量 4. 主频率
你的答案是:"
q2: .asciiz "
(2)存储单元是指__:
1. 存放一个二进制信息位的存储元
2. 存放一个机器字的所有存储元集合
3. 存放一个字节的所有存储元集合
4. 存放两个字节的所有存储元集合
你的答案是:"
q3: .asciiz "
(3)某计算机字长16位,它的存储容量64KB,若按字编址,那么它的
寻址范围是__:
1. 64K 2. 32K 3. 64KB 4. 32KB
你的答案是:"
q4: .asciiz "
(4)某SRAM芯片,其存储容量为64K*16位,该芯片的地址线和数据线
数目为__:
1. 64,16 2. 16,16 3. 16,64 4. 64,8
你的答案是:"
finish1: .asciiz "
所有题目已经回答完毕,你的分数是:"
finish2: .asciiz "分.
"
mark1: .asciiz "恭喜,你获得优秀!"
mark2: .asciiz "你的成绩是良好!"
mark3: .asciiz "你的成绩是及格!"
mark4: .asciiz "很抱歉,你未能通过测试!"
.text
.globl __start
__start:
#设置考试密码
li $t5,222222
li $t6,555555
li $t1,123456
li $t2,0 #计算密码输入错误次数
li $a3,0 #总分数置0
#打印"请输入考试密码"
la $a0,load
li $v0,4
syscall
j getps
#密码不正确,退出
end: la $a0,loginq
li $v0,4
syscall
li $v0,10
syscall
#输出错误信息
pww: bge $t2,2,end
la $a0,loginw
li $v0,4
syscall
add $t2,$t2,1 #若$T2大于3则退出
#取输入值存入$s0
getps: li $v0,5
syscall
add $s0,$zero,$v0
#若密码错误,输出错误信息
beq $s0,$t5,begin
ppp:
add $s0,$zero,$v0
bne $s0,$t6,pww
#开始答题
begin: la $a0,loginr
li $v0,4
syscall
la $a0,q1 #显示题目
li $v0,4
syscall
#取得回答
li $v0,5
syscall
add $s0,$zero,$v0
#若回答错误,转q2,否则分数加10
bne $s0,2,qs2 #答案为2
add $a3,10
qs2: la $a0,q2 #显示题目
li $v0,4
syscall
li $v0,5
syscall
add $s0,$zero,$v0
bne $s0,2,qs3 #答案为2
add $a3,20
qs3: la $a0,q3 #显示题目
li $v0,4
syscall
li $v0,5
syscall
add $s0,$zero,$v0
bne $s0,2,qs4 #答案为2
add $a3,30
qs4: la $a0,q4 #显示题目
li $v0,4
syscall
li $v0,5
syscall
add $s0,$zero,$v0
bne $s0,2,score #答案为2
add $a3,40
#显示分数
score: la $a0,finish1
li $v0,4
syscall
add $a0, $zero, $a3
li $v0, 1
syscall
la $a0,finish2
li $v0,4
syscall
bge $a3,90,excellence
bge $a3,80,good
bge $a3,60,pass
ble $a3,60,fail
excellence:
la $a0,mark1
li $v0,4
syscall
beqz $0,end2
good: la $a0,mark2
li $v0,4
syscall
beqz $0,end2
pass: la $a0,mark3
li $v0,4
syscall
beqz $0,end2
fail: la $a0,mark4
li $v0,4
syscall
beqz $0,end2
end2: la $a0,logout
li $v0,4
syscall
li $v0,10
syscall
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -