Total Marks: 20
Due Date: 30 April, 2012
Question no. 1:
(a) Assemble the following instructions and show the changes in given Accumulator register and flags after each instruction execution. (Marks 5)
MOV AL, 8Bh ; CF = ?, SF = ?, PF = ?, ZF = ?
ADD AL, 22h ; CF = ?, SF = ?, PF = ?, ZF = ?
AND Al, 1000101b ; CF = ?, SF = ?, PF = ?, ZF = ?
OR Al, 9Ah ; CF = ?, SF = ?, PF = ?, ZF = ?
XOR AL, 10101011b ; CF = ?, SF = ?, PF = ?, ZF = ?
TEST AL, 2 ; CF = ?, SF = ?, PF = ?, ZF = ?
CMP AL, 58 ; CF = ?, SF = ?, PF =?, ZF = ?
ADC AL, 11110000b ; CF = ?, SF = ?, PF = ?, ZF = ?
SHR AL,2 ; CF = ?, SF = ?, PF = ?, ZF = ?
Question no. 1 (b): (Marks 5)
Write a subroutine that can calculate the sum of an array and also save the result into DX.
( Array’s length is 20)
Question no. 2
Write an assembly language code to calculate the factorial of “7” using a subroutine and also attach the final snapshot of your AFD window.