advanced microprocessor lab manual

52
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

Upload: mallikarjun-kommineni

Post on 21-Apr-2015

935 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Advanced Microprocessor Lab Manual

Advanced Microprocessor LabFor

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

Name…………………………………………

Reg. No………………………………………

Batch…………………………………………

Department of Electronics & Communication Engineering

Sri Siddhartha Institute of Technology

Maralur, Tumkur-5

Page 2: Advanced Microprocessor Lab Manual

-1-

SSIT

QUESTION BANK

1. (a) Write a program to move an element at Loc1 to Loc2 using base-plusindex addressing mode(b) Write a program to move an element at Loc1 to Loc2 using register relativeaddressing 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 memorylocations

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 1’s and 0’s 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

Page 3: Advanced Microprocessor Lab Manual

-2-

SSIT

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

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 usingstring 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 themotor 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 displayinterface.

34. Develop and execute a program to scan for key closer in a key boardinterface. The row number and the column number of the key pressed are tobe stored in memory locations.

35. Program to check for not gate operation using logic controller code segment

Advanced Microprocessor Lab Manual

Page 4: Advanced Microprocessor Lab Manual

-3-

5

1.

5

1.

SSIT

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

SOLUTION:

MODEL SMALL DATA

Array DBDB 78H

DUP (?)

DB 20 DUP (?) CODE

MOVMOVMOVMOVMOVMOVMOVMOVINT

AX, @DataDS, AXBX, offset arraySI, 05HCL, [BX+SI]SI, 11H[BX+SI], CLAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL SMALL DATA

Array DBDB 78H

DUP (?)

DB 20 DUP (?) CODE

Advanced Microprocessor Lab Manual

Page 5: Advanced Microprocessor Lab Manual

2.

5

2.

-4-

SSIT

MOVMOVMOVMOVMOVMOVINT

AX, @DataDS, AXBX, offset arrayCL, [BX+05H][BX+11H], CLAH, 4CH21H

END

RESULT:

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

overlapping.

SOLUTION:MODEL SMALL

DATAArray1 DWArray2 DWCount DW

1111H, 1222H, 3333H, 4444H, 5555HDUP (?)

0005H CODE

MOVMOVLEALEA

NEXT: MOVMOVMOVINCINCINCINCLOOPMOVINT

AX, @DataDS, AXSI, Array1DI, Array2CX, CountAX, [SI][DI], AXSISIDIDINEXTAH, 4CH21H

END

RESULT:

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

Page 6: Advanced Microprocessor Lab Manual

3.

-5-

SSIT

MODEL SMALL DATA

Data1 DBCount DW

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

CODEMOVMOVMOVLEAADDMOVDECMOVADD

AX, @DataES, AXDS, AXSI, Data1SI, CountCX, CountSIDI, SIDI, 2H

REP:STDMOVMOVINT

SBAH, 4CH21H

END

RESULT:

Write a program to interchange blocks of data.

SOLUTION:

MODEL SMALL DATA

Array1 DWArray2 DW

1010H, 2020H, 3030H, 4040H, 5050H1111H, 2222H, 3333H, 4444H, 5555H

CountCODE

DW 000SH

MOVMOVLEALEAMOV

NEXT: MOVMOVXCHGMOVMOV

AX, @DataDS, AXSI, Array1DI, Array2CX, CountBX, [SI]DX, [DI]BX, DX[SI], BX[DI], DX

Advanced Microprocessor Lab Manual

Page 7: Advanced Microprocessor Lab Manual

-6-

SSIT

INCINCINCINCLOOPMOVINT

SISIDIDINEXTAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL SMALL DATA

CODE

Data1Data2Data3Data4

MOV AX, @ Data

DWDWDWDW

1234H7678H8674H9811H

Advanced Microprocessor Lab Manual

Page 8: Advanced Microprocessor Lab Manual

4.(c)

-7-

SSIT

MOVMOVADDMOVADCMOVINT

DS, AXBX, Data2BX, Data4CX, Data1CX, Data3AH, 4CH21H

