Question: 4. (25 points) Write a subroutine Design and write an MSP430 assembly language subroutine i2a_s(char*a, int myl) that converts a 16-bit integer, myl, into a

 4. (25 points) Write a subroutine Design and write an MSP430

4. (25 points) Write a subroutine Design and write an MSP430 assembly language subroutine i2a_s(char*a, int myl) that converts a 16-bit integer, myl, into a character array with elements corresponding to the hexadecimal representation of the integer. For example, an integer myl=13,486=0x34AE is converted into an array with 4 elements as follows: a[0]="E', a[1]='A', a[2]='4', a[3]='3'. The main program that calls the subroutine is shown below. Ascii('A')=0x41, ascii('O')=0x30. #__STACK_END, SP ; Initialize stack pointer StopWDT: #WDTPWWDTHOLD, &WDTCTL ; Stop watchdog timer RESET: mov.W mov.W ; Main code here sub.w #4, SP mov.W SP, R14 mov.W myr, R4 push.W R14 call #i2a_s add.w #2, SP jmp $ ; allocate space for ascii chars ; R14 points to the allocated area ; integer is passed through R4 ; push the starting address on the stack ; call subroutine ; free space on the stack lend: myI: .word Ox34AE ; Stack Pointer definition global STACK_END .sect .stack ; Interrupt Vectors .sect .short ".reset" RESET ; MSP430 RESET Vector iza_s: 4. (25 points) Write a subroutine Design and write an MSP430 assembly language subroutine i2a_s(char*a, int myl) that converts a 16-bit integer, myl, into a character array with elements corresponding to the hexadecimal representation of the integer. For example, an integer myl=13,486=0x34AE is converted into an array with 4 elements as follows: a[0]="E', a[1]='A', a[2]='4', a[3]='3'. The main program that calls the subroutine is shown below. Ascii('A')=0x41, ascii('O')=0x30. #__STACK_END, SP ; Initialize stack pointer StopWDT: #WDTPWWDTHOLD, &WDTCTL ; Stop watchdog timer RESET: mov.W mov.W ; Main code here sub.w #4, SP mov.W SP, R14 mov.W myr, R4 push.W R14 call #i2a_s add.w #2, SP jmp $ ; allocate space for ascii chars ; R14 points to the allocated area ; integer is passed through R4 ; push the starting address on the stack ; call subroutine ; free space on the stack lend: myI: .word Ox34AE ; Stack Pointer definition global STACK_END .sect .stack ; Interrupt Vectors .sect .short ".reset" RESET ; MSP430 RESET Vector iza_s

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!