汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句

关于伪指令与mips指令的区别:

MIPS标准定义cpu指令集的同时也定义了伪指令,伪指令可以使汇编语言可读性更好,更容易维护。每条伪指令都有对应的mips指令。汇编器负责将伪指令翻译成正式的mips指令。

伪指令的功能定义,可以在MARS->Help->Extended (pseudo) Instructions中查看

第一个程序: li add 指令的使用

功能:两数相加
在这里插入图片描述
运行效果
在这里插入图片描述

第二个程序:li la syscall指令的使用 程序的分段

功能:输出Hello World
在这里插入图片描述
运行结果:在run I/O中输出了Hello World
在这里插入图片描述

第三个程序 bgt分支语句

功能:
用户输入两个数字a,b
如果a>b,则输出yes
否自输出no

C语言代码
在这里插入图片描述
对应的汇编代码
在这里插入图片描述
以下可复制

#C program code
#	scanf("%d",&t0);
#	scanf("%d",&t1);
#	if(to>t1)printf("YES");
#	else printf("NO");

#assemble code
.data
	msg_yes: .ascii"YES\0"
	msg_no: .ascii"NO\0"
.text
	#input t0
	li $v0,5	#syscall read a num from I/O when v0=5
	syscall		#user input saved to v0
	move $t0,$v0	#save v0 num to t0
	
	#input t1
	li $v0,5	#syscall read a num from I/O when v0=5
	syscall		#user input saved to v0
	move $t1,$v0	#save v0 num to t1
	
	#branch greater than
	bgt $t0,$t1,sub1	#if t0>t1, goto sub1, else goto next line
	#else
	la $a0,msg_no		#print NO
	li $v0,4
	syscall
	li $v0,10		#exit program
	syscall
	#if
sub1:	la $a0,msg_yes		#print YES
	li $v0,4
	syscall

运行结果

输入

4
5

输出

NO

输入

100
50

输出

YES

在这里插入图片描述
在这里插入图片描述

第四个程序 ble循环语句

功能:计算1+2+3+...+100

C语言代码
在这里插入图片描述
汇编语言代码
在这里插入图片描述
以下可复制

	li $t0,1		#t0:looptimes(1~100)
	li $t1,0		#t1:sum
loop:	add $t1,$t1,$t0		#t1=t1+t0
	add $t0,$t0,1		#t0=t0+1
	
	#branch less equal
	ble $t0,100,loop	#if t0<=100, goto loop
	
	#output
	move $a0,$t1		#when v0=1, syscall print a0
	li $v0,1
	syscall

运行结果

输出为:5050
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值