Sunteți pe pagina 1din 50

Advanced Microprocessor Lab

For
V Semester B.E. (Electronics & Communication Engineering)

Name
Reg. No
Batch

Department of Electronics & Communication Engineering

Sri Siddhartha Institute of Technology


Maralur, Tumkur-5

SSIT

QUESTION BANK
1. (a) Write a program to move an element at Loc1 to Loc2 using base-plus
index addressing mode
(b) Write a program to move an element at Loc1 to Loc2 using register relative
addressing mode
2. Block move
a. Without overlap
b. With overlap
3. Write a program to interchange blocks of data.
4. Addition.
a. Write a program to add two 32-bit numbers
b. Write a program to add two 16-bit BCD numbers
c. Write a program to show ASCII addition function
5. Subtraction.
a. Write a program to subtract two 32-bit numbers
b. Write a program to subtract two BCD numbers stored in two memory
locations
c. Write a program to show ASCII subtraction function
6. Multiplication.
a. Write a program to multiply two 16-bit numbers
b. Write a program to multiply two 32-bit numbers
c. Write a program to illustrate ASCII multiplication function
d. Write a program to multiply two signed 8-bit numbers
e. Write a program to multiply two signed 16-bit numbers
7. Division.
a. Write a program to divide a word by a byte
b. Write a program to illustrate the division of a double word by a word
c. Write a program to illustrate AAD instruction
d. Write a program to illustrate signed division of a word by a byte
e. Write a program to illustrate signed division of a double word by a word
8. Write a program to find the square of a number.
9. Write a program to find the cube of a number.
10. Write a program to find the factorial of a number.
11. Write a program find LCM of two numbers.
12. Write a program to find HCF of two numbers.
13. Write a program to check whether the given data is positive or negative.
14. Write a program to check whether the given data is odd or even.
15. Write a program to count number of 1s and 0s in a given data byte.
16. Write a program to check whether a given data byte is Palindrome or not.
17. Write a program to check whether a given array is Palindrome or not.
18. Write a program to add series of 8-bit numbers considering possible overflow.

Advanced Microprocessor Lab Manual

-1-

SSIT

19. Write a program to add series of 16-bit numbers considering possible


overflow.
20. Write a program to find the smallest of N numbers.
21. Write a program to sort given N numbers in ascending order.
22. Write a program to transfer given source string to destination string using
string instructions.
23. Write a program to perform the following operations.
a. Reverse a string
b. Searching a word from a string
24. Write a program to check if the given data byte is a 2 out of 5 code.
25. WAP to create a file open a file read / write to a file and close a file
26. An ALP to display the string on console using DOS interrupts.
27. An ALP to read the system time.
28. Write a program to convert a given binary number into its BCD equivalent.
29. Write a program to convert a given BCD number into its binary equivalent.
30. Write a program to control the speed of a stepper motor.
31. Develop and execute a program to drive a stepper motor interface to rotate the
motor in anti-clock wise direction in N-steps.
32. Write a program for constant display of a string of characters.
33. Write a program to implement a rolling display of characters using display
interface.
34. Develop and execute a program to scan for key closer in a key board
interface. The row number and the column number of the key pressed are to
be stored in memory locations.
35. Program to check for not gate operation using logic controller code segment

Advanced Microprocessor Lab Manual

-2-

SSIT

1.

a) Write a program to move an element at Loc1 to Loc2 using base-plus index addressing mode.

SOLUTION:

MODEL SMALL
DATA
Array DB
5
DB 78H
DB 20
CODE
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
INT
END

DUP (?)
DUP (?)
AX, @Data
DS, AX
BX, offset array
SI, 05H
CL, [BX+SI]
SI, 11H
[BX+SI], CL
AH, 4CH
21H

RESULT:

1.

b) Write a program to move an element at Loc1 to Loc2 using reg. relative index addressing mode.

SOLUTION:

MODEL SMALL
DATA
Array DB
5
DB 78H
DB 20
CODE

Advanced Microprocessor Lab Manual

DUP (?)
DUP (?)

-3-

SSIT

MOV
MOV
MOV
MOV
MOV
MOV
INT
END

AX, @Data
DS, AX
BX, offset array
CL, [BX+05H]
[BX+11H], CL
AH, 4CH
21H

RESULT:

2.

a) Write a program to move block of data from one memory location to another memory location without
overlapping.

SOLUTION:

MODEL SMALL
DATA
Array1 DW
1111H, 1222H, 3333H, 4444H, 5555H
Array2 DW
5
DUP (?)
Count DW
0005H
CODE
AX, @Data
MOV
DS, AX
MOV
SI, Array1
LEA
DI, Array2
LEA
NEXT: MOV
CX, Count
AX, [SI]
MOV
[DI], AX
MOV
SI
INC
SI
INC
DI
INC
DI
INC
NEXT
LOOP
AH, 4CH
MOV
21H
INT
END

