can you check if the following code is correct for the following question and can you show me the screen shot of the out put. Thank you so much  ; include the irvine library INCLUDE Irvine32.inc ;Data section declare all the variables .data     source BYTE "This is the source string",0     target BYTE SIZEOF source DUP('#') ;Code section .code  main PROC         ;assign value o to esi                         mov esi,0         ;find the length of the source     ;subtract with 2 and assign to edi                      mov edi,LENGTHOF source - 2     ;find the number of bytes used source     ;assign to ecx              mov ecx,SIZEOF source     ;iterate a loop             L1:             ;get the value of source at index esi     ;and move into register al.                         mov al,source[esi]             ;move the value of al into target array     ;at index edi.                                     mov target[edi],al     ;increment the value of esi              inc esi             ;decrement the value of edi.                           dec edi                          loop L1     ;get the address value of the target     ;into edx.     mov edx, OFFSET target         ;print the string             call WriteString             exit main ENDP END main

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter15: Recursion
Section: Chapter Questions
Problem 6PE
icon
Related questions
Question

can you check if the following code is correct for the following question and can you show me the screen shot of the out put. Thank you so much 

; include the irvine library
INCLUDE Irvine32.inc

;Data section declare all the variables
.data
    source BYTE "This is the source string",0
    target BYTE SIZEOF source DUP('#')

;Code section
.code
 main PROC    
    ;assign value o to esi                    
    mov esi,0    
    ;find the length of the source
    ;subtract with 2 and assign to edi                
     mov edi,LENGTHOF source - 2
    ;find the number of bytes used source
    ;assign to ecx        
     mov ecx,SIZEOF source
    ;iterate a loop        
    L1:        
    ;get the value of source at index esi
    ;and move into register al.                    
    mov al,source[esi]        
    ;move the value of al into target array
    ;at index edi.                                
    mov target[edi],al
    ;increment the value of esi        
     inc esi        
    ;decrement the value of edi.                     
     dec edi                    
     loop L1
    ;get the address value of the target
    ;into edx.
    mov edx, OFFSET target    
    ;print the string        
    call WriteString            
exit
main ENDP
END main

Programming Exercise 2 :-
COPY A STRING IN REVERSE ORDER
Write a program with a loop and indirect addressing that copies a string from source to target, reversing the character order in the process. You MUST use the
exact data block, memory allocation and initialization, as shown in the followings for testing - for showing that your code would not over-write the original
data at the head(4 '$'s) middle(4 '%'s) and tail(4 '^'s):
BYTE 4 DUP('$')
source BYTE "This is the source string",0
BYTE 4 DUP ('%')
SIZEOF
SIZEOF source DUP ('#')
source
target BYTE
BYTE 4 DUP('^')
Hint: Should Not copy the null character, O, at the end of the source string to the front of the target string. And, finish writing the target string by writing the
null character, O, to the last byte - replacing the last '#' there.
In the output of the program, both the source and target(reversed) strings should be shown, by calling the Irvine peripheral procedure(s). Use the following test
code to display the Whole Data Bank:
mov edx, OFFSET source-4
call WriteString
mov edx, OFFSET target-4
call WriteString
mov edx, OFFSET target+SIZEOF target ; display the 4 "^"
call WriteString
; display the 4 "$" and source string
; display the 4 "%" and target string
IMPORTANT: for this exercise, NOT allowable to use any one of these directives: .IF, .ELSE, .ELSEIF, .WHILE, .REPEAT, etc
Transcribed Image Text:Programming Exercise 2 :- COPY A STRING IN REVERSE ORDER Write a program with a loop and indirect addressing that copies a string from source to target, reversing the character order in the process. You MUST use the exact data block, memory allocation and initialization, as shown in the followings for testing - for showing that your code would not over-write the original data at the head(4 '$'s) middle(4 '%'s) and tail(4 '^'s): BYTE 4 DUP('$') source BYTE "This is the source string",0 BYTE 4 DUP ('%') SIZEOF SIZEOF source DUP ('#') source target BYTE BYTE 4 DUP('^') Hint: Should Not copy the null character, O, at the end of the source string to the front of the target string. And, finish writing the target string by writing the null character, O, to the last byte - replacing the last '#' there. In the output of the program, both the source and target(reversed) strings should be shown, by calling the Irvine peripheral procedure(s). Use the following test code to display the Whole Data Bank: mov edx, OFFSET source-4 call WriteString mov edx, OFFSET target-4 call WriteString mov edx, OFFSET target+SIZEOF target ; display the 4 "^" call WriteString ; display the 4 "$" and source string ; display the 4 "%" and target string IMPORTANT: for this exercise, NOT allowable to use any one of these directives: .IF, .ELSE, .ELSEIF, .WHILE, .REPEAT, etc
Expert Solution
Step 1: Define assembly language

In the Assembly language, to copy a string in reverse order by using any of the assembly language, you will need to use a loop to iterate over the characters in the string and copy them into a new string in reverse order. You will also need to use a couple of registers to keep track of the current index in both the source and destination strings.

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
File Input and Output Operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning