【MIPS汇编编程练习Lab2】加减乘除 简单运算

整数加法

.data
	num1:.word 5
	num2:.word 10
.text
	lw $t0,num1($zero)
	lw $t1,num2($zero)
	
	add $t2,$t0,$t1  # t2 = t0 + t1
	
	li $v0 ,1
	add $a0,$zero,$t2
	syscall

在这里插入图片描述

另一版本
.data 
	a: .word 3
	b: .word 7
.text
	lw $t0,a 
	lw $t1,b
	
	add $t2,$t1,$t0
	
	li $v0,1
	move $a0,$t2
	syscall

在这里插入图片描述

整数减法

.data
	 num1 : .word 20
	 num2 : .word 3
.text
	lw $s0,num1	# s0 = 20
	lw $s1,num2	# s1 = 3
	sub $t0,$s0,$s1
	li $v0,1
	move $a0,$t0
	syscall

在这里插入图片描述

整数乘法

1.使用 mul指令

mul缺点:乘数只能是16位的,结果是32位。

.data 
	#立即数直接赋值
.text
	addi $s0,$zero,10
	addi $s1,$zero,7
	mul $t0 ,$s0,$s1
	
	li $v0 ,1
	move $a0,$t0
	syscall

在这里插入图片描述

2.使用 mult 指令

mult指令有两个参数,是两个乘数,而结果存在lo和hi寄存器。结果是2个32位寄存器拼接而成。

.data 
.text
	addi $t0,$zero,200
	addi $t1,$zero,1000
	mult $t0,$t1
	
	mflo $s0
	
	li $v0,1
	move $a0,$s0
	syscall

在这里插入图片描述

3.使用 sl 指令 (移位乘法)
.data

.text
	addi $s0,$zero,4
	sll $t0,$s0,2   # 4X4 =16
	
	li $v0,1
	move $a0,$t0
	syscall

在这里插入图片描述

整数除法

1、div $s0, $ t0, $t1, s0 = t0/t1
.data

.text
	addi $t0,$zero,12
	addi $t1,$zero,3
	
	div $s0,$t0,$t1
	
	li $v0,1
	move $a0,$s0
	syscall

在这里插入图片描述

2、div $ t0, $t1, {hi} = t0/t1,余数存hi,商存lo
.data

.text
	addi $t0,$zero,30
	addi $t1,$zero,3
	
	div $t0,$t1
	mflo $s0
	li $v0,1
	move $a0,$s0
	syscall

在这里插入图片描述

有余数情况

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

3、div $ t0, $t1,10, t0 = t1/10
.data

.text
	addi $t1,$zero,30
	
	div $t0,$t1,6
	
	li $v0,1
	move $a0,$t0
	syscall

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值