Documente Academic
Documente Profesional
Documente Cultură
For
V Semester B.E. (Electronics & Communication Engineering)
Name
Reg. No
Batch
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
-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
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:
-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.
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
-5-
SSIT
INC
INC
INC
INC
LOOP
MOV
INT
END
SI
SI
DI
DI
NEXT
AH, 4CH
21H
RESULT:
MODEL SMALL
DATA
Data1
Data2
Data3
Data4
CODE
MOV
DW
DW
DW
DW
1234H
7678H
8674H
9811H
AX, @ Data
-6-
SSIT
MOV
MOV
ADD
MOV
ADC
MOV
INT
END
DS, AX
BX, Data2
BX, Data4
CX, Data1
CX, Data3
AH, 4CH
21H
RESULT:
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)
SOLUTION:
MODEL TINY
CODE
MOV
AH, 00H
-7-
SSIT
MOV
ADD
AAA
ADD
MOV
INT
END
AL, 39H
AL, 31H
AX, 3030H
AH, 4CH
21H
RESULT:
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:
-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)
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)
SOLUTION:
MODEL TINY
-9-
SSIT
CODE
AX, 0123H
BX, 1155H
BX
CX, AX
AH, 4CH
21H
MOV
MOV
MUL
MOV
MOV
INT
END
RESULT:
6.(b)
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
- 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)
SOLUTION:
MODEL TINY
CODE
MOV
MOV
MUL
AAM
MOV
INT
END
AL, 05H
BL, 09H
BL
ADD AX, 3030H
AH, 4CH
21H
RESULT:
- 11 -
SSIT
MODEL TINY
CODE
MOV
MOV
IMUL
MOV
INT
END
AL, -32H
CL, -06H
CL
AH, 4CH
21H
RESULT:
6.(e)
SOLUTION:
MODEL TINY
CODE
MOV
MOV
IMUL
MOV
INT
END
AX, -1234H
CX, -0ABCAH
CX
AH, 4CH
21H
RESULT:
- 12 -
SSIT
7.(a)
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:
MODEL TINY
CODE
MOV
DX, 1111H
- 13 -
SSIT
MOV
MOV
DIV
MOV
MOV
INT
END
AX, 1890H
BX, 2345H
BX
BX, AX
AH, 4CH
21H
RESULT:
7.(c)
SOLUTION:
MODEL TINY
CODE
MOV
MOV
AAD
DIV
MOV
MOV
INT
END
AX, 0607H
CH, 09H
CH
BL, AH
AH, 4CH
21H
RESULT:
- 14 -
SSIT
7.(d)
SOLUTION:
MODEL TINY
CODE
MOV
MOV
IDIV
MOV
MOV
INT
END
AX, -1234H
BL, 34H
BL
BL, AH
AH, 4CH
21H
RESULT:
7.(e)
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:
- 15 -
SSIT
8.
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.
SOLUTION:
MODEL SMALL
DATA
Var DW
CODE
MOV
MOV
MOV
MOV
____
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.
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:
- 17 -
SSIT
11.
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
- 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.
SOLUTION:
MODEL SMALL
DATA
Data1
Data2
HCF DW
CODE
MOV
MOV
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.
SOLUTION:
MODEL SMALL
- 20 -
SSIT
DATA
MSG1
MSG2
MSG3
STACK
CODE
DB
DB
DATA DB ?
DB
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:
- 21 -
SSIT
14.
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
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.
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
- 22 -
SSIT
JMP
Down: INC
LOOP
Last: MOV
INT
END
Last
DL
Next
AH, 4CH
21H
RESULT:
16.
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:
- 23 -
SSIT
17.
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
- 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.
SOLUTION:
MODEL SMALL
DATA
Array
Count
CODE
MOV
MOV
MOV
LEA
XOR
Start: ADD
JNC
INC
Next: INC
LOOP
MOV
INT
DB
DW
AX, @ Data
DS, AX
CX, Count
SI, Array
AX, AX
AL, [SI]
Next
AH
SI
Start
AH, 4CH
21H
- 25 -
SSIT
END
RESULT:
19.
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
RESULT:
20.
SOLUTION:
MODEL SMALL
DATA
Array
Count
CODE
MOV
DB
DW
AX, @ Data
- 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
Note:-
RESULT:
21.
SOLUTION:
- 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
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
- 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:
- 29 -
SSIT
23.(a)
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
- 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)
SOLUTION:
MODEL SMALL
DATA
N1
Key
Count
M1
Res
M2
CODE
MOV
MOV
MOV
MOV
Next: MOV
CMP
JZ
INC
DB
DW
DB
DB
DB
AX, @ Data
DS, AX
SI, 00H
CX, Count
AX, NI[SI]
AX, Key
Suc
SI
- 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.
SOLUTION:
MODEL SMALL
DATA
M1
DB
M2
DB
Num DB
3H
CODE
Start: MOV
MOV
MOV
MOV
MOV
Repeat: SHL
AX, @Data
DS, AX
AL, Num
BL, 00H
CX, 03H
AL, 01H
- 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 $
- 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:
- 34 -
SSIT
26.
SOLUTION:
DATA SEGMENT
MSG
DB
DATA ENDS
CODE SEGMENT
MAIN
ASSUME
Start: PUSH
XOR
PUSH
MOV
MOV
MOV
MOV
INT
MAIN
CODE
END
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:
- 35 -
SSIT
27.
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
- 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
- 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
- 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.
SOLUTION:
MODEL SMALL
DATA
Seq
DB
Delay
Control
DW
Pc
DW
- 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.
- 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:
- 41 -
SSIT
32.
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
- 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
abcdefg
1 0 0 1 1 1 1 = 9FH
33.
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,
- 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
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
- 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
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:
- 47 -
SSIT
35.
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
- 48 -
SSIT
END
RESULT:
- 49 -