Question: The following is an assembly program. CODE SEGMENT START: MOV AX, DATA MOV DS, AX MOV CX, 3 MOV SI, OFFSET ARRAY ITER: MOV AX,
The following is an assembly program.
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV CX, 3
MOV SI, OFFSET ARRAY
ITER: MOV AX, [SI]
XCHG AH, AL
ROL AX, 1
INC SI
AND [SI], AX
LOOP ITER
ENDS
DATA SEGMENT
DB 6 DUP (0)
ARRAY DB 0B9H,8BH,01H,70H,02H,06H,34H,0CH
ENDS
END START
Enter the above program in emu8086, obtain the list file and single step the program, to complete tasks and answer questions below.
- Fill in the blanks in the following table after each instruction is executed for the first run of the ITER loop:
| Run 1 | AX | CX | SI | 8-bit data in DS:SI | 8-bit data in DS:SI+1 |
| MOV AX, [SI] |
|
|
|
|
|
| XCHG AH, AL |
|
|
|
|
|
| ROL AX, 1 |
|
|
|
|
|
| INC SI |
|
|
|
|
|
| AND [SI], AX |
|
|
|
|
|
| LOOP ITER |
|
|
|
|
|
The data of the 8 memory locations starting from ARRAY at the end of Run 1:
|
|
|
|
|
|
|
|
|
What is the function of ROL? Use the numbers in ROL AX,1 to explain.
What is the function of AND?
- Fill in the blanks in the following table after each instruction is executed for the second run of the ITER loop:
| Run 2 | AX | CX | SI | 8-bit data in DS:SI | 8-bit data in DS:SI+1 |
| MOV AX, [SI] |
|
|
|
|
|
| XCHG AH, AL |
|
|
|
|
|
| ROL AX, 1 |
|
|
|
|
|
| INC SI |
|
|
|
|
|
| AND [SI], AX |
|
|
|
|
|
| LOOP ITER |
|
|
|
|
|
The data of the 8 memory locations starting from ARRAY at the end of Run 2:
|
|
|
|
|
|
|
|
|
What are the final values of them after the execution of the program? Explanation and screenshot are required.
- If the data transferred into CX is 6, how many times will the LOOP instruction execute?
Write an equivalent instruction to MOV AX,DATA using array.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
