.text
.globl main
main:
ori $1,$0,0x01 # getal 1, altijd handig
ori $2,$0,0x20 # 32 bits in totaal
ori $8,$0,0x29
sll $8,$8,16
ori $8,$8,0x8D7D # Het gehele getal
ori $9,$0,0x01
sll $9,$9,31
j bitcounter # subroutine
sll $0,$0,0 # no-op
bitcounter:
and $10,$9,$8 # als left most bit 1 is, dan niet meer shiften
srl $10,$10,31 # controleren welk getal ge-and is
# als dat 1 is, heb je de most significant bit gevonden
# anders $8 naar links shiften
beq $10,$1,exit
sll $0,$0,0 # no-op
sll $8,$8,1 # eentje schuiven...
subu $2,$2,$1
j bitcounter # opnieuw de loop in
sll $0,$0,0
exit:
sll $0,$0,0 # afsluiten