Assignment #2 Solved

$24.99 $18.99

Objective: Learn memory organization/layout, data transfer concepts and instructions, direct memory access, memory allocation. Requirements: (5 points) Implement the following expression in assembly language: EDX = (val3 + val4) – (val2 – val1) – (5/3)*7 Assume that val1, val2, val3 and val4 are 16-bit integer variables You need to implement the expression the way it…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Description

5/5 – (2 votes)

Objective: Learn memory organization/layout, data transfer concepts and instructions, direct memory access, memory allocation.

Requirements:

  1. (5 points) Implement the following expression in assembly language:

EDX = (val3 + val4) – (val2 – val1) – (5/3)*7

      • Assume that val1, val2, val3 and val4 are 16-bit integer variables

      • You need to implement the expression the way it is provided, you cannot do any reduction on the expression while implementing it.

  • Initialize val1 with 120 (hexadecimal), val2 with 39 (hexadecimal), val3 with 20 (hexadecimal) and val4 with 27 (hexadecimal)

  • You are NOT allowed to update the values of any variables.

      • Use ONLY mov, add, sub, movzx, movsx, or neg instructions whenever needed.

      • Use the debugger to verify your answer.

    • Submit the following:

  • Save your source code using your last name, Lastname1.asm and upload the Lastname1.asm

  • Screenshot (showing the code and register window) of AX register contains the correct result.

  1. (5 points) Implement the following expression in assembly language:

ECX = –(val3 + val1) + (-val4 – val2) + 3

      • Assume that val1 is 8-bit variable, val2 is 16-bit variable, val3 is 32-bit variable, and val4 is 8-bit variable.

      • You need to implement the expression the way it is provided, you cannot do any reduction on the expression while implementing it.

      • Initialize val1 with 12 (decimal), val2 with 9 (decimal), val3 with 2 (decimal), val4 with 20 (decimal),

      • You are NOT allowed to update the values stored in val1, val2, val3 and val4

      • Use mov, add, sub, movsx, movzx, or neg instructions whenever needed.

      • Use the debugger to verify your answer.

    • Submit the following:

  • Save your source code using your last name, Lastname2.asm and upload the Lastname2.asm

  • Screenshot (showing the code and register window) of ECX register contains the correct result.

  1. (5 points) Write an assembly program to compute the following expressions

  • Create a DWORD array named ‘z’ of size 3 using DUP operator. Leave the array ‘z’ uninitialized. You can denote the items in the array as [, where is the first item, is the second item, is the third item

  • Update each array item using the following expressions.

  • Where x, y, r are 16-bit integer memory variables.

  • x = 10, y = 15, r = 4

  • Use mov, movzx, movsx, add, sub instructions only.

  • (hint: Do not alter the value of x, y and r during the computation. Transfer them to appropriate registers to do computation)

  • At the end, open memory window to see the variable z stored in memory (little endian format).

  • Use the debugger to verify your answer.

    • Submit the following:

      • Rename the asm file using your last name as Lastname3.asm

      • Screenshot of the code and memory window showing the content of the variable z (little endian format).

Note:

  • Submit your source code by only uploading .ASM file using iCollege in the respective assignment dropbox:

  • Lastname1.ASM, Lastname2.ASM, Lastname3.ASM

  • Put the following information as Comment header for .ASM files:

Student: Full name

Class: CSC3210

Assignment#: 2

Description: This program ………….

  • Follow the program standards as presented in your book. Pay more attention to code comments and

consistent indentation.

Assignment #2 Solved
$24.99 $18.99