RESULT:
2.

b) Write a program to move block of data from one mem. Location to another mem. Location with over lapping

SOLUTION:

Advanced Microprocessor Lab Manual

-4-

SSIT

MODEL SMALL
DATA
Data1 DB
10H, 20H, 30H, 40H, 50H
Count DW
0005H
CODE

REP:

MOV
MOV
MOV
LEA
ADD
MOV
DEC
MOV
ADD
STD
MOV
MOV
INT
END

AX, @Data
ES, AX
DS, AX
SI, Data1
SI, Count
CX, Count
SI
DI, SI
DI, 2H
SB
AH, 4CH
21H

RESULT:

3.

Write a program to interchange blocks of data.

SOLUTION:

MODEL SMALL
DATA
Array1 DW
1010H, 2020H, 3030H, 4040H, 5050H
Array2 DW
1111H, 2222H, 3333H, 4444H, 5555H
Count
DW
000SH
CODE
AX, @Data
MOV
DS, AX
MOV
SI, Array1
LEA
DI, Array2
LEA
CX, Count
MOV
NEXT: MOV
BX, [SI]
DX, [DI]
MOV
BX, DX
XCHG
[SI], BX
MOV
[DI], DX
MOV

Advanced Microprocessor Lab Manual

-5-

SSIT

INC
INC
INC
INC
LOOP
MOV
INT
END

SI
SI
DI
DI
NEXT
AH, 4CH
21H

RESULT:

4.(a) Write a program to add two 32-bit numbers.


SOLUTION:

MODEL SMALL
DATA
Data1
Data2
Data3
Data4
CODE
MOV

DW
DW
DW
DW

1234H
7678H
8674H
9811H

AX, @ Data

Advanced Microprocessor Lab Manual

-6-

SSIT

MOV
MOV
ADD
MOV
ADC
MOV
INT
END

DS, AX
BX, Data2
BX, Data4
CX, Data1
CX, Data3
AH, 4CH
21H

RESULT:

4.(b) Write a program to add two 16-bit BCD numbers.


SOLUTION:

MODEL TINY
CODE
MOV
MOV
MOV
ADD
DAA
MOV
MOV
ADC
DAA
MOV
MOV
INT
END

BX, 1234H
CX, 7698H
AL, BL
AL, CL
DL, AL
AL, BH
AL, CH
DH, AL
AH, 4CH
21H

RESULT:

4.(c)

Write a program to show ASCII addition function.

SOLUTION:

MODEL TINY
CODE
MOV

AH, 00H

Advanced Microprocessor Lab Manual

-7-

SSIT

MOV
ADD
AAA
ADD
MOV
INT
END

AL, 39H
AL, 31H
AX, 3030H
AH, 4CH
21H

RESULT:

5.(a) Write a program to subtract two 32-bit numbers.


SOLUTION:

MODEL SMALL
DATA
DT1 DW
DT2 DW
DT3 DW
DT4 DW
DT5 DW
DT6 DW
CODE
MOV
MOV
MOV
SUB
MOV
MOV
SBB
MOV
MOV
INT
END

1234H
9811H
9900H
0ACDH
?
?
AX, @Data
DS, AX
AX, DT1
AX, DT3
DT5, AX
AX, DT2
AX, DT4
DT6, AX
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

-8-

SSIT

5.(b)

Write a program to subtract two BCD numbers stored in two memory locations.

SOLUTION:

MODEL SMALL
DATA
DT1 DB
11H
DT2 DB
09H
CODE
AX, @ Data
MOV
DS, AX
MOV
AL, DT1
MOV
BL, DT2
MOV
AL, BL
SUB
DAS
AH, 4CH
MOV
21H
INT
END

RESULT:

5.(c)

Write a program to show ASCII subtraction function.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
SUB
AAS
ADD
MOV
INT
END

AH,00H
AL,38H
AL,35H
AX,3030H
AH, 4CH
21H

RESULT:

6.(a)

Write a program to multiply two 16-bit numbers.

SOLUTION:

MODEL TINY

Advanced Microprocessor Lab Manual

-9-

SSIT

CODE
AX, 0123H
BX, 1155H
BX
CX, AX
AH, 4CH
21H

MOV
MOV
MUL
MOV
MOV
INT
END
RESULT:

6.(b)

Write a program to multiply two 32-bit numbers.

SOLUTION:

MODEL SMALL
DATA
Low1
High1
Low2
High2
CODE
MOV
MOV
MOV
MUL
MOV
MOV
MOV
MUL
ADD
ADC
MOV
MOV
MOV
MUL
MOV
MOV
MOV
MUL
ADD

