Give an answer Error if the instructions contain errors or have faults.
.data
var1 SBYTE -5, -2, -1, 1
var2 WORD 0A01h, 8h, 0Bh, 200h
var3 SWORD 3, -4
var4 DWORD 8, 7
- What will be the hexadecimal value of the destination operand after each of the following instructions executes in sequence?
(10%)
mov ax, var3-1 ; a. ax =
mov ah, var2-2 ; b. ah =
- What will be the value of the destination operand after each of the following instructions executes in sequence?
(10%)
movzx edx, var2-1 ; b. edx =
movsx edx, [var3+1] ; d. edx =
- Where indicated, write down the values of the
Carry
, Sign
, Zero
, Overflow
, Auxiliary Carry
, and Parity
flags after each instruction has executed: (20%)
mov ax, 00FFh
sub ah, 1 ; CF = SF = ZF = OF = PF =
neg ah ; CF = SF = ZF = OF = PF =
add al, 1 ; CF = SF = ZF = OF = PF =
- Write a sequence of two instructions that set both the
Overflow
and Sign
flags, but not Carry
flag. (16%)
.data
data1 LABEL BYTE
data2 WORD 10h, 5+2, 10
array DWORD 10 DUP (20 DUP(?)))
string BYTE 'a', 'b', 'c', 0
Indicate the value of EAX
after each instruction executes: (16%)
mov eax, TYPE data1 ; EAX =
mov eax, LENGTHOF data1 ; EAX =
mov eax, SIZEOF data1 ; EAX =
mov eax, TYPE data2 ; EAX =
mov eax, LENGTHOF data2 ; EAX =
mov eax, SIZEOF data2 ; EAX =
mov eax, TYPE array ; EAX =
mov eax, LENGTHOF array ; EAX =
mov eax, SIZEOF array ; EAX =
mov eax, TYPE string ; EAX =
mov eax, LENGTHOF string ; EAX =
mov eax, SIZEOF string ; EAX =
-
myBytes1 BYTE -2, 10, 20
myWords1 WORD 30h, 0Ah
myDoubles1 DWORD 1030h, 120h
myPointer1 DWORD myBytes1
Fill in the requested register values on the right side of the following instruction sequence: (16%)
mov esi, OFFSET myWords1
mov eax, DWORD PTR [esi+3] ; EAX =
mov ax, WORD PTR myBytes1 + 2 ; AX =
mov esi, myPointer1
mov eax, DWORD PTR [esi] ; EAX =
mov ax, WORD PTR [esi+4] ; AX =
- What will be the final value of
EAX
in this example? (12%)
mov eax, 0
mov ecx, 2
L1: mov ebx, ecx
mov ecx, 2
L2: jmp L4
L3: inc eax
loop L2
mov ecx, ebx
loop L1
L4: jmp L3