ENDRESULT:

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

SOLUTION:

MODEL TINY CODE

MOVMOVMOVADDDAAMOVMOVADCDAAMOVMOVINT

BX, 1234HCX, 7698HAL, BLAL, CL

DL, ALAL, BHAL, CH

DH, ALAH, 4CH21H

END

RESULT:

Write a program to show ASCII addition function.

SOLUTION:

MODEL TINY CODE

MOV AH, 00H

Advanced Microprocessor Lab Manual

Page 9: Advanced Microprocessor Lab Manual

-8-

SSIT

MOVADDAAAADDMOVINT

AL, 39HAL, 31H

AX, 3030HAH, 4CH21H

END

RESULT:

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

SOLUTION:MODEL SMALL

DATADT1 DWDT2 DWDT3 DWDT4 DWDT5 DWDT6 DW

1234H9811H9900H0ACDH??

CODEMOVMOVMOVSUBMOVMOVSBBMOVMOVINT

AX, @DataDS, AXAX, DT1AX, DT3DT5, AXAX, DT2AX, DT4DT6, AXAH, 4CH21H

END

RESULT:

Advanced Microprocessor Lab Manual

Page 10: Advanced Microprocessor Lab Manual

-9-

6.(a)

5.(c)

5.(b)

SSIT

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

SOLUTION:MODEL SMALL

DATADT1 DBDT2 DB

11H09H

CODEMOVMOVMOVMOVSUBDASMOVINT

AX, @ DataDS, AXAL, DT1BL, DT2AL, BL

AH, 4CH21H

END

RESULT:

Write a program to show ASCII subtraction function.

SOLUTION:

MODEL TINY CODE

MOVMOVSUBAASADDMOVINT

AH,00HAL,38HAL,35H

AX,3030HAH, 4CH21H

END

RESULT:

Write a program to multiply two 16-bit numbers.

SOLUTION:

MODEL TINY

Advanced Microprocessor Lab Manual

Page 11: Advanced Microprocessor Lab Manual

6.(b)

SSIT

CODEMOVMOVMULMOVMOVINT

AX, 0123HBX, 1155HBXCX, AXAH, 4CH21H

END

RESULT:

Write a program to multiply two 32-bit numbers.

SOLUTION:

MODEL SMALL DATA

Low1High1Low2High2

DWDWDWDW

5678H1234H5678H1234H

RST1RST2RST3RST4

DWDWDWDW

????

CODEMOVMOVMOVMULMOVMOVMOVMULADDADCMOVMOVMOVMULMOVMOVMOVMULADD

AX, @DataDS, AXAX, Low1Low2RST1, AXRST2, DXAX, Low1High2AX, RST2DX, 00HRST2, AXRST3, DXAX, High1Low2CX, AXBX, DXAX, High1High2BX, AX

Advanced Microprocessor Lab Manual - 10 -

Page 12: Advanced Microprocessor Lab Manual

6.(c)

SSIT

ADCADDADCADCMOVMOVINT

DX, 0HRST2, CXRST3, BXDX, 0HRST4, DXAH, 4CH21H

END

RESULT:

Write a program to illustrate ASCII multiplication function.

SOLUTION:

MODEL TINY CODE

RESULT:

MOVMOVMULAAMMOVINTEND

AL, 05HBL, 09HBLADD AX, 3030HAH, 4CH21H

Advanced Microprocessor Lab Manual - 11 -

Page 13: Advanced Microprocessor Lab Manual

6.(e)

SSIT

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

SOLUTION:

MODEL TINY CODE

MOVMOVIMULMOVINT

AL, -32HCL, -06HCLAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL TINY CODE

RESULT:

MOVMOVIMULMOVINTEND

AX, -1234HCX, -0ABCAHCXAH, 4CH21H

Advanced Microprocessor Lab Manual - 12 -

Page 14: Advanced Microprocessor Lab Manual

7.(a)

SSIT

Write a program to divide a word by a byte.

SOLUTION:

MODEL SMALL DATA

Data1Data2

CODEMOVMOVMOVDIVMOVMOVINT