DW
DW
DW
DW

5678H
1234H
5678H
1234H

RST1
RST2
RST3
RST4

DW
DW
DW
DW

?
?
?
?

AX, @Data
DS, AX
AX, Low1
Low2
RST1, AX
RST2, DX
AX, Low1
High2
AX, RST2
DX, 00H
RST2, AX
RST3, DX
AX, High1
Low2
CX, AX
BX, DX
AX, High1
High2
BX, AX

Advanced Microprocessor Lab Manual

- 10 -

SSIT

ADC
ADD
ADC
ADC
MOV
MOV
INT
END

DX, 0H
RST2, CX
RST3, BX
DX, 0H
RST4, DX
AH, 4CH
21H

RESULT:

6.(c)

Write a program to illustrate ASCII multiplication function.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
MUL
AAM
MOV
INT
END

AL, 05H
BL, 09H
BL
ADD AX, 3030H
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

- 11 -

SSIT

6.(d) Write a program to multiply two signed 8-bit numbers.


SOLUTION:

MODEL TINY
CODE
MOV
MOV
IMUL
MOV
INT
END

AL, -32H
CL, -06H
CL
AH, 4CH
21H

RESULT:

6.(e)

Write a program to multiply two signed 16-bit numbers.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
IMUL
MOV
INT
END

AX, -1234H
CX, -0ABCAH
CX
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

- 12 -

SSIT

7.(a)

Write a program to divide a word by a byte.

SOLUTION:

MODEL SMALL
DATA
Data1
Data2
CODE
MOV
MOV
MOV
DIV
MOV
MOV
INT
END

DW
DW

0ABCDH
0ABH

AX, @ Data
DS, AX
AX, Data1
Data2
BH, AH
AH, 4CH
21H

RESULT:

7.(b) Write a program to illustrate the division of a double word by a word.


SOLUTION:

MODEL TINY
CODE
MOV

DX, 1111H

Advanced Microprocessor Lab Manual

- 13 -

SSIT

MOV
MOV
DIV
MOV
MOV
INT
END

AX, 1890H
BX, 2345H
BX
BX, AX
AH, 4CH
21H

RESULT:

7.(c)

Write a program to illustrate AAD instruction.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
AAD
DIV
MOV
MOV
INT
END

AX, 0607H
CH, 09H
CH
BL, AH
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

- 14 -

SSIT

7.(d)

Write a program to illustrate signed division of a word by a byte.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
IDIV
MOV
MOV
INT
END

AX, -1234H
BL, 34H
BL
BL, AH
AH, 4CH
21H

RESULT:

7.(e)

Write a program to illustrate signed division of a double word by a word.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
MOV
IDIV
MOV
MOV
INT
END

DX, -0ABCH
AX, 1112H
BX, 2332H
BX
BX, AX
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

- 15 -

SSIT

8.

Write a program to find the square of a number.

SOLUTION:

MODEL SMALL
DATA
Var DW
____
CODE
MOV
MOV
MOV
MUL
MOV
MOV
INT
END

AX, @Data
DS, AX
AX, Var
AX
BX, AX
AH, 4CH
21H

RESULT:

9.

Write a program to find the cube of a number.

SOLUTION:

MODEL SMALL
DATA
Var DW
CODE
MOV
MOV
MOV
MOV

Advanced Microprocessor Lab Manual

____
AX, @Data
DS, AX
CX, 0002H
AX, Var

- 16 -

SSIT

Next: MUL
LOOP
MOV
MOV
INT
END

VAR
Next
BX, AX
AH, 4CH
21H

RESULT:

10.

Write a program to find the factorial of a number.

SOLUTION:

MODEL SMALL
DATA
Data
DB
____
CODE
AX, @Data
MOV
DS, AX
MOV
CH, 0H
MOV
AL, Data
MOV
BL, AL
MOV
CL, AL
MOV
CL, 02H
SUB
Next: DEC
BL
BL
MUL
Next
LOOP
AH, 4CH
MOV
21H
INT
END

RESULT:

Advanced Microprocessor Lab Manual

- 17 -

SSIT

11.

Write a program find LCM of two numbers.

SOLUTION:

MODEL SMALL
DATA
Data1
DW
Data2
DW
LCM
DW
CODE
MOV
MOV
MOV
MOV
MOV
Next1: PUSH
PUSH
DIV
CMP
JZ

0005H
0002H
?
AX, @Data
DS, AX
AX, Data1
BX, Data2
DX, 0H
AX
DX
BX
DX, 0H
Next

Advanced Microprocessor Lab Manual

- 18 -

SSIT

POP
POP
ADD
JNC
INC
JMP
Next: POP
POP
MOV
INT
END

