Advanced Microprocessor Lab Manual
Advanced Microprocessor Lab Manual
S ri S id d h a rth a In stitu te o f T e ch n o
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.
-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
-2-
SSIT
a ) W r ite a p ro g r a m to m o v e a n e le m e n t a t L o c 1 to L o c 2 u s in g b a s e -p m ode.
SOLUTION:
MODEL SMALL DATA A r r a yD B DB 78H DB 20 CODE MOV MOV MOV MOV MOV MOV MOV MOV INT END AX, @Data DS, AX BX, offset array SI, 05H CL, [BX+SI] SI, 11H [BX+SI], CL AH, 4CH 21H DUP (?) DUP (?)
RESULT:
b ) W rite a p ro g ra m to m o v e a n e le m e n t a t L o c 1 to L o c 2 u s in g re g . r a d d re s s in g m o d e .
SOLUTION:
MODEL SMALL DATA A r r a yD B DB 78H DB 20 DUP (?) DUP (?)
CODE
-3-
SSIT
AX, @Data DS, AX BX, offset array CL, [BX+05H] [BX+11H], CL AH, 4CH 21H
RESULT:
RESULT:
SOLUTION:
2 .
-4-
SSIT
MODEL SMALL DATA Data1 DB Count DW 10H, 20H, 30H, 40H, 50H 0005H
CODE
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
REP:
RESULT:
MOV MOV LEA LEA MOV NEXT: MOV MOV XCHG MOV
MOV
-5-
SSIT
RESULT:
-6-
SSIT
DS, AX BX, Data2 BX, Data4 CX, Data1 CX, Data3 AH, 4CH 21H
RESULT:
RESULT:
4 .
-7-
SSIT
RESULT:
RESULT:
-8-
SSIT
RESULT:
RESULT:
MODEL TINY
5 .
5 .
6 .(a )
-9-
SSIT
CODE MOV MOV MUL MOV MOV INT END AX, 0123H BX, 1155H BX CX, AX AH, 4CH 21H
RESULT:
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
- 10 -
6 .
SSIT
RESULT:
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu al
- 11 -
6 .
SSIT
RESULT:
RESULT:
Ad va
- 12 -
6 .
SSIT
RESULT:
7 .(a )
SSIT
RESULT:
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu al
- 14 -
7 .
SSIT
RESULT:
RESULT:
Ad
7 .
- 15 -
7 .
SSIT
RESULT:
MOV MOV
SSIT
RESULT:
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma
nual
- 17 -
1 0
SSIT
AX, @Data DS, AX AX, Data1 BX, Data2 DX, 0H AX DX BX DX, 0H Next
Ad va
- 18 -
1 1
SSIT
POP POP ADD JNC INC JMP Next: POP POP MOV INT END
RESULT:
0005H 0002H
- 19 -
1 2
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:
1 3
SOLUTION:
MODEL SMALL
- 20 -
SSIT
DATA MSG 1 MSG 2 DB ENTERED NUMBER IS POSITIVE. $ DB ENTERED NUMBER IS NEGATIVE . $ D A T AD B ? MSG 3 DB ENTERED NUMBER IS. $ STACK CODE MOV MOV MOV ROL JC LEA MOV INT JMP Next: LEA MOV INT Last: MOV INT END AX, @Data DS, AX AL, DATA AL, 01 Next DX, MSG1 AH, 09H 21H Last DX, MSG2 AH, 09H 21H AH, 4CH 21H
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu al
- 21 -
SSIT
A X , @ D a ta DS, AX BL, 24H BL, 01 Down D X, M SG 2 AH, 09H 21H Last D X, M SG 1 AH, 09H 21H AH, 4CH 21H
RESULT:
1 4
1 5
SSIT
RESULT:
RESULT:
- 23 -
1 6
SSIT
MOV MOV MOV LEA LEA ADD Next: DEC MOV MOV INC LOOP LEA LEA MOV
AX, @ Data DS, AX CX, Count SI, Array1 DI, Array2 DI, Count DI AL, [SI] [DI], AL SI Next SI, Array1 DI, Array2 CX, Count
- 24 -
1 7
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:
W r i t e a p r o g r a m t o a d d s e r i e s o f 8 - b i t n u m b e r s c o n s i d e r in g p o s s i b l e o v
SOLUTION:
MODEL SMALL DATA Array Count CODE MOV MOV MOV LEA XOR Start: A D D JNC INC Next: INC LOOP MOV INT DB DW 99H, 0ABH, 33H, 84H, 65H 0005H
A X , @ D a ta DS, AX CX, Count S I , A rr a y AX, AX AL, [SI] Next AH SI Start AH , 4CH 21H
Ad va nc ed
1 8
SSIT
END
RESULT:
MOV MOV MOV MOV DEC LEA MOV Next: INC INC ADD JC LOOP Last INC LOOP MOV INT END
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:
20H, 10H,
30H, 50H,
40H 0005H
- 26 -
1 9
2 0
SSIT
MOV LEA DEC MOV MOV Next: INC CMP JC LOOP JMP Down X C H G 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
Note:-
RESULT:
2 1
- 27 -
SSIT
MODEL SMALL DATA Array Count DW DW 2020H, 1010H, 3030H, 5500H, 4040H 0005H
CODE
MOV MOV MOV LEA Next: MOV INC INC CMP JNC LOOP Down: X C H G DEC DEC MOV LOOP MOV INT END
A X , @ D a ta DS, AX CX, Count S I , A r ra y B X , [SI] SI SI B X , [SI] Down Next B X , [SI] SI SI [SI], B X Next AH, 4CH 21 H
N o t e : o -r d e s c e n d in g c h a n g e J N C t o J C F
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu al
- 28 -
SSIT
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu al
2 2
- 29 -
SSIT
- 30 -
SSIT
DI, CX DL, [BX+DI] AH, 02H 21H DI Back AH, 4CH 21H
RESULT:
THE KEY FOUND IN THE POSITION, 13, 10, $ NOT FOUND, 13, 10, $ AX, @ Data DS, AX SI, 00H CX, Count AX, NI[SI] AX, Key Suc SI
M O V M O V M O V M O V N e x tM O V : C M P JZ IN C
- 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:
AX, @Data DS, AX AL, Num BL, 00H CX, 03H AL, 01H
Ad va nc
2 4
SSIT
JC LOOP MOV MOV B a c k : SHR JNC INC N e x t : LOOP CMP JNE LEA MOV INT JMP E x it : LEA MOV INT JMP L a s t : 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:
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 $
- 33 -
2 5
SSIT
FDL DW ? DATA ENDS CODE SEGMENT ASSUME CS: CODE DS, ; DATA Start: M O V 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:
- 34 -
SSIT
CODE SEGMENT MAIN ROC ASSUME Start: P U S H XOR PUSH MOV MOV MOV MOV INT MAIN CODE END
FAR
CS: CODE,DS : DATA DS AX, AX AX AX, DATA DS, AX AH, 09H DX, Offset MSG 21H END P ENDS START
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu al
2 6
- 35 -
SSIT
- 36 -
2 7
SSIT
RESULT:
Write a program to convert a given binary number into its BCD equivalent.
SOLUTION:
MODEL SMALL DATA N1 RES CODE S t a r tM O V : M O V M O V M O V M O V C A L L M O V M O V C A L L M O V R O L M O V OR M O V M O V IN T 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
Ad va
DB DW
? ?
- 37 -
2 8
SSIT
BCD MOV REPEAT: SUB JC INC JMP NEXT: ADD RET ENDP END
RESULT:
Write a program to convert a given BCD number into its binary equivalent
SOLUTION:
MODEL SMALL DATA N1 DB RES DW ? CODE S t a r tM O V : M O V M O V A M M P U S H M O V M U V 72D
- 38 -
2 9
SSIT
RESULT:
0D803H 0D802H
3 0
SSIT
CODE Start: M O V MOV MOV MOV MOV MOV OUT MOV Repeat1:M O V Next: MOV OUT MOV Repeat: M O V Back: L O O P 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:
D e v e lo p a n d e x e c u te a p r o g r a m to d r iv e a s te p p e r m o to r in te r fa c e to r in N - s te p s .
Ad va nc ed Mi cro pr
- 40 -
3 1
SSIT
SOLUTION:
MODEL SMALL DATA Seq DB 3H, 1H, 9H, 8H, 0CH, 4H, 6H, 2H (0) 0D803H 0D802H 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, 04FFH CX, 0FFFFH Back Delay Repeat SI SI, 08H Next DI Repeat I AH, 4CH 21H Start
RESULT:
Ad va nc ed Mi cro pr oc es sor La b Ma nu
al
- 41 -
SSIT
Num
3, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 1, 9 EQU 0C800H EQU 0C801H EQU 0C802H 0C803H
Start: M O V MOV MOV MOV OUT CALL MOV INT B c d 4 d is p p r o c MOV Nxtchar:M O V MOV LEA XLAT Nxtseg: M O V OUT MOV MOV MOV OUT MOV
AX, @Data DS, AX AL, 90H DX, Control DX, AL Bcd4disp AH, 4CH 21H SI, 3H AH, 8
AL, Num[SI] BX, Disptbl DX, Pb DX, AL CH, AL AL, 0 DX, Pc DX, AL AL, 0F0H
3 2
Advanced Microprocessor Lab Manual - 42 -
SSIT
b g
c d
abcdefg 1 0 0 1 1 1 1 = 9FH
D isptbl DB
1, 1, 0AH, 0BH, 0CH, 0DH 1, 1 Press any key to return to DOS, 13H, 10H, $ 3, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 1H, 9H,
- 43 -
3 3
SSIT
11H, 1H, 63H, 3H Pa EQU 0C800H Pb EQU 0C801H Pc EQU 0C802H C o n t r o EQ U 0 C 8 0 3 H l 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 :L O O P POPC DEC JN2 RET DELAY B c d 4 d is MOV Nxtchar: MOV MOV 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 p P ro c SI, 03H AH, 8 AL, DS:[BP+SI]
- 44 -
SSIT
LEA XLAT Nxtseg: MOV OUT MOV MOV MOV OUT MOV OUT DEC JZ MOV ROR JMP Overchk: DEC CMP JNE
BX, Disptbl DX, Pb DX, AL CH, AL AL, 0 DX, Pc DX, AL AL, 0F0H DX, AL AH Overchk AL, CH AL, 1 Nxtseg SI SI, -1 Nxtchar
a f g e d c b
- 45 -
SSIT
- 46 -
3 4
SSIT
LEA INT MOV H e r e 1 :MOV H e r e : LOOP DEC JNZ JMP Q u it : MOV INT SCAN MOV MOV MOV MOV N x t r o w ROL : MOV MOV OUT SUB IN CMP JNZ MOV INC LOOP Keyid: MOV MOV MOV Again2: R O R 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:
- 47 -
SSIT
Start: M O V 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
- 48 -
SSIT
END
RESULT:
- 49 -