MIPS64--14天从入门到放弃(3)

MIPS64--14天从入门到放弃(3)


这篇算是一个复习,将前两篇文章所学到的知识结合起来,从屏幕读取两个数将其运算之后再输出到屏幕上

求两个无符号数的和

.data
n1: .asciiz "Enter the 1st number:"
n2: .asciiz "Enter the 2nd number:"
nn: .asciiz "The sum ="
C: .word 0
CR: .word32 0x10000
DR: .word32 0x10008

.text
main:
lwu r1,CR(r0)
lwu r2,DR(r0)

daddi r8,r0,4
daddi r9,r0,8

daddi r6,r0,n1
daddi r7,r0,n2

sd r6,(r2)     ;屏幕输出提示
sd r8,(r1)

sd r9,(r1)     ;读取第一个数字
lbu r4,(r2)

sd r7,(r2)     ;屏幕输出提示
sd r8,(r1)

sd r9,(r1)     ;读取第二个数字
lbu r5,(r2)

daddu r3,r4,r5   ;加法运算
sd r3,C(r0)

daddi r11,r0,nn
sd r11,(r2)
sd r8,(r1)

daddi r10,r0,1    ;屏幕输出结果
sd r3,(r2)
sd r10,(r1)
halt 

实验课我写了实验报告,但是不知道为什么代码从word文档粘贴过来会损失许多格式,苦恼,如果出错了只能日后修改了。
基本都是之前两节知识的汇总应用。

求两个数的商

.data
n1: .asciiz "Enter the 1st number:"
n2: .asciiz "Enter the 2nd number:"
nn1: .asciiz "divided by"
nn2: .asciiz "="
nnw: .asciiz "divide by 0!"
C: .word 0
CR: .word32 0x10000
DR: .word32 0x10008
.text

main:
lwu r1,CR(r0)
lwu r2,DR(r0)
daddi r8,r0,4
daddi r9,r0,8
daddi r6,r0,n1
daddi r7,r0,n2

sd r6,(r2)     ;屏幕输出提示
sd r8,(r1)

sd r9,(r1)     ;读取第一个数字
ld r4,(r2)

sd r7,(r2)     ;屏幕输出提示
sd r8,(r1)

sd r9,(r1)     ;读取第二个数字
ld r5,(r2)

beqz r5,name ;若为0则跳了

ddivu r3,r4,r5

daddi r10,r0,1 ;屏幕输出数字1
sd r4,(r2)
sd r10,(r1)

daddi r11,r0,nn1
sd r11,(r2)
sd r8,(r1)

daddi r10,r0,1 ;屏幕输出数字2
sd r5,(r2)
sd r10,(r1)

daddi r11,r0,nn2 ; 屏幕输出等于号
sd r11,(r2)
sd r8,(r1)

daddi r10,r0,1 ;屏幕输出结果
sd r3,(r2)
sd r10,(r1)

halt

name:
daddi r12,r0,nnw
sd r12,(r2)
sd r8,(r1)
halt

beqz r5,name
将上一个代码进行些许的修改即可,不过要注意我们要对除数进行判零,如果为零则需跳过,所以这里我们使用了beqz来判断是否为零,然后再代码末尾写下直接输出结果并结束的程序。

ddivu r3,r4,r5
这里我们使用了ddivu来对两个数字进行无符号除法。
巧妙的利用halt来结束程序

结语

相信看到这里的都能感觉到博主的水平实在是很差,我也很头痛于各种rxx的选用,基本都是看哪个是空的用哪个,变量名规划的也是一塌糊涂(因为都是用上道题程序的代码改改就用了,最终成为超级缝合怪),不过到现在运行的结果倒还可接受,如果有错希望大家能够指正

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值