Background Discussion Assume that two values need to be swapped, such as is done in a number of commonly used Computer Science sorting algorithms. The typical high-level code is as follows: temp - num1; num1 - num2; num2 temp; This could be implemented on a line-by-line basis in assembly language using registers, but that would require two instructions for reach line of code as follows: mov eax,num1 mov temp, eax mov eax, num2 mov num1, eax mov eax, temp mov num2, eax Understandably, the above seems inefficient. Instead of using registers and mov instructions, another possibility is to use the stack. Not only is a runtime stack a way to save and restore values, it can also be useful in swapping two values. Another method of swapping two values is to use the exchange instruction. However, for this lab you will use the push and pop instructions to swap two values.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
100%

The class I'm taking is assembly programming

  I have attached the instructions. i have also attached my work. Can you please tell me how to fix it so I can successfully run and compile program in visual studio .  Thank you so much for your help! 

 
File
Projectweek4
cuit
View
aiyze
Slons
WindoW
Heip
Debug
x86
• Local Windows Debugger Auto
Seanlab4.asm* + x Solution Explorer
1
;start of program
2
.386
3
4
. model flat,stdcall
6
.stack 4096
7
8
.data
10
11
eax"05"
12
ebx"02"
13
14
.code
15
main PROC
16
17
push "a"; pushes a value on to the stack
18
рop eax
19
20
; swap the contents in the registers eax & ebx
21
22
push eax
23
24
mov eax, ebx; moves contents from register eax to ebx
25
main ENDP
26
; end of program
27
END main
Transcribed Image Text:File Projectweek4 cuit View aiyze Slons WindoW Heip Debug x86 • Local Windows Debugger Auto Seanlab4.asm* + x Solution Explorer 1 ;start of program 2 .386 3 4 . model flat,stdcall 6 .stack 4096 7 8 .data 10 11 eax"05" 12 ebx"02" 13 14 .code 15 main PROC 16 17 push "a"; pushes a value on to the stack 18 рop eax 19 20 ; swap the contents in the registers eax & ebx 21 22 push eax 23 24 mov eax, ebx; moves contents from register eax to ebx 25 main ENDP 26 ; end of program 27 END main
In this lab task you will use the PUSH and POP instructions to manage the transfer of data to
and from the runtime stack.
Write a program that uses only PUSH and POP instructions to exchange the values in the
EAX and EBX registers.
Testing Specification
Store values into the EAX and EBX registers. Compile and run your program to validate that
your program sequence of statements exchanges the original register values.
Documentation Requirements
Be sure to provide a commented out header that describes your program. Include in your
header description the compiler that you used. Provide inline comments to document your
solution.
Background Discussion
Assume that two values need to be swapped, such as is done in a number of commonly used
Computer Science sorting algorithms. The typical high-level code is as follows:
temp - num1:
num1 - num2;
num2 = temp:
This could be implemented on a line-by-line basis in assembly language using registers, but
that would require two instructions for reach line of code as follows:
mov eax, num1
mov temp, eax
mov eax, num2
mov num1, eax
mov eax, temp
mov num2, eax
Understandably, the above seems inefficient. Instead of using registers and mov
instructions, another possibility is to use the stack. Not only is a runtime stack a way to save
and restore values, it can also be useful in swapping two values.
Another method of swapping two values is to use the exchange instruction. However, for
this lab you will use the push and pop instructions to swap two values.
Transcribed Image Text:In this lab task you will use the PUSH and POP instructions to manage the transfer of data to and from the runtime stack. Write a program that uses only PUSH and POP instructions to exchange the values in the EAX and EBX registers. Testing Specification Store values into the EAX and EBX registers. Compile and run your program to validate that your program sequence of statements exchanges the original register values. Documentation Requirements Be sure to provide a commented out header that describes your program. Include in your header description the compiler that you used. Provide inline comments to document your solution. Background Discussion Assume that two values need to be swapped, such as is done in a number of commonly used Computer Science sorting algorithms. The typical high-level code is as follows: temp - num1: num1 - num2; num2 = temp: This could be implemented on a line-by-line basis in assembly language using registers, but that would require two instructions for reach line of code as follows: mov eax, num1 mov temp, eax mov eax, num2 mov num1, eax mov eax, temp mov num2, eax Understandably, the above seems inefficient. Instead of using registers and mov instructions, another possibility is to use the stack. Not only is a runtime stack a way to save and restore values, it can also be useful in swapping two values. Another method of swapping two values is to use the exchange instruction. However, for this lab you will use the push and pop instructions to swap two values.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Similar questions
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY