Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I tried previous answers, but none of them worked, here is the question: Write a

ID: 3683642 • Letter: I

Question

I tried previous answers, but none of them worked, here is the question: Write an ARM assembly language which accepts an integer and returns a string which is the hexadecimal representation of the integer. The signature of the routine is: char * int2hex( int conv ) ; The input is a 32 bit integer. The output is a pointer to a character string of the format 0Xdddddddd. Do not suppress leading zeroes. The C program is:

#include #include extern char * int2hex( int convert ) ;

int main( int argc, char * argv[] ) {

int convert = 1194684 ;

char * result ; result = int2hex( convert ) ;

printf( "Integer to hex string: %s ", result ) ;

}

A string in C is terminated by a null byte (a byte of zero). You will need to use the shift instructions. You need to separate the integer into 4 bit sections each representing the individual hex digits. These need to be turned into printable characters. You need to ‘adjust’ the resulting values for the digits A-F. Use the strb instruction and an auto increment of 1 since you are storing bytes into memory. Use the malloc library routine to obtain space for the character string (11 bytes: 2 for 0x, 8 for the hex digits, and one for the null byte).

Explanation / Answer

#include <stdio.h>
#include <stdlib.h>

char arr[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char array[20];
void main() {
int convert = 1194684 ;
int j,k,i=0;
while(convert!=0)
{
j=convert%16;
array[i]=arr[j];
printf("%c",array[i]) ;
k=convert/16;
convert=k;
i=i+1;
  
}   
for(int m=i;m<=0;m--)
printf("%c",array[m]) ;

}