Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a complete Assembly Language program implementation for the following app

ID: 3842441 • Letter: C

Question

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.

Explanation / Answer

_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

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote