.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