DWDW

AX, @ DataDS, AXAX, Data1Data2BH, AHAH, 4CH21H

0ABCDH

0ABH

END

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 -

Page 15: Advanced Microprocessor Lab Manual

7.(c)

SSIT

MOVMOVDIVMOVMOVINT

AX, 1890HBX, 2345HBXBX, AXAH, 4CH21H

END

RESULT:

Write a program to illustrate AAD instruction.

SOLUTION:

MODEL TINY CODE

RESULT:

MOVMOVAADDIVMOVMOVINTEND

AX, 0607HCH, 09H

CHBL, AHAH, 4CH21H

Advanced Microprocessor Lab Manual - 14 -

Page 16: Advanced Microprocessor Lab Manual

7.(d)

7.(e)

SSIT

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

SOLUTION:

MODEL TINY CODE

MOVMOVIDIVMOVMOVINT

AX, -1234HBL, 34HBLBL, AHAH, 4CH21H

END

RESULT:

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

SOLUTION:MODEL TINY

CODE

RESULT:

MOVMOVMOVIDIVMOVMOVINTEND

DX, -0ABCHAX, 1112HBX, 2332HBXBX, AXAH, 4CH

21H

Advanced Microprocessor Lab Manual - 15 -

Page 17: Advanced Microprocessor Lab Manual

9.

8.

SSIT

Write a program to find the square of a number.

SOLUTION:

MODEL SMALL DATA

Var DW ____ CODE

MOVMOVMOVMULMOVMOVINT

AX, @DataDS, AXAX, VarAXBX, AXAH, 4CH21H

END

RESULT:

Write a program to find the cube of a number.

SOLUTION:

MODEL SMALL DATA

Var DW ____ CODE

MOVMOVMOVMOV

Advanced Microprocessor Lab Manual

AX, @DataDS, AXCX, 0002HAX, Var

- 16 -

Page 18: Advanced Microprocessor Lab Manual

10.

SSIT

Next: MULLOOPMOVMOVINT

VARNextBX, AXAH, 4CH21H

END

RESULT:

Write a program to find the factorial of a number.

SOLUTION:

MODEL SMALL DATA

RESULT:

Data

CODEMOVMOVMOVMOVMOVMOVSUB

Next: DECMULLOOPMOVINTEND

DB ____

AX, @DataDS, AXCH, 0HAL, DataBL, ALCL, ALCL, 02HBLBLNextAH, 4CH21H

Advanced Microprocessor Lab Manual - 17 -

Page 19: Advanced Microprocessor Lab Manual

11.

SSIT

Write a program find LCM of two numbers.

SOLUTION:

MODEL SMALL DATA

Data1Data2LCM

CODE

DWDWDW

0005H0002H?

MOVMOVMOVMOVMOV

Next1: PUSHPUSHDIVCMPJZ

AX, @DataDS, AXAX, Data1BX, Data2DX, 0HAXDXBXDX, 0HNext

Advanced Microprocessor Lab Manual - 18 -

Page 20: Advanced Microprocessor Lab Manual

12.

SSIT

POPPOPADDJNCINCJMP

Next: POPPOPMOVINT

DXAXAX, Data1Next1DXNext1LCM+2LCMAH, 4CH21H

END

RESULT:

Write a program find HCF of two numbers.

SOLUTION:

MODEL SMALL DATA

CODE

Data1Data2HCF DW

DWDW?

0005H0002H

MOVMOV

Advanced Microprocessor Lab Manual

AX, @DataDS, AX

- 19 -

Page 21: Advanced Microprocessor Lab Manual

13.

SSIT

MOVMOV

Above: CMPJaXCHG

Next2: MOVDIVCMPJeMOVJMP

Next: MOVMOVINT

AX, Data1BX, Data2AX, BXNext2AX, BXDX, 0HBXDX, 0HNextAX, DXAboveHCF, BXAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL SMALL

Advanced Microprocessor Lab Manual - 20 -

Page 22: Advanced Microprocessor Lab Manual

SSIT

DATA