DX
AX
AX, Data1
Next1
DX
Next1
LCM+2
LCM
AH, 4CH
21H

RESULT:

12.

Write a program find HCF of two numbers.

SOLUTION:

MODEL SMALL
DATA
Data1
Data2
HCF DW
CODE
MOV
MOV

Advanced Microprocessor Lab Manual

DW
DW
?

0005H
0002H

AX, @Data
DS, AX

- 19 -

SSIT

MOV
MOV
Above: CMP
Ja
XCHG
Next2: MOV
DIV
CMP
Je
MOV
JMP
Next: MOV
MOV
INT
END

AX, Data1
BX, Data2
AX, BX
Next2
AX, BX
DX, 0H
BX
DX, 0H
Next
AX, DX
Above
HCF, BX
AH, 4CH
21H

RESULT:

13.

Write a program to check whether the given data is positive or negative.

SOLUTION:

MODEL SMALL

Advanced Microprocessor Lab Manual

- 20 -

SSIT

DATA
MSG1
MSG2
MSG3
STACK
CODE

DB
DB
DATA DB ?
DB

ENTERED NUMBER IS POSITIVE. $


ENTERED NUMBER IS NEGATIVE . $
ENTERED NUMBER IS. $

MOV
MOV
MOV

AX, @Data
DS, AX
AL, DATA

ROL
JC
LEA

AL, 01
Next
DX, MSG1

MOV
INT
JMP
Next: LEA

AH, 09H
21H
Last
DX, MSG2

MOV
INT
Last: MOV
INT
END

AH, 09H
21H
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

- 21 -

SSIT

14.

Write a program to check whether the given data is odd or even.

SOLUTION:

MODEL SMALL
DATA
MSG1
MSG2
CODE
MOV
MOV
MOV
SAR
JC
LEA
MOV
INT
JMP
Down: LEA
MOV
INT
Last: MOV
INT
END

DB
DB

GIVEN NUMBER IS ODD. $


GIVEN NUMBER IS EVEN. $

AX, @Data
DS, AX
BL, 24H
BL, 01
Down
DX, MSG2
AH, 09H
21H
Last
DX, MSG1
AH, 09H
21H
AH, 4CH
21H

RESULT:

15.

Write a program to count number of 1s and 0s in a given data byte.

SOLUTION:

MODEL TINY
CODE
MOV
MOV
MOV
MOV
Next: SAR
JC
INC
LOOP

CX, 0008H
AL, 24H
BL, 00H
DL, BL
AL, 01H
Down
BL
Next

Advanced Microprocessor Lab Manual

- 22 -

SSIT

JMP
Down: INC
LOOP
Last: MOV
INT
END

Last
DL
Next
AH, 4CH
21H

RESULT:

16.

Write a program to check whether a given data byte is Palindrome or not.

SOLUTION:

MODEL SMALL
DATA
MSG1 DB
GIVEN DATA IS PALINDROME. $
MSG2 DB
GIVEN DATA IS NOT PALINDROME. $
DATA DB
?
CODE
AX, @ Data
MOV
DS, AX
MOV
BL, data
MOV
CX, 0008H
MOV
DL, BL
MOV
Up: ROL
BL, 01H
DL, 01H
RCL
Up
LOOP
BL, DL
CMP
Next
JZ
DX, MSG2
LEA
AH, 09H
MOV
21H
INT
Last
JMP
Next LEA
DX, MSG1
AH, 09H
MOV
21H
INT
Last: MOV
AH, 4CH
21H
INT
END

RESULT:

Advanced Microprocessor Lab Manual

- 23 -

SSIT

17.

Write a program to check whether a given array is Palindrome or not.

SOLUTION:

MODEL SMALL
DATA
MSG1
DB
GIVEN ARRAY IS PALINDROME. $
MSG2
DB
GIVEN ARRAY IS NOT PALINDROME. $
Array1 DB
10H, 20H, 20H, 10H
Array2 DB
4 DUP (?)
Count
DW
0004H
CODE
AX, @ Data
MOV
DS, AX
MOV
CX, Count
MOV
SI, Array1
LEA
DI, Array2
LEA
DI, Count
ADD
Next: DEC
DI
AL, [SI]
MOV
[DI], AL
MOV
SI
INC
Next
LOOP
SI, Array1
LEA
DI, Array2
LEA
CX, Count
MOV

Advanced Microprocessor Lab Manual

- 24 -

SSIT

Up: MOV
CMP
JNZ
INC
INC
LOOP
LEA
MOV
INT
JMP
Down: LEA
MOV
INT
Last: MOV
INT
END

AL, [SI]
[DI], AL
Down
SI
DI
Up
DX, MSG1
AH, 09H
21H
Last
DX, MSG2
AH, 09H
21H
AH, 4CH
21H

RESULT:

