111

发布时间 2024-01-03 15:18:53作者: 雲裏霧裏沙

.data
hello:.asciiz "hi"
.text
get_bit:
#从右到左依次为第0位,第一位,....
subi $sp,$sp,4
sw $ra,0($sp)
addi $t0,$a0,0
addi $t1,$a1,0
li $t3,31
sub $t4,$t3,$t1
sllv $t2,$t0,$t4
srl $t4,$t2,31
addi $v0 $t4,0
lw $ra,0($sp)
addi $sp,$sp,4
jr $ra

set_bit:
#从右到左依次为第0位,第一位,....
subi $sp,$sp,4
sw $ra,0($sp)
addi $t0,$a0,0
addi $t1,$a1,0
li $t3,1
sllv $t2,$t3,$t1
or $v0,$t0,$t2

lw $ra,0($sp)
addi $sp,$sp,4
jr $ra

reset_bit:
#从右到左依次为第0位,第一位,....
subi $sp,$sp,4
sw $ra,0($sp)
addi $t0,$a0,0
addi $t1,$a1,0
li $t3,1
sllv $t2,$t3,$t1
not $t2,$t2
and $v0,$t0,$t2

lw $ra,0($sp)
addi $sp,$sp,4
jr $ra

.globl main
main:
li $a0,15
li $a1,31
jal get_bit

li $a0,15
li $a1,4
jal set_bit

li $a0,15
li $a1,1
jal reset_bit