计组第3周互评作业1

	.data
bletter:.asciiz 
	"Alpha ","Bravo ","China ","Delta ","Echo ","Foxtrot ","Golf ","Hotel ","India ",
	"Juliet ","Kilo ","Lima ","Mary ","November ","Oscar ","Paper ","Quebec ","Research ",
	"Sierra ","Tango ","Uniform ","Victor ","Whisky ","X-ray ","Yankee ","Zulu "
bltr_offset: .word
	0,7,14,21,28,34,43,49,56,63,71,77,83,89,99,106,113,121,131,139,146,155,163,171,178,186
number: .asciiz 
	"zero ","First ","Second ","Third ","Fourth ","Fifth ","Sixth ","Seventh ","Eighth ","Ninth "
num_offset: .word
	0,6,13,21,28,36,43,50,59,67
sletter:.asciiz 
	"alpha ","bravo ","china ","delta ","echo ","foxtrot ","golf ","hotel ","india ",
	"juliet ","kilo ","lima ","mary ","november ","oscar ","paper ","quebec ","research ",
	"sierra ","tango ","uniform ","victor ","whisky ","x-ray ","yankee ","zulu "
sltr_offset:.word
	0,7,14,21,28,34,43,49,56,63,71,77,83,89,99,106,113,121,131,139,146,155,163,171,178,186
	
	.text
	.globl main
main:	li $v0, 12      #read character
	syscall         #load argument values
	sub $t0,$v0,63  #"?"
	beqz $t0,exit
	sub $t0,$v0,48  # < '0'
	bltz $t0,other
	
	sub $t1,$t0,10  #'0'<= val <= '9'
	bltz $t1,num
	
	sub $t1,$t0,17  #'9' < val < 'A'
	bltz $t1,other
	sub $t2,$t1,26  #'A' < val < 'Z'
	bltz $t2,bltr
	
	sub $t3,$t2,6   #'Z' < val < 'a'
	bltz $t3,other
	sub $t3,$t2,32  #'a' < val < 'z'
	bltz $t3,sltr
	
num:	add $t1,$t1,10
	sll $t1,$t1,2   # ,居然也算一位
	la $s0,num_offset
	add $s0,$s0,$t1
	lw $s1,($s0)
	la $a0,number
	add $a0,$a0,$s1
	li $v0,4        #print string
	syscall
	j main

bltr:	sll $t1,$t1,2
	la $s0,bltr_offset
	add $s0,$s0,$t1
	lw $s1,($s0)
	la $a0,bletter
	add $a0,$a0,$s1
	li $v0,4
	syscall
	j main

sltr:	add $t3,$t3,26
	sll $t3,$t3,2
	la $s0,sltr_offset
	add $s0,$s0,$t3
	lw $s1,($s0)
	la $a0,sletter
	add $a0,$a0,$s1
	li $v0,4
	syscall
	j main
	
other:	li $a0,42
	li $v0,11
	syscall
	j main
	
exit:	li $v0,10
	syscall

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值