advanced microprocessor lab manual
TRANSCRIPT
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
-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
-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
-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
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
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
-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
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
-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
-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
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
SSIT
END
RESULT:
Advanced Microprocessor Lab Manual - 49 -