Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Need to write a program in assembly language Objectives: 1. Declare and initialize null-terminated string 2. Apply indirect address 3. Write loop 4. Apply Irvine.inc

Need to write a program in assembly language image text in transcribed

Objectives: 1. Declare and initialize null-terminated string 2. Apply indirect address 3. Write loop 4. Apply Irvine.inc library functions to display a string Problem Description: Write a program with a loop and indirect address that copies a string from source to target. Revising the character order in the process. Use the following variables: source BYTE "This is the string that will be reversed", o target BYTE SIZEOF source DUP('#') You may refer to the Programming Exercise #7 on Page 138 of the textbook. Hint: You may study the book example "Copying a String" on page 127 first. However, this project has three different things from the book's example. 1. You need two index register. One for the index of source, another for index of target. You can use Register ESI for index of source and Register EDI for index of target 2. You will not copy the last character in source, which is null character (the terminator of source string). So the initial value of ESI shall be set as OFFSET target - 2 since the target string is stored right after the source string in memory 3. After the loop, you need add null character to the end of the target string How to View Output: After Chapter Five, you will be able to write statement to print out the output on screen. So far, you need to see output in memory. After your project can be assembled and run successfully, you may do following things: 1. Click on the grey bar located on the left of side of the "invoke ExitProcess, 0" statement to set up the Break Point 51 invoke ExitProcess, 0 2. Go to Debug and click on Start Debugging 3. Go to Debug -> Windows -> Memory -> Memory 1 (or: ALT + 6). You will see a window on the right side of your code. Type 0x004068D0 in Address field and you will see the following window (next page). If you don't see the source string, then your computer may store .data section in difference memory location. You may need to search to find it. If you see the source string but the string after it is not a reverse of source string, then your program has logic errors. 4. After check the result, press F10 to continue and finish the program execution. Objectives: 1. Declare and initialize null-terminated string 2. Apply indirect address 3. Write loop 4. Apply Irvine.inc library functions to display a string Problem Description: Write a program with a loop and indirect address that copies a string from source to target. Revising the character order in the process. Use the following variables: source BYTE "This is the string that will be reversed", o target BYTE SIZEOF source DUP('#') You may refer to the Programming Exercise #7 on Page 138 of the textbook. Hint: You may study the book example "Copying a String" on page 127 first. However, this project has three different things from the book's example. 1. You need two index register. One for the index of source, another for index of target. You can use Register ESI for index of source and Register EDI for index of target 2. You will not copy the last character in source, which is null character (the terminator of source string). So the initial value of ESI shall be set as OFFSET target - 2 since the target string is stored right after the source string in memory 3. After the loop, you need add null character to the end of the target string How to View Output: After Chapter Five, you will be able to write statement to print out the output on screen. So far, you need to see output in memory. After your project can be assembled and run successfully, you may do following things: 1. Click on the grey bar located on the left of side of the "invoke ExitProcess, 0" statement to set up the Break Point 51 invoke ExitProcess, 0 2. Go to Debug and click on Start Debugging 3. Go to Debug -> Windows -> Memory -> Memory 1 (or: ALT + 6). You will see a window on the right side of your code. Type 0x004068D0 in Address field and you will see the following window (next page). If you don't see the source string, then your computer may store .data section in difference memory location. You may need to search to find it. If you see the source string but the string after it is not a reverse of source string, then your program has logic errors. 4. After check the result, press F10 to continue and finish the program execution

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Principles Programming And Performance

Authors: Patrick O'Neil

1st Edition

1558603921, 978-1558603929

Students also viewed these Databases questions

Question

intangible assets

Answered: 1 week ago

Question

et es 4t4 he 10261;217 mo 44x9 45 x 164

Answered: 1 week ago