$30
CSC 3210 – Assignment #4
1. (9 points) Write an assembly program to implement the following.
sum = 0
i = 0
j = 12
var1 = 3
var2 = 3
var3 = 0
while ( (i < 20) and (j> -2)){
if (var1 > var3):
var1 =var1 - i
else if (var2 < var3):
var2 =var2 + j
else:
var3 = var3+ i
sum = var1 + var2+ var3
i = i+1
j = j-1
}
- Use short-circuit evaluation
- Assume that A, B, and X are 16-bit signed integers variables
- You are not allowed to make any logical reduction to the code. You need to implement it the way it
is provided.
o
o Submit the following:
§ Rename the asm file using your last name as Lastname1.asm and submit it.
§ Screenshot of the code
§ Then run the code until you reach INVOKE ExitProcess, 0
§ Then take a screenshot of the watch window showing Sum variable content.
2. (6 points) Write an assembly program to test if the MSB in the register al is set:
- If it is set, then divide the content of al by 8 using the appropriate shift instruction and exit.
- Else, if it is not set, then multiply the content of al by 4 using the appropriate shift instruction and exit.
- When checking al MSB, do not change al content.
- Assume that al is equal to the signed integer 88h.
- You need to come up with the appropriate mask to check the MSB.
- Run your program using the debugger to verify your answers.
o Submit the following:
§ Rename the asm file using your last name as Lastname2.asm and submit it.
§ Screenshot of the code
§ Then run the code until you reach INVOKE ExitProcess, 0
§ Then take a screenshot of the register window.
Note:
§ Comment header for .ASM files:
Student Name
Class: CSC3210
Assignment#: 4
Description: This program ………….
§ Follow the program standards as presented in your book. Pay more attention to code comments and
consistent indentation.
§ Create a new project for every question. Do not use one project with multiple .asm files.