MSG1MSG2

MSG3STACKCODE

DBDB

DATA DB ?DB

‘ENTERED NUMBER IS POSITIVE. $’‘ENTERED NUMBER IS NEGATIVE . $’

‘ENTERED NUMBER IS. $’

RESULT:

MOVMOVMOV

ROLJCLEA

MOVINTJMP

Next: LEA

MOVINT

Last: MOVINTEND

AX, @DataDS, AXAL, DATA

AL, 01NextDX, MSG1

AH, 09H21HLastDX, MSG2

AH, 09H21HAH, 4CH21H

Advanced Microprocessor Lab Manual - 21 -

Page 23: Advanced Microprocessor Lab Manual

14.

15.

SSIT

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

SOLUTION:

MODEL SMALL DATA

MSG1MSG2

CODEMOVMOVMOVSARJCLEAMOVINTJMP

Down: LEAMOVINT

Last: MOVINT

DBDB

AX, @DataDS, AXBL, 24HBL, 01DownDX, MSG2AH, 09H21HLastDX, MSG1AH, 09H21HAH, 4CH21H

‘GIVEN NUMBER IS ODD. $’‘GIVEN NUMBER IS EVEN. $’

END

RESULT:

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

SOLUTION:MODEL TINY

CODEMOVMOVMOVMOV

Next: SARJCINCLOOP

CX, 0008HAL, 24HBL, 00HDL, BLAL, 01HDownBLNext

Advanced Microprocessor Lab Manual - 22 -

Page 24: Advanced Microprocessor Lab Manual

16.

?

SSIT

JMPDown: INC

LOOPLast: MOV

INT

LastDLNextAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL SMALL DATA

MSG1 DBMSG2 DBDATA DB

‘GIVEN DATA IS PALINDROME. $’‘GIVEN DATA IS NOT PALINDROME. $’

CODE

RESULT:

MOVMOVMOVMOVMOV

Up: ROLRCLLOOPCMPJZLEAMOVINTJMP

Next LEAMOVINT

Last: MOVINTEND

AX, @ DataDS, AXBL, dataCX, 0008HDL, BLBL, 01HDL, 01HUpBL, DLNextDX, MSG2AH, 09H21HLastDX, MSG1AH, 09H21HAH, 4CH21H

Advanced Microprocessor Lab Manual - 23 -

Page 25: Advanced Microprocessor Lab Manual

17.

SSIT

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

SOLUTION:

MODEL SMALL DATA

MSG1MSG2

DBDB

‘GIVEN ARRAY IS PALINDROME. $’‘GIVEN ARRAY IS NOT PALINDROME. $’

Array1 DBArray2 DB

10H, 20H, 20H, 10H4 DUP (?)

CountCODE

DW 0004H

MOVMOVMOVLEALEAADD

Next: DECMOVMOVINCLOOPLEALEAMOV

AX, @ DataDS, AXCX, CountSI, Array1DI, Array2DI, CountDIAL, [SI][DI], ALSINextSI, Array1DI, Array2CX, Count

Advanced Microprocessor Lab Manual - 24 -

Page 26: Advanced Microprocessor Lab Manual

18.

SSIT

Up: MOVCMPJNZINCINCLOOPLEAMOVINTJMP

Down: LEAMOVINT

Last: MOVINT

AL, [SI][DI], ALDownSIDIUpDX, MSG1AH, 09H21HLastDX, MSG2AH, 09H21HAH, 4CH21H

END

RESULT:

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

SOLUTION:MODEL SMALL

DATA

ArrayCount

CODEMOVMOVMOVLEAXOR

Start: ADDJNCINC

Next: INCLOOPMOVINT

DBDW

AX, @ DataDS, AXCX, CountSI, ArrayAX, AXAL, [SI]NextAHSIStartAH, 4CH21H

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

Advanced Microprocessor Lab Manual - 25 -

Page 27: Advanced Microprocessor Lab Manual

19.

20.

SSIT

END

RESULT:

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

SOLUTION:MODEL SMALL

DATA

ArrayCount