18.

Write a program to add series of 8-bit numbers considering possible overflow.

SOLUTION:

MODEL SMALL
DATA
Array
Count
CODE
MOV
MOV
MOV
LEA
XOR
Start: ADD
JNC
INC
Next: INC
LOOP
MOV
INT

DB
DW

99H, 0ABH, 33H, 84H, 65H


0005H

AX, @ Data
DS, AX
CX, Count
SI, Array
AX, AX
AL, [SI]
Next
AH
SI
Start
AH, 4CH
21H

Advanced Microprocessor Lab Manual

- 25 -

SSIT

END
RESULT:

19.

Write a program to add series of 16-bit numbers considering possible overflow.

SOLUTION:

MODEL SMALL
DATA
Array
DW
Count
DW
CODE
MOV
MOV
MOV
MOV
DEC
LEA
MOV
Next: INC
INC
ADD
JC
LOOP
Last INC
LOOP
MOV
INT
END

1234H, 5678H, 89ABH, 0FFEAH, 1189H


0005H
AX, @ Data
DS, AX
DX, 0H
CX, Count
CX
SI, Array
BX, [SI]
SI
SI
BX, [SI]
Last
Next
DX
Next
AH, 4CH
21H

RESULT:

20.

Write a program to find the largest of N numbers.

SOLUTION:

MODEL SMALL
DATA
Array
Count
CODE
MOV

DB
DW

20H, 10H, 30H, 50H, 40H


0005H

AX, @ Data

Advanced Microprocessor Lab Manual

- 26 -

SSIT

MOV
LEA
DEC
MOV
MOV
Next: INC
CMP
JC
LOOP
JMP
Down XCHG
LOOP
Last: MOV
INT
END

DS, AX
SI, Array
Count
CX, Count
AL, [SI]
SI
AL, [SI]
Down
Next
Last
AL, [SI]
Next
AH, 4CH
21H

For smallest change JC to JNC

Note:-

RESULT:

21.

Write a program to sort given N numbers in ascending order.

SOLUTION:

Advanced Microprocessor Lab Manual

- 27 -

SSIT

MODEL SMALL
DATA
Array
Count
CODE
MOV
MOV
MOV
LEA
Next: MOV
INC
INC
CMP
JNC
LOOP
Down: XCHG
DEC
DEC
MOV
LOOP
MOV
INT
END

DW
DW

2020H, 1010H, 3030H, 5500H, 4040H


0005H

AX, @ Data
DS, AX
CX, Count
SI, Array
BX, [SI]
SI
SI
BX, [SI]
Down
Next
BX, [SI]
SI
SI
[SI], BX
Next
AH, 4CH
21 H

Note : - For descending change JNC to JC


RESULT:

Advanced Microprocessor Lab Manual

- 28 -

SSIT

22.

Write a program to transfer given source string to destination string using string instructions.

SOLUTION:

MODEL SMALL
DATA
Data1
DB
Data2
DB
CODE
MOV
MOV
MOV
MOV
CLD
MOV
MOV
REP MOVSB
MOV
STD
MOV
MOV
REP MOVSB
MOV
INT
END

WELCOME. $
10 DUP(0)
AX, @ Data
DS, AX
ES, AX
CX, 07H
SI, Offset Data1
DI, Offset Data2
CX, 07H
SI, Offset Data1 + 6
DI, Offset Data2 + 14
AH, 4CH
21H

RESULT:

Advanced Microprocessor Lab Manual

- 29 -

SSIT

23.(a)

Write a program to reverse a string.

SOLUTION:

MODEL SMALL
DATA
M1
DB
M2
DB
Buff
DB
DB
DB
Count1
DW
Count2
DW
CODE
MOV
MOV
MOV
MOV
INT
MOV
LEA
INT
MOV
MOV
INT
LEA
INC
MOV
MOV

10, 13, ENTER THE STRING: $


10, 13, REVERSE OF A STRING: $
80
0
80 DUP (0)
0
0
AX, @ Data
DS, AX
AH, 09H
DX, Offset M1
21H
AH, 0AH
DX, Buff
21H
AH, 09H
DX, Offset M2
21H
BX, Buff
BX
CH, 00
CL, Buff+1

Advanced Microprocessor Lab Manual

- 30 -

SSIT

DI, CX
DL, [BX+DI]
AH, 02H
21H
DI
Back
AH, 4CH
21H

MOV
Back: MOV
MOV
INT
DEC
JNZ
MOV
INT
END
RESULT:

23.(b)

Write a program to search a word from a string.

SOLUTION:

MODEL SMALL
DATA
N1
Key
Count
M1
Res
M2
CODE
MOV
MOV
MOV
MOV
Next: MOV
CMP
JZ
INC

DB
DW

