0

I would like my hexadecimal output to be for example..

Decimal=45 Hexadecimal=0x2D

However,currently my hexadecimal is being displayed as 213.

How do I make it to display the desired hexadecimal format which is 0x2D?

Can someone plz assist my code?TQ

.data
    msg1: .asciiz "Please insert a decimal value "
    msg2: .asciiz "Please select base that you would like to convert to.(2 for Binary,8 for Octal and 16 for Hexadecimal) "
    #Above sting must be in one line
    msg3: .asciiz "\nYour Output Is : "
.text
.globl main

main:
    addi $s0,$zero,2
    addi $s1,$zero,16

getA:
    li $v0,4
    la $a0,msg1
    syscall
    li $v0,5
    syscall
    blt $v0,$zero,getA
    move $t0,$v0

getB:

    li $v0,4
    la $a0,msg2
    syscall
    li $v0,5
    syscall
    blt $v0,$s0,getB
    bgt $v0,$s1,getB
    add $t1,$zero,$v0
    li $v0,4
    la $a0,msg3
    syscall
    add $a0,$zero,$t0
    add $a1,$zero,$t1
    jal convert
    li $v0,10
    syscall

convert:
    #a0=A
    #a1=B
    addi $sp,$sp,-16
    sw $s3,12($sp) #counter,used to know
    #how many times we will pop from stack
    sw $s0,8($sp) #A
    sw $s1,4($sp) #B
    sw $ra,0($sp)
    add $s0,$zero,$a0
    add $s1,$zero,$a1
    beqz $s0,end
    div $t4,$s0,$s1 #t4=A/B
    rem $t3,$s0,$s1 #t3=A%B
    add $sp,$sp,-4
    sw $t3,0($sp) #save t3
    add $a0,$zero,$t4 #pass A/B
    add $a1,$zero,$s1 #pass B
    addi $s3,$s3,1
    jal convert        #call convert

end:
    lw $ra,0($sp)
    lw $s1,4($sp)
    lw $s0,8($sp)
    lw $s3,12($sp)
    beqz $s3,done
    lw $a0,16($sp)
    li $v0,1
    syscall

done: 
    addi $sp,$sp,20
    jr $ra   #return
NetVipeC
  • 4,402
  • 1
  • 17
  • 19
user3505324
  • 27
  • 2
  • 10
  • 1
    It looks like you're printing each digit using syscall 1, which will print an integer using decimal representation. What you should do instead is convert the value of each of your hexadecimal digits (which should be in the range 0..15) into a character in the range '0'..'9','A'..'F', and then print that character using syscall 11. – Michael Aug 06 '14 at 16:57
  • Thks for replying..I'm new to assembly programming and it abit hard to digest easily. But i did understand ur concept however im having some difficulties to implement it into my code such as from which part shall i focus on – user3505324 Aug 06 '14 at 17:15

0 Answers0