CODE

DWDW

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

MOVMOVMOVMOVDECLEAMOV

Next: INCINCADDJCLOOP

Last INCLOOPMOVINT

AX, @ DataDS, AXDX, 0HCX, CountCXSI, ArrayBX, [SI]SISIBX, [SI]LastNextDXNextAH, 4CH21H

END

RESULT:

Write a program to find the largest of N numbers.

SOLUTION:

MODEL SMALL DATA

ArrayCount

CODEMOV

DBDW

AX, @ Data

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

Advanced Microprocessor Lab Manual - 26 -

Page 28: Advanced Microprocessor Lab Manual

21.

SSIT

MOVLEADECMOVMOV

Next: INCCMPJCLOOPJMP

Down XCHGLOOP

Last: MOVINTEND

DS, AXSI, ArrayCountCX, CountAL, [SI]SIAL, [SI]DownNextLastAL, [SI]NextAH, 4CH21H

Note:- For smallest change JC to JNC

RESULT:

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

SOLUTION:

Advanced Microprocessor Lab Manual - 27 -

Page 29: Advanced Microprocessor Lab Manual

SSIT

MODEL SMALL DATA

ArrayCount

CODEMOVMOVMOVLEA

Next: MOVINCINCCMPJNCLOOP

Down: XCHGDECDECMOVLOOPMOVINTEND

Note : - For descending change JNC to JC

RESULT:

DWDW

AX, @ DataDS, AXCX, CountSI, ArrayBX, [SI]SISIBX, [SI]DownNextBX, [SI]SISI[SI], BXNextAH, 4CH21 H

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

Advanced Microprocessor Lab Manual - 28 -

Page 30: Advanced Microprocessor Lab Manual

22.

SSIT

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

SOLUTION:

MODEL SMALL DATA

Data1Data2

CODE

DBDB

MOVMOVMOVMOVCLDMOVMOVREP MOVSBMOVSTDMOVMOVREP MOVSBMOVINT

‘WELCOME. $’10 DUP(0)

AX, @ DataDS, AXES, AXCX, 07H

SI, Offset Data1DI, Offset Data2

CX, 07H

SI, Offset Data1 + 6DI, Offset Data2 + 14

AH, 4CH21H

END

RESULT:

Advanced Microprocessor Lab Manual - 29 -

Page 31: Advanced Microprocessor Lab Manual

SSIT

23.(a) Write a program to reverse a string.

SOLUTION:

MODEL SMALL DATA

M1M2Buff

Count1Count2

CODEMOVMOVMOVMOVINTMOVLEAINTMOVMOVINTLEAINCMOVMOV

DBDBDBDBDBDWDW

10, 13, ‘ENTER THE STRING: $’10, 13, ‘REVERSE OF A STRING: $’80080 DUP (0)00

AX, @ DataDS, AXAH, 09HDX, Offset M121HAH, 0AHDX, Buff21HAH, 09HDX, Offset M221HBX, BuffBXCH, 00CL, Buff+1

Advanced Microprocessor Lab Manual - 30 -

Page 32: Advanced Microprocessor Lab Manual

SSIT

RESULT:

MOVBack: MOV

MOVINTDECJNZMOVINTEND

DI, CXDL, [BX+DI]AH, 02H21HDIBackAH, 4CH21H

23.(b) Write a program to search a word from a string.

SOLUTION:

MODEL SMALL DATA

N1Key

DBDW

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

Count DB 0005H

M1ResM2

CODEMOVMOVMOVMOV

Next: MOVCMPJZINC

DBDBDB

‘ THE KEY FOUND IN ‘‘THE POSITION’, 13, 10, ‘$’‘NOT FOUND’, 13, 10, ‘$’

AX, @ DataDS, AXSI, 00HCX, CountAX, NI[SI]AX, KeySucSI

Advanced Microprocessor Lab Manual - 31 -

Page 33: Advanced Microprocessor Lab Manual

24.

SSIT

LOOPJMP

Suc: MOVADDADDMOVLEAJMP

Fall: LEAJMP

