Write a MIPS assembly language program that prompts for a single digit hexadecimal number (i.e. a single character: 0-9, A-F) then prints out the decimal value of that digit. For example, if the user inputs B, the program prints out 11.
  #include 
  /* int hextodec(char* c)   *  first (and only) argument is set in register a0.  *  return value is set in register v0.  *  function calling convention is ignored.  */         .text         .globl hextodec         .align 2         .ent hextodec   hextodec:          lbu     t0,0(a0)        #load byte from argument          li      t1,0X30         li      t2,0x39          andi    t1,t1,0x000000ff #Cast to word for comparison.         andi    t2,t2,0x000000ff          bltu    t0,t1,ERROR     #error if lower than 0x30         bgt     t0,t2,dohex     #if greater than 0x39, test for A -F          addiu   t0,t0,-0x30     #OK, char between 48 and 55. Subtract 48.         b       return  dohex:  li      t1,0x41         li      t2,0x46          andi   t1,t1,0x000000ff #Cast to word for comparison.         andi   t2,t2,0x000000ff          /*is byte is between 65 and 70?*/          bltu    t0,t1,ERROR     #error if lower than 0x41         bgt     t0,t2,ERROR     #error if greater than 0x46  ishex:  addiu   t0,t0,-0x37     #subtract 55 from hex char (\'A\'- \'F\')         b       return  ERROR:  addiu   t0,zero,-1      #return -1.  return: move    v0,t0           #move return value to register v0          jr      ra         .end    hextodec