12H, 1414H, 7878H, 6767H, 3434H


3132H
DB
0005H
THE KEY FOUND IN
THE POSITION, 13, 10, $
NOT FOUND, 13, 10, $

DB
DB
DB

AX, @ Data
DS, AX
SI, 00H
CX, Count
AX, NI[SI]
AX, Key
Suc
SI

Advanced Microprocessor Lab Manual

- 31 -

SSIT

LOOP
JMP
Suc: MOV
ADD
ADD
MOV
LEA
JMP
Fall: LEA
JMP
Last: MOV
INT
MOV
INT
END

Next
Fall
AX, SI
AL, 01H
AL, 0
Res, AL
DX, M1
Last
DX, M2
Last
AH, 09H
21H
AH, 4CH
21H

RESULT:

24.

Write a program to check if the given data byte is a 2 out of 5 code.

SOLUTION:

MODEL SMALL
DATA
M1
DB
M2
DB
Num DB
3H
CODE
Start: MOV
MOV
MOV
MOV
MOV
Repeat: SHL

NOT 2 OUT OF 5 CODE, $


VALID 2 OUT OF 5 CODE, $

AX, @Data
DS, AX
AL, Num
BL, 00H
CX, 03H
AL, 01H

Advanced Microprocessor Lab Manual

- 32 -

SSIT

Back:

Next:

Exit:

Last:

JC
LOOP
MOV
MOV
SHR
JNC
INC
LOOP
CMP
JNE
LEA
MOV
INT
JMP
LEA
MOV
INT
JMP
MOV
INT
CODE
END

Exit
Repeat
CX, 05H
AL, Num
AL, 01H
Next
BL
Back
BL, 02H
Exit
DX, M2
AH, 09H
21H
Last
DX, M1
AH, 09H
21H
Last
AH, 4CH
21H
Ends
Start

RESULT:

25.

WAP to create a file, open a file read/write to a file and close a file.

SOLUTION:

DATE SEGMENT
Filename db Create. Asm $
Filecontent db Electronics $

Advanced Microprocessor Lab Manual

- 33 -

SSIT

FDL DW
?
DATA ENDS
CODE
SEGMENT
ASSUME CS: CODE DS, ; DATA
Start: MOV
MOV
MOV
MOV
LEA
INT
MOV
MOV
LEA
MOV
INT
MOV
MOV
MOV
LEA
INT
MOV
MOV
INT
MOV
INT
CODE
END

AX, DATA
DS, AX
AH,3CH
CX, 0000H
DX, FILE NAME
21H
FDL, AX
AH,3DH
DX, FILENAME
AL, 82h
21H
AH,40H
BX, FDL
CX, OBH
DX, FILECONTENT
21H
AH,3EH
BX, FDL
21H
AH, 4CH
21H
ENDS
START

RESULT:

Advanced Microprocessor Lab Manual

- 34 -

SSIT

26.

An ALP to display the string on console using DOS interrupts.

SOLUTION:

DATA SEGMENT
MSG
DB
DATA ENDS
CODE SEGMENT
MAIN
ASSUME
Start: PUSH
XOR
PUSH
MOV
MOV
MOV
MOV
INT
MAIN
CODE
END

Welcome to TCE Dept., $

ROC
FAR
CS: CODE,DS : DATA
DS
AX, AX
AX
AX, DATA
DS, AX
AH, 09H
DX, Offset MSG
21H
END P
ENDS
START

RESULT:

Advanced Microprocessor Lab Manual

- 35 -

SSIT

27.

An ALP to read the system time.

SOLUTION:

MODEL Tiny
CODE
Start: MOV
INT
MOV
AAM
MOV
CALL
MOV
INT
MOV
AAM
MOV
CALL
MOV
INT
DISP PROC
MOV
ADD
MOV
INT
ADD
INT
RET
DISP
END

AH, 2CH
21H
AL, CH
BX, AX
DISP
AH, 02H
21H
AL, CL
BX,AX
DISP
AH, 4CH
21H
DL, BL
DL, 30H
AH, 02H
21 H
DL, BL
21H
END P
START

Advanced Microprocessor Lab Manual

- 36 -

SSIT

RESULT:

28.

Write a program to convert a given binary number into its BCD equivalent.

SOLUTION:

MODEL SMALL
DATA
N1
DB
RES
DW

?
?

CODE
Start: MOV
MOV
MOV
MOV
MOV
CALL
MOV
MOV
CALL
MOV
ROL
MOV
OR
MOV
MOV
INT

AX, @ DATA
DS, AX
CX, OOH
AL, 64H
BL, NI
BCD
DH, DL
AL, OAH
BCD
CL, OAH
DL, CL
CL, BL
DL, CL
RES, DX
AH, 4CH
21H

