Assembly Language, CSCI264
Chapter 3, 4 – Exercises – Preparation for the Quiz 2
1. What flags will be set and what flags will be cleared after the execution of the following commands:
a. MOV AL, -123 b. MOV AL, 200 c. MOV AL, 064H
MOV CL, -4 MOV CL, 4 ADD AL, 100
CMP CL, AL DEC CL
CMP AL, CL
d. MOV BH, -56 e. MOV BL, 12 f. MOV BH, 5
SUB BH, 128 MOV AL, 250 MOV AL, 16
SUB AL, BL MUL BH
g. MOV AX, 15
MOV BL, 6
MUL BL
2. What will be the output of the following program if the input is:
a. 6 and 2 b. 7 and 3 c. 2 and 7
MOV EDX, 0
IN AL, [DX]
MOV BL, AL
IN AL, [DX]
MOV ECX, 0
RPT: INC ECX
SUB BL, AL
JNS RPT
DEC ECX
ADD BL, AL
MOV EDX, 1
MOV EAX, ECX
OUT [DX], EAX
MOV AL, BL
OUT [DX], AL
RET
3. What will be the output of the following program?
MOV AL, 56
MOV BL, 43
CMP BL, AL
JB BIS
MOV AL, 1
JMP END
BIS: MOV AL, 2
END: MOV EDX, 1
OUT [DX], AL
4. What will be the output of the following program?
MOV AL, 40
MOV BL, 40
CMP BL, AL
JNE BIS
MOV AL, 1
JMP END
BIS: MOV AL, 2
END: MOV EDX, 1
OUT [DX], AL
5.What will be the output of the following program?
MOV AL, 40
MOV BL, 40
CMP BL, AL
JNA BIS
MOV AL, 1
JMP END
BIS: MOV AL, 2
END: MOV EDX, 1
OUT [DX], AL
6. What will be the output of the following program, if the input is:
- 7 and 4 b. 5 and 3
MOV EDX, 0
IN AL, [DX]
MOV BL, AL
IN AL, [DX]
CMP BL, AL
JA SOS
MOV AL, 2
JMP FIN
SOS: MOV AL, 1
FIN: MOV EDX, 1
OUT [DX], AL
RET
Explain what this program is doing.
7. What will be the output of the following program, if the input is:
a. 5 b. 7 c. 2
MOV EDX, 0
IN AL, [DX]
MOV BL, AL
MOV AL, 1
MOV ECX, 3
DOM: MUL BL
DEC ECX
JNZ DOM
MOV EDX, 1
OUT [DX], AX
Explain what this program is doing?
8. What will be the output of the following program?
MOV AX, 15
MOV BL, 4
DIV BL
CMP AH, 2
MOV EDX, 1
JB FIN
OUT [DX], AL
JMP END
FIN: MOV AL, AH
OUT [DX], AL
END: RET
Explain what this program is doing?
9. What will be the output of the following program, if the input is: a. 5 3 b. 80 80
MOV EDX, 0
IN AL, [DX]
MOV BL, AL
IN AL, [DX]
CMP BL, AL
JE SOS
MUL AL
JMP FIN
SOS: MUL BL
FIN: MOV EDX, 1
OUT [DX], AX
RET
10. Write an Assembly Language program that will read three positive integers and will calculate the following values:
(num1*num2) / num3
and
(num1*num2 ) % num3
11. Write an Assembly language program that will read a positive integer and check if the input number is even or odd. If the input is even the program will output 0, otherwise the program will output 1.