Last: MOVINTMOVINT

NextFallAX, SIAL, 01HAL, ‘0’Res, ALDX, M1LastDX, M2LastAH, 09H21HAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL SMALL DATA

M1M2Num DB

CODEStart: MOV

MOVMOVMOVMOV

Repeat: SHL

DBDB3H

‘NOT 2 OUT OF 5 CODE’, ‘$’‘VALID 2 OUT OF 5 CODE’, ‘$’

AX, @DataDS, AXAL, NumBL, 00HCX, 03HAL, 01H

Advanced Microprocessor Lab Manual - 32 -

Page 34: Advanced Microprocessor Lab Manual

25.

SSIT

JCLOOPMOVMOV

ExitRepeatCX, 05HAL, Num

Back:

Next:

Exit:

Last:

SHRJNCINCLOOPCMPJNELEAMOVINTJMPLEAMOVINTJMPMOVINTCODEEND

AL, 01HNextBLBackBL, 02HExitDX, M2AH, 09H21HLastDX, M1AH, 09H21HLastAH, 4CH21HEndsStart

RESULT:

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

SOLUTION:

DATE SEGMENTFilename db “Create. Asm $”Filecontent db “Electronics $”

Advanced Microprocessor Lab Manual - 33 -

Page 35: Advanced Microprocessor Lab Manual

SSIT

FDL DWDATA ENDS

CODE

?

SEGMENTASSUME CS: CODE DS, ; DATA

RESULT:

Start: MOVMOVMOVMOVLEAINTMOVMOVLEAMOVINTMOVMOVMOVLEAINTMOVMOVINTMOVINTCODEEND

AX, DATADS, AXAH,3CHCX, 0000HDX, FILE NAME21HFDL, AXAH,3DHDX, FILENAMEAL, 82h21HAH,40HBX, FDLCX, OBHDX, FILECONTENT21HAH,3EHBX, FDL21HAH, 4CH21HENDSSTART

Advanced Microprocessor Lab Manual - 34 -

Page 36: Advanced Microprocessor Lab Manual

26.

SSIT

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

SOLUTION:

DATA SEGMENT

MSGDATA ENDS

DB “ Welcome to TCE Dept.”, ‘$’

CODE SEGMENTMAIN ROC FAR

RESULT:

ASSUME

Start: PUSHXORPUSHMOVMOVMOVMOVINTMAINCODEEND

CS: CODE,DS : DATA

DSAX, AXAXAX, DATADS, AXAH, 09HDX, Offset MSG21HEND PENDSSTART

Advanced Microprocessor Lab Manual - 35 -

Page 37: Advanced Microprocessor Lab Manual

27.

SSIT

An ALP to read the system time.

SOLUTION:

MODEL TinyCODE

Start: MOVINTMOVAAMMOVCALLMOVINTMOVAAMMOVCALLMOVINT

DISP PROCMOVADDMOVINTADDINTRETDISPEND

AH, 2CH21HAL, CH

BX, AXDISPAH, 02H21HAL, CL

BX,AXDISPAH, 4CH21H

DL, BLDL, 30HAH, 02H21 HDL, BL21H

END PSTART

Advanced Microprocessor Lab Manual - 36 -

Page 38: Advanced Microprocessor Lab Manual

28.

SSIT

RESULT:

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

SOLUTION:

MODEL SMALL DATA

CODE

N1RES

Start: MOVMOVMOVMOVMOVCALLMOVMOVCALLMOVROLMOVORMOVMOVINT

DBDW

??

AX, @ DATADS, AXCX, OOHAL, 64HBL, NIBCDDH, DLAL, OAHBCDCL, OAHDL, CLCL, BLDL, CLRES, DXAH, 4CH21H

Advanced Microprocessor Lab Manual - 37 -

Page 39: Advanced Microprocessor Lab Manual

29.

SSIT

BCDMOV

REPEAT: SUBJCINCJMP

NEXT: ADD

PROCDL, OOHBL, ALNEXTDLDLBL, AL

RETENDPEND

RESULT:

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

SOLUTION:

MODEL SMALL DATA

N1RES DW

CODEStart: MOV

MOVMOVAMM

PUSHMOVMUV

DB?

72D

AD, @DataDS, AXAL, NI

AXBL, OAHAL, AH

Advanced Microprocessor Lab Manual - 38 -

Page 40: Advanced Microprocessor Lab Manual

30.

SSIT

MULMOVPOPMOVADDMOVMOVINT

BLBX, AXAXAH, OOHAX, BXRES, AXAH, 4CH21H

END

RESULT:

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

SOLUTION:

MODEL SMALL DATA

Seq DB 3H, 1H, 9H, 8H, 0CH, 4H, 6H, 2HDelay DB (0)ControlPc

DWDW

0D803H0D802H

Advanced Microprocessor Lab Manual - 39 -

Page 41: Advanced Microprocessor Lab Manual

31.

SSIT

CODEStart: MOV

MOVMOVMOVMOVMOVOUTMOV

Repeat1: MOVNext: MOV

OUTMOV

Repeat: MOVBack: LOOP

DECJNZINCCMPJNZDECJNZINTMOVINTEND

AX, @DataDS, AXBX, Offset SeqDX, ControlAL, 80HDI, 020HDX, ALDX, PcSI, 00HAL, BX[SI]DX, ALDelay, 30HCX, 0FFFFHBackDelayRepeatSISI, 08HNextDIRepeat13AH, 4CH21HStart

RESULT:

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 -

Page 42: Advanced Microprocessor Lab Manual

SSIT

SOLUTION:

MODEL SMALL DATA

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

RESULT:

DelayControlPc

CODEStart: MOV

MOVMOVMOVMOVMOVOUTMOV

Repeat1: MOVNext: MOV

OUTMOV

Repeat: MOVBack: LOOP

DECJNZINCCMPJNZDECJN2MOVINTEND

DBDWDW

(0)0D803H0D802H

AX, @DataDS, AXBX, Offset SeqDX, ControlAL, 80HDI, 020HDX, ALDX, PcSI, 00HAL, BX[SI]DX, ALDelay, 04FFHCX, 0FFFFHBackDelayRepeatSISI, 08HNextDIRepeat IAH, 4CH21HStart

Advanced Microprocessor Lab Manual - 41 -

Page 43: Advanced Microprocessor Lab Manual

32.

SSIT

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

SOLUTION:

MODEL SMALL

STACK 20DATA

Num DB 1, 1, 1, 1Disptbl DB 3, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 1, 9

PaPbPcControl EQU

CODE

EQUEQUEQU0C803H

0C800H0C801H0C802H

Start: MOVMOVMOVMOVOUTCALLMOVINTBcd4disp procMOV

Nxtchar: MOVMOVLEAXLAT

Nxtseg: MOVOUTMOVMOVMOVOUTMOV

AX, @DataDS, AXAL, 90HDX, ControlDX, ALBcd4dispAH, 4CH21H

SI, 3HAH, 8AL, Num[SI]BX, Disptbl

DX, PbDX, ALCH, ALAL, 0DX, PcDX, ALAL, 0F0H

Advanced Microprocessor Lab Manual - 42 -

Page 44: Advanced Microprocessor Lab Manual

33.

SSIT

OUTDEC

DX, AXAH

JZMOV

OverchkAL, CH

a

RORJMP

Overchk: DECCMPJNE

AL, 1NxtsegSISI, -1Nxtchar

f

e

b

g

c

RETBcd4disp ENDP

d

END StartFor example: for1

abcdefg1 0 0 1 1 1 1 = 9FH

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

SOLUTION:MODEL SMALL

STACK 20DATANum1Num2Msg

DBDBDB

1, 1, 1, 10AH, 0BH, 0CH, 0DH‘Press any key to return to DOS’, 13H, 10H, ‘$’

Disptbl DB 3, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 1H, 9H,

Advanced Microprocessor Lab Manual - 43 -

Page 45: Advanced Microprocessor Lab Manual

SSIT

11H, 1H, 63H, 3H