Advanced Microprocessor Lab Manual

- 37 -

SSIT

BCD
MOV
REPEAT: SUB
JC
INC
JMP
NEXT: ADD
RET
ENDP
END

PROC
DL, OOH
BL, AL
NEXT
DL
DL
BL, AL

RESULT:

29.

Write a program to convert a given BCD number into its binary equivalent

SOLUTION:

MODEL SMALL
DATA
N1
DB
RES DW
?
CODE
Start: MOV
MOV
MOV
AMM
PUSH
MOV
MUV

72D

AD, @Data
DS, AX
AL, NI

AX
BL, OAH
AL, AH

Advanced Microprocessor Lab Manual

- 38 -

SSIT

MUL
MOV
POP
MOV
ADD
MOV
MOV
INT
END

BL
BX, AX
AX
AH, OOH
AX, BX
RES, AX
AH, 4CH
21H

RESULT:

30.

Write a program to control the speed of a stepper motor.

SOLUTION:

MODEL SMALL
DATA
Seq
DB
Delay
Control
DW
Pc
DW

Advanced Microprocessor Lab Manual

3H, 1H, 9H, 8H, 0CH, 4H, 6H, 2H


DB
(0)
0D803H
0D802H

- 39 -

SSIT

CODE
Start: MOV
MOV
MOV
MOV
MOV
MOV
OUT
MOV
Repeat1: MOV
Next: MOV
OUT
MOV
Repeat: MOV
Back: LOOP
DEC
JNZ
INC
CMP
JNZ
DEC
JNZ
INT
MOV
INT
END

AX, @Data
DS, AX
BX, Offset Seq
DX, Control
AL, 80H
DI, 020H
DX, AL
DX, Pc
SI, 00H
AL, BX[SI]
DX, AL
Delay, 30H
CX, 0FFFFH
Back
Delay
Repeat
SI
SI, 08H
Next
DI
Repeat1
3
AH, 4CH
21H
Start

RESULT:

31.

Develop and execute a program to drive a stepper motor interface to rotate the motor in anti-clock wise direction in N-steps.

Advanced Microprocessor Lab Manual

- 40 -

SSIT

SOLUTION:

MODEL SMALL
DATA
Seq DB
3H, 1H, 9H, 8H, 0CH, 4H, 6H, 2H
Delay
DB
(0)
Control
DW
0D803H
Pc
DW
0D802H
CODE
Start: MOV
AX, @Data
DS, AX
MOV
BX, Offset Seq
MOV
DX, Control
MOV
AL, 80H
MOV
DI, 020H
MOV
DX, AL
OUT
DX, Pc
MOV
Repeat1: MOV
SI, 00H
Next: MOV
AL, BX[SI]
DX, AL
OUT
Delay, 04FFH
MOV
Repeat: MOV
CX, 0FFFFH
Back: LOOP
Back
Delay
DEC
Repeat
JNZ
SI
INC
SI, 08H
CMP
Next
JNZ
DI
DEC
Repeat I
JN2
AH, 4CH
MOV
21H
INT
Start
END

RESULT:

Advanced Microprocessor Lab Manual

- 41 -

SSIT

32.

Write a program for constant display of a string of characters.

SOLUTION:

MODEL SMALL
STACK 20
DATA
Num
DB
1, 1, 1, 1
Disptbl DB
3, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 1, 9
Pa
EQU
0C800H
Pb
EQU
0C801H
Pc
EQU
0C802H
Control EQU
0C803H
CODE
Start: MOV
AX, @Data
DS, AX
MOV
AL, 90H
MOV
DX, Control
MOV
DX, AL
OUT
Bcd4disp
CALL
AH, 4CH
MOV
21H
INT
Bcd4disp proc
SI, 3H
MOV
Nxtchar: MOV
AH, 8
AL, Num[SI]
MOV
BX, Disptbl
LEA
XLAT
Nxtseg: MOV
DX, Pb
DX, AL
OUT
CH, AL
MOV
AL, 0
MOV
DX, Pc
MOV
DX, AL
OUT
AL, 0F0H
MOV

Advanced Microprocessor Lab Manual

- 42 -

SSIT

DX, AX
OUT
AH
DEC
Overchk
JZ
AL, CH
MOV
AL, 1
ROR
Nxtseg
JMP
Overchk: DEC
SI
SI, -1
CMP
Nxtchar
JNE
RET
Bcd4disp ENDP
Start
END

a
f

b
g

c
d

For example: for1

abcdefg
1 0 0 1 1 1 1 = 9FH

33.

Write a program to implement a rolling display of characters using display interface.

SOLUTION:

MODEL SMALL
STACK 20
DATA
Num1
Num2
Msg
Disptbl DB

