Question

Create a complete Assembly Language program implementation for the following application with a) 32-bit and b)...

Create a complete Assembly Language program implementation for the following application with a) 32-bit and b) 64-bit version (If Possible)

App1: Geometric Shape Calculator Companion.

The program details (design, implementation, code, runs) should show evidence of technical proficiency with the following technological aspects:

1. a) Implementation using 32-bit programming. b) Re-implement using 64-bit programming.

2. Test plan; test cases implementing the test plan and screen shots displaying the executing the test cases.

Note: a test plan should include various Normal, Boundary and Error cases.

3. Modular organization using procedures, subroutines and functions (PROC, ENDP, CALL, RET).

4. Use of the system Stack to save and restore register values, pass arguments, receive results (PUSH, POP).

5. Use of conditional control structures (Jcond, LoopCond, Boolean operations)

6. Use of Arithmetic operations.

7. A clear and comprehensive Project Report, for example, following the outline provided in Appendix B.

App1: Geometric Shape Calculator Companion.
Support the interactive calculation of geometrical attributes, such as perimeter, circumference, area, volume, tests and verifications of defining (idiosyncratic) characteristic or signature, for various 2-dim and 3-dim shapes, such as:
Triangle: distinguish equilateral, right, isoceles triangles.
Quadrilateral: distinguish rectangle, square, parallelogram, rhombus
Circle
Ellipse
Sphere
Cylinder
Pyramid: distinguish with circular base, with rectangular base

Notes:

a. Only integer, Boolean and relational operations are available
b. Use an integer Symbolic value PI = 3, where needed.
c. Any answer requiring a square root should be expressed in terms of squares.
d. Any final result of a division should be expressed in terms of quotient and remainder.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

_allmul PROC NEAR
A EQU [esp + 4] ; stack address of a
B EQU [esp + 12] ; stack address of b
mov eax,HIWORD(A)
mov ecx,HIWORD(B)
or ecx,eax ;test for both hiwords zero.
mov ecx,LOWORD(B)
jnz short hard ;both are zero, just mult ALO and BLO
mov eax,LOWORD(A)
mul ecx
ret 16 ; callee restores the stack
hard:
push ebx
A2 EQU [esp + 8] ; stack address of a
B2 EQU [esp + 16] ; stack address of b
mul ecx ;eax has AHI, ecx has BLO, so AHI * BLO
mov ebx,eax ;save result
mov eax,LOWORD(A2)
mul dword ptr HIWORD(B2) ;ALO * BHI
add ebx,eax ;ebx = ((ALO * BHI) + (AHI * BLO))
mov eax,LOWORD(A2) ;ecx = BLO
mul ecx ;so edx:eax = ALO*BLO
add edx,ebx ;now edx has all the LO*HI stuff
pop ebx
ret 16 ; callee restores the stack

Add a comment
Know the answer?
Add Answer to:
Create a complete Assembly Language program implementation for the following application with a) 32-bit and b)...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Write a C++ program named, gradeProcessor.cpp, that will do the following tasks: -Print welcome message -Generate...

    Write a C++ program named, gradeProcessor.cpp, that will do the following tasks: -Print welcome message -Generate the number of test scores the user enters; have scores fall into a normal distribution for grades -Display all of the generated scores - no more than 10 per line -Calculate and display the average of all scores -Find and display the number of scores above the overall average (previous output) -Find and display the letter grade that corresponds to the average above (overall...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT