8086 Lab Exercises
8086 Lab Exercises
8086 Programs
Practical Appendix
Index
Sno
Program
Page No
10
11
12
13
14
15
10
16
11
17
12
18
13
19
14
20
15
21
16
22
17
23
18
24
19
25
20
26
21
27
22
28
23
29
24
30
25
31
26
32
27
33
28
34
29
35
30
36
31
37
32
38
33
39
Step 5: Observe the changes in the memory locations during program execution
Step 6: Observe the changes in the flag register during program execution
Step 7: Run till program halts and note the values in registers and memory locations
1.
BX
CX
DX
Input
AH
AL
BH
5D
AX
BL
CH
CL
DH
DL
3A
BX
CX
DX
Output
AH
AL
BH
BL
CH
CL
DH
DL
Registers
00
Output
ZF
Flags
3A
SF
AF
PF
CF
BX
CX
DX
Input
AH
AL
BH
5D
AX
BL
CH
CL
DH
DL
A1
BX
CX
DX
Output
AH
AL
BH
BL
CH
CL
DH
DL
Registers
FE
Output
Flags
ZF
A1
SF
AF
PF
CF
BX
CX
DX
Input
AH
AL
BH
5D
AX
BL
CH
CL
DH
DL
SI
A1
BX
CX
DX
ZF
Output
AH
AL
BH
DI
BL
CH
CL
DH
SF
AF
PF
CF
DL
Registers
1
FE
A1
Output
Memory
None
BX
CX
DX
Input
AH
AL
BH
FD
AX
BL
CH
CL
DH
DL
A3
BX
CX
DX
Output
AH
AL
BH
BL
CH
CL
DH
DL
Registers
5A
Output
Flags
ZF
3A
SF
AF
PF
CF
10
BX
CX
DX
Input
AH
AL
BH
ED
AX
BL
CH
CL
DH
DL
A1
BX
CX
DX
Output
AH
AL
BH
BL
CH
CL
DH
DL
Registers
4C
Output
ZF
A1
SF
AF
PF
CF
Flags
11
BX
CX
DX
Input
AH
AL
BH
E4
AX
BL
CH
CL
DH
DL
SI
A2
BX
CX
DX
ZF
Output
AH
AL
BH
DI
BL
CH
CL
DH
SF
AF
PF
CF
DL
Registers
1
42
A2
Output
Memory
None
12
BX
CX
DX
Input
AH
AL
BH
11
AX
BL
CH
CL
DH
DL
SI
03
BX
CX
DX
ZF
Output
AH
AL
BH
DI
BL
CH
CL
DH
SF
AF
PF
CF
DL
Registers
33
03
Output
Memory
None
13
Inputs are given using vectors V1, V2, V3 mentioned in the program.
AX
BX
CX
DX
Input
AH
AL
BH
22
AX
BL
CH
CL
DH
DL
SI
04
BX
CX
DX
ZF
Output
AH
AL
BH
DI
BL
CH
CL
DH
SF
AF
PF
CF
DL
Registers
88
04
Output
Memory
None
14
Inputs are given using vectors V1, V2, V3 mentioned in the program.
AX
BX
CX
DX
Input
AH
AL
BH
33
AX
BL
CH
CL
DH
DL
SI
03
BX
CX
DX
ZF
Output
AH
AL
BH
DI
BL
CH
CL
DH
SF
AF
PF
CF
DL
Registers
99
03
Output
Memory
None
15
BX
CX
DX
Input
AH
AL
BH
0E
AX
BL
CH
CL
DH
DL
SI
DI
03
BX
CX
DX
ZF
SF
AF
PF
CF
Output
AH
AL
02
04
BH
BL
CH
CL
DH
DL
Registers
03
AH remainder, AL Quotient
Output
Memory
None
16
Inputs are given using vectors V1, V2 data mentioned in the program.
AX
BX
CX
DX
Input
AH
AL
BH
19
AX
BL
CH
CL
DH
DL
SI
DI
04
BX
CX
DX
ZF
SF
AF
PF
CF
Output
AH
AL
01
06
BH
BL
CH
CL
DH
DL
Registers
04
AH remainder, AL Quotient
Output
Memory
None
17
Inputs are given using vectors V1, V2 data mentioned in the program.
AX
BX
CX
DX
Input
AH
AL
BH
19
AX
BL
CH
CL
DH
DL
SI
DI
07
BX
CX
DX
ZF
SF
AF
PF
CF
Output
AH
AL
04
03
BH
BL
CH
CL
DH
DL
Registers
07
AH remainder, AL Quotient
Output
Memory
None
18
BX
CX
DX
Input
AH
AL
BH
BL
E1
15
17
A3
AX
BX
CH
CX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
BH
BL
CH
CL
DH
00
17
SF
AF
PF
CF
DL
Registers
F9
DI
A3
Output
Memory
None
19
BX
CX
DX
Input
AH
AL
BH
BL
4A
5D
A2
31
AX
BX
CH
CX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
BH
BL
CH
CL
DH
SF
1
8E
A2
AF
PF
CF
DL
Registers
EC
DI
31
Output
Memory
None
20
BX
CX
DX
Input
AH
AL
BH
BL
EE
EE
11
11
AX
BX
CH
CX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
BH
BL
CH
CL
DH
SF
1
FF
11
AF
PF
CF
DL
Registers
FF
DI
11
Output
Memory
None
21
BX
CX
DX
Input
AH
AL
BH
BL
E1
5D
17
A3
AX
BX
CH
CX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
BH
BL
CH
DI
CL
DH
SF
AF
PF
CF
DL
Registers
1
C9
BA
17
A3
Output
Memory
None
22
BX
CX
DX
Input
AH
AL
BH
BL
4A
5D
A2
31
AX
BX
CH
CX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
BH
BL
CH
DI
CL
DH
SF
AF
PF
CF
DL
Registers
1
A8
2C
A2
31
Output
Memory
None
23
BX
CX
DX
Input
AH
AL
BH
BL
EE
EE
11
11
AX
BX
CH
CX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
BH
BL
CH
CL
DH
SF
1
DD
11
AF
PF
CF
DL
Registers
DD
DI
11
Output
Memory
None
24
BX
CX
DX
Input
AH
AL
BH
BL
FF
FF
FF
FF
AX
BX
CH
CL
CX
DH
DX
DL
SI
ZF
SF
DI
AF
PF
CF
Output
AH
AL
BH
BL
00
01
FF
FF
CH
CL
DH
DL
FF
FE
Registers
DX, AX carries the result
Output
Memory
None
25
BX
CX
DX
Input
AH
AL
BH
BL
EE
EE
EE
EE
AX
BX
CH
CX
CL
DH
DX
DL
SI
ZF
SF
DI
AF
PF
CF
Output
AH
AL
BH
BL
65
44
EE
EE
CH
CL
DH
DL
DE
FF
Registers
DX, AX carries the result
Output
Memory
None
26
BX
CX
DX
Input
AH
AL
BH
BL
EE
FF
EE
FF
AX
BX
CH
CX
CL
DH
DX
DL
SI
ZF
SF
DI
AF
PF
CF
Output
AH
AL
BH
BL
22
01
EE
FF
CH
CL
DH
DL
DF
1F
Registers
DX, AX carries the result
Output
Memory
None
27
BX
CX
DX
Input
AH
AL
BH
BL
FF
FF
00
09
AX
BX
CH
CX
CL
DH
DX
DL
SI
ZF
SF
DI
AF
PF
CF
Output
AH
AL
BH
BL
1C
71
00
09
CH
CL
DH
DL
00
06
Registers
DX, AX carries the result
Output
Memory
None
28
BX
CX
DX
Input
AH
AL
BH
BL
EE
EE
00
09
AX
BX
CH
CX
CL
DH
DX
DL
SI
ZF
SF
DI
AF
PF
CF
Output
AH
AL
BH
BL
1A
8C
00
09
CH
CL
DH
DL
00
02
Registers
DX, AX carries the result
Output
Memory
None
29
BX
CX
DX
Input
AH
AL
BH
BL
FE
EF
00
08
AX
BX
CH
CL
DH
DL
SI
DI
5000
CX
DX
ZF
SF
AF
PF
CF
Output
AH
AL
BH
BL
1F
DD
00
08
CH
CL
DH
DL
00
07
Registers
Output
Memory
DD
1F
30
BX
CX
DX
Input
AH
AL
BH
BL
CH
CL
00
00
00
00
00
05
AX
BX
CX
DH
DL
SI
6000
DX
ZF
Output
AH
AL
BH
BL
CH
CL
04
FB
00
00
00
00
DH
SF
Memory
AF
PF
CF
DL
Registers
Output
DI
FD
31
BX
AH
AL
11
84
AX
BH
BX
CX
BL
CH
CX
DX
CL
DH
DL
SI
DX
ZF
Output
AH
AL
FF
09
BH
BL
CH
DI
CL
DH
SF
AF
PF
CF
DL
Registers
Output
None
Memory
32
BX
CX
DX
AH
AL
BH
BL
CH
CL
00
00
40
00
00
05
AX
BX
CX
DH
DL
SI
5500
DX
ZF
Output
AH
AL
BH
BL
03
3D
40
05
CH
DI
CL
DH
SF
AF
PF
CF
DL
Registers
Input /
Output
Memory
Input Memory
Output Memory
91
69
FC
9D
03
33
BX
DX
AH
AL
BH
BL
CH
CL
00
00
11
11
00
0F
AX
Output
CX
BX
CX
DH
DL
SI
DI
DX
ZF
AH
AL
BH
BL
CH
CL
00
78
11
11
00
00
DH
SF
AF
Memory
CF
DL
Registers
Input /
Output
PF
Output Memory
Input Memory
none
78
34
AGAIN:
MOV [BX], AX
INC AX
INC BX
LOOP AGAIN
HLT
Inputs are given using to specified register 9 terms locations mentioned in the program.
AX
Input
BX
DX
AH
AL
BH
BL
CH
CL
00
00
11
11
00
09
AX
Output
CX
BX
CX
DH
DL
SI
DI
DX
ZF
AH
AL
BH
BL
CH
CL
00
09
11
1A
00
00
DH
SF
AF
PF
CF
DL
Registers
Input /
Output
Memory
Output Memory
Input Memory
none
00
01
02
03
04
05
06
07
08
35
ORG 100H
MOV AX, 0000H
MOV CX, 0009H
MOV BX, 1111H
AGAIN:
MOV [BX], AX
INC AX
INC AX
INC BX
LOOP AGAIN
HLT
Inputs are given using to specified register 9 terms locations mentioned in the program.
AX
Input
BX
DX
AH
AL
BH
BL
CH
CL
00
00
11
11
00
09
AX
Output
CX
BX
CX
DH
DL
SI
DI
DX
ZF
AH
AL
BH
BL
CH
CL
00
09
11
1A
00
00
DH
SF
AF
PF
CF
DL
Registers
Input /
Output
Memory
Output Memory
Input Memory
none
00
02
04
06
08
0A
0C
0E
10
36
AH
BX
AL
BH
CX
BL
00
AX
DX
CH
CL
00
09
BX
CX
DH
DL
SI
DI
2000
3000
DX
ZF SF AF PF CF
Output
AH
AL
BH
BL
CH
CL
00
00
DH
DL
Registers
1
09
Input /
Output
Memory
Input Memory
Output Memory
02
AE
06
08
AA
BC
9E
9D
2FFF
3000 3001
BC
37
AH
BX
AL
BH
CX
BL
00
AX
DX
CH
CL
00
09
BX
CX
DH
DL
SI
DI
2000
3000
DX
ZF SF AF PF CF
Output
AH
AL
BH
BL
CH
CL
00
00
DH
DL
Registers
1
09
Input /
Output
Memory
Input Memory
Output Memory
02
AE
06
08
AA
BC
9E
9D
2FFF
3000 3001
02
38
33. Block Move (Moving a block of data from one location to another)
ORG 100H
MOV CX, 00005H
MOV SI, 02000H
MOV DI, 03000H
LOOP:
MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ LOOP
HLT
Inputs are given using to SI register 5 VALUES mentioned in the memory.
AX
Input
AH
AX
Output
BX
AL
BH
CX
BL
BX
DX
CH
CL
00
05
CX
ZF
AH
AL
BH
BL
SI
DI
2000
3000
CH
CL
00
00
DH
SF
AF
PF
CF
DL
1
EE
Memory
DL
DX
Registers
Input /
Output
DH
Input Memory
Output Memory
AA
BB
CC
DD
EE
AA
BB
CC
DD
EE
39