DB
1, 1, 1, 1
DB
0AH, 0BH, 0CH, 0DH
DB
Press any key to return to DOS, 13H, 10H, $
3, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 1H, 9H,

Advanced Microprocessor Lab Manual

- 43 -

SSIT

Pa
EQU
Pb
EQU
Pc
EQU
Control EQU
0C803H
CODE
Start: MOV
MOV
MOV
MOV
OUT
MOV
LEA
INT
Again: MOV
MOV
INT
JNZ
LEA
CALL
CALL
LEA
CALL
CALL
JMP
Last: MOV
INT
DELAY
MOV
Again
MOV
Again 2 : LOOP
POPC
DEC
JN2
RET
DELAY
Bcd4disp Proc
MOV
Nxtchar: MOV
MOV

Advanced Microprocessor Lab Manual

11H, 1H, 63H, 3H


0C800H
0C801H
0C802H

AX, @Data
DS, AX
AL, 90H
DX, Control
DX, AL
AH, 9
DX, Msg
21H
AH, 6
DL, 0FFH
21H
Last
BP, Num1
Bcd4disp
Delay
BP Num 2
BCD 4 disp
Delag
Again
AH, 4CH
21H
Proc
CX, 0FFFFH
1 PUSH CX
CX, OFFFH
Again 2
X
CX
Again1
Endp
SI, 03H
AH, 8
AL, DS:[BP+SI]

- 44 -

SSIT

BX, Disptbl
LEA
XLAT
Nxtseg: MOV
DX, Pb
DX, AL
OUT
CH, AL
MOV
AL, 0
MOV
DX, Pc
MOV
DX, AL
OUT
AL, 0F0H
MOV
DX, AL
OUT
AH
DEC
Overchk
JZ
AL, CH
MOV
AL, 1
ROR
Nxtseg
JMP
Overchk: DEC
SI
SI, -1
CMP
Nxtchar
JNE
RET
Bcd4disp ENDP
Start
END

a
f

b
g
c

e
d

For example: for1


abcdefg
1 0 0 1 1 1 1 = 9FH

Advanced Microprocessor Lab Manual

- 45 -

SSIT

34.

Develop and execute a program to scan for key closer in a key board interface. The row number and the column
number of the key pressed are to be stored in memory locations.

SOLUTION:

Prompt
Msg DB
Askires
Pa
Pb
Pc
Control
CODE

MODEL SMALL
STACK
DATA
DB
Press any key to return to DOS, 13H, 10H, $
The row & column info of the key pressed are as follows
DB
?, , ?, 13, 10, $
EQU
0D800H
EQU
0D801H
EQU
0D802H
EQU
0D803H
Start: MOV
MOV
MOV
MOV
OUT
MOV
LEA
INT
Again: MOV
MOV
INT
JNZ
CALL
CMP
JE
ADD
MOV
ADD
MOV
MOV

Advanced Microprocessor Lab Manual

AX, @Data
DS, AX
AL, 90H
DX, Control
DX, AL
AH, 09H
DX, Prompt
21H
AH, 6
DL, 0FFH
21H
Quit
Scan
SI, 0
Again
BH, 30H
AH, 30H
Askires+2, AH
AH, 9

- 46 -

SSIT

Here1:
Here:

Quit:

Nxtrow:

LEA
INT
MOV
MOV
LOOP
DEC
JNZ
JMP
MOV
INT
SCAN
MOV
MOV
MOV
MOV
ROL
MOV
MOV
OUT
SUB
IN
CMP
JNZ
MOV
INC
LOOP

Keyid: MOV
MOV
MOV
Again2: ROR
JC
INC
LOOP
Skip RET
SCAN
END

DX, Msg
21H
AH, 0FFH
CX, 0FFFFH
Here
AH
Here1
Again
AH, 4CH
21H
Proc
SI, 0
CX, 3
BH, 0
AL, 80H
AL, 1
BL, AL
DX, Pc
DX, AL
DX, 2
AL, DX
AL, 0
Keyid
AL, BL
BH
Nxtrow
SI, 1
CX, 8
AH, 0
AL, 1
Skip
AH
Again2
ENDP
Start

RESULT:

Advanced Microprocessor Lab Manual

- 47 -

SSIT

35.

Program to cheek for not gate operation using logic controller.

SOLUTION:

Code Segment
Assume CD: CODE

Start: MOV
MOV
OUT
MOV
IN
NOT
DEC
OUT
MOV
INT
END

DX, 0D803H
AL, 8AH
DX, AL
DX, 0D801H
AL, DX
AL
DX
DX, AL
AH, 4CH
21H
START

Advanced Microprocessor Lab Manual

- 48 -

SSIT

END

RESULT:

Advanced Microprocessor Lab Manual

- 49 -

S-ar putea să vă placă și