PaPbPcControl EQUCODE

EQUEQUEQU0C803H

0C800H0C801H0C802H

Start: MOVMOVMOVMOVOUTMOVLEAINT

Again: MOVMOVINTJNZLEACALLCALLLEACALLCALLJMP

Last: MOVINTDELAYMOVAgainMOV

Again 2 : LOOPPOPCDECJN2RETDELAYBcd4disp ProcMOV

Nxtchar: MOVMOV

Advanced Microprocessor Lab Manual

AX, @DataDS, AXAL, 90HDX, ControlDX, ALAH, 9DX, Msg21HAH, 6DL, 0FFH21HLastBP, Num1Bcd4dispDelayBP Num 2BCD 4 dispDelagAgainAH, 4CH21HProcCX, 0FFFFH1 PUSH CXCX, OFFFHAgain 2XCXAgain1

Endp

SI, 03HAH, 8AL, DS:[BP+SI]

- 44 -

Page 46: Advanced Microprocessor Lab Manual

SSIT

LEAXLAT

Nxtseg: MOVOUTMOVMOVMOVOUTMOVOUTDECJZMOVRORJMP

Overchk: DECCMPJNE

BX, Disptbl

DX, PbDX, ALCH, ALAL, 0DX, PcDX, ALAL, 0F0HDX, ALAHOverchkAL, CHAL, 1NxtsegSISI, -1Nxtchar

RETBcd4disp ENDPEND

f

e

a

g

Start

b

c

d

For example: for1

abcdefg1 0 0 1 1 1 1 = 9FH

Advanced Microprocessor Lab Manual - 45 -

Page 47: Advanced Microprocessor Lab Manual

34.

SSIT

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

SOLUTION:

MODEL SMALL STACK DATA

Prompt DB ‘Press any key to return to DOS’, 13H, 10H, ‘$’Msg DB ‘The row & column info of the key pressed are as follows’

AskiresPaPbPcControl

CODE

DBEQUEQUEQUEQU

?, ‘’, ?, 13, 10, ‘$’0D800H0D801H0D802H0D803H

Start: MOVMOVMOVMOVOUTMOVLEAINT

Again: MOVMOVINTJNZCALLCMPJEADDMOV

AX, @DataDS, AXAL, 90HDX, ControlDX, ALAH, 09HDX, Prompt21HAH, 6DL, 0FFH21HQuitScanSI, 0AgainBH, 30H

ADDMOVMOV

Advanced Microprocessor Lab Manual

AH, 30HAskires+2, AHAH, 9

- 46 -

Page 48: Advanced Microprocessor Lab Manual

SSIT

LEAINTMOV

DX, Msg21HAH, 0FFH

Here1:Here:

Quit:

Nxtrow:

MOVLOOPDECJNZJMPMOVINTSCANMOVMOVMOVMOVROL

CX, 0FFFFHHereAHHere1AgainAH, 4CH21HProcSI, 0CX, 3BH, 0AL, 80HAL, 1

MOVMOVOUTSUBINCMPJNZMOVINCLOOP

Keyid: MOVMOVMOV

Again2: RORJCINCLOOP

Skip RETSCANEND

RESULT:

Advanced Microprocessor Lab Manual

BL, ALDX, PcDX, ALDX, 2AL, DXAL, 0KeyidAL, BLBHNxtrow

SI, 1CX, 8AH, 0AL, 1SkipAHAgain2

ENDPStart

- 47 -

Page 49: Advanced Microprocessor Lab Manual

35.

SSIT

Program to cheek for not gate operation using logic controller.

SOLUTION:

Code SegmentAssume CD: CODE

Start: MOVMOVOUTMOVINNOTDECOUTMOVINTEND

DX, 0D803HAL, 8AHDX, ALDX, 0D801HAL, DXALDXDX, ALAH, 4CH21HSTART

Advanced Microprocessor Lab Manual - 48 -

Page 50: Advanced Microprocessor Lab Manual

SSIT

END

RESULT:

Advanced Microprocessor Lab Manual - 49 -