I try to learn assembly by writing small programs. This MIPS program is supposed to read an integer from the terminal and print it byte by byte in hexadecimal. I think it works but I didn't check everything.
.data
prompt: .asciiz "Enter an integer (positive or negative): "
s1: .asciiz "B1:
s2: .asciiz " B2:
s3: .asciiz " B3:
s4: .asciiz " B4:
MyNumber: .word 0
.text
main:
addi $v0, $zero, 4 #code 4 is to print string
la $a0, prompt #loads string into register
syscall
addi $v0, $zero, 5 #code 5 is to read an integer
syscall
sw $v0, MyNumber #stores value from $v0 to input
addi $v0, $zero, 4 #code 4 is to print string
la $a0, s1 #loads string into register
syscall
la $t1, MyNumber
lb $a0, 0($t1)
lb $t0, MyNumber
addi $v0, $zero, 34
syscall
addi $v0, $zero, 4 #code 4 is to print string
la $a0, s2 #loads string into register
syscall
lb $a0, 1($t1)
addi $v0, $zero, 34 #print in hexadecimal
syscall
addi $v0, $zero, 4 #code 4 is to print string
la $a0, s3 #loads string into register
syscall
lb $a0, 2($t1)
addi $v0, $zero, 34
syscall
addi $v0, $zero, 4 #code 4 is to print string
la $a0, s4 #loads string into register
syscall
lb $a0, 3($t1)
addi $v0, $zero, 34
syscall