[Coursera]计算机组成_Week3_Mips_Q1
2016-03-19 21:50
246 查看
#用补齐'\0'的方法保证每个单词的开头线性排列 #单词最长八位,所以补到九位;数字全部补到8位 .data uppercase: .ascii "Alpha\0\0\0\0" "Bravo\0\0\0\0" "China\0\0\0\0" "Delta\0\0\0\0" "Echo\0\0\0\0\0" "Foxtrot\0\0" "Golf\0\0\0\0\0" "Hotel\0\0\0\0" "India\0\0\0\0" "Juliet\0\0\0" "Kilo\0\0\0\0\0" "Lima\0\0\0\0\0" "Mary\0\0\0\0\0" "November\0" "Oscar\0\0\0\0" "Paper\0\0\0\0" "Quebec\0\0\0" "Research\0" "Sierra\0\0\0" "Tango\0\0\0\0" "Uniform\0\0" "Victor\0\0\0" "Whisky\0\0\0" "X-ray\0\0\0\0" "Yankee\0\0\0" "Zulu\0\0\0\0\0" lowercase: .ascii "alpha\0\0\0\0" "bravo\0\0\0\0" "china\0\0\0\0" "delta\0\0\0\0" "echo\0\0\0\0\0" "foxtrot\0\0" "golf\0\0\0\0\0" "hotel\0\0\0\0" "india\0\0\0\0" "juliet\0\0\0" "kilo\0\0\0\0\0" "lima\0\0\0\0\0" "mary\0\0\0\0\0" "november\0" "oscar\0\0\0\0" "paper\0\0\0\0" "quebec\0\0\0" "research\0" "sierra\0\0\0" "tango\0\0\0\0" "uniform\0\0" "victor\0\0\0" "whisky\0\0\0" "x-ray\0\0\0\0" "yankee\0\0\0" "zulu\0\0\0\0\0" numbers: .ascii "zero\0\0\0\0" "First\0\0\0" "Second\0\0" "Third\0\0\0" "Fourth\0\0" "Fifth\0\0\0" "Sixth\0\0\0" "Seventh\0" "Eighth\0\0" "Ninth\0\0\0" CR: .asciiz "\n" Space: .asciiz " " .text li $s1,'*' li $s2,'A' li $s3,'Z' li $s4,'a' li $s5,'z' li $s6,'0' li $s7,'9' loop: li $v0,12 syscall # 读取一个输入的字符 move $t7,$v0 # 把这个字符存到$a0里 la $a0, CR # 输出回车 li $v0, 4 syscall move $a0,$t7 # 把这个字符存到$a0里 beq $a0,'?',end # 若输入为'?'就终止程序 C1: bge $a0,$s2,N1 # 判断是否在'A'~'Z'之间 j C2 N1: ble $a0,$s3,R1 j C2 R1: sub $a0,$a0,'A' mul $a0,$a0,9 la $t0,uppercase add $a0,$a0,$t0 li $v0,4 syscall la $a0, CR # 输出回车 li $v0,4 syscall j loop C2: bge $a0,$s4,N2 #判断是否在'a'~'z'之间 j C3 N2: ble $a0,$s5,R2 j C3 R2: sub $a0,$a0,'a' mul $a0,$a0,9 la $t0,lowercase add $a0,$a0,$t0 li $v0,4 syscall la $a0, CR # 输出回车 li $v0,4 syscall j loop C3: bge $a0,$s6,N3 #判断是否在'0'~'9'之间 j NotFind N3: ble $a0,$s7,R3 j NotFind R3: sub $a0,$a0,'0' mul $a0,$a0,8 la $t0,numbers add $a0,$a0,$t0 li $v0,4 syscall la $a0, CR # 输出回车 li $v0,4 syscall j loop NotFind: move $a0,$s1 li $v0,11 #输出没有找到"*" syscall la $a0, CR # 输出回车 li $v0,4 syscall j loop end: #终止程序 li $v0,10 syscall
相关文章推荐
- iOS 9 使用HTTP的方法
- Android 获取当前网络状态
- android网络请求Volley框架的使用
- 7-7-无向网的最小生成树-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
- php捕获网络页面
- 动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)
- TCP连接状态图解析
- 计算机网络之传输层总结
- Linux 常用网络命令介绍
- wso2esb--https服务配置
- codeforces 653D. Delivery Bears 网络流
- 计算机网络学习笔记——计算机网络的概述(1)
- 基础网络概念(鸟哥的私房菜)
- 网络技术-android--20160317
- [网络流24题][COGS396]魔术球问题简化版(最小割)
- windows8/8.1/10系统更换用户头像或锁屏壁纸出现"设置用户头像出现错误,请再试一次"的解决办法
- [网络流24题][BZOJ1475]方格取数(最小割)
- JavaWeb开发之六:HttpServletRequest对象
- JavaWeb开发之五:HttpServletResponse对象
- JavaWeb开发之三:HTTP协议