toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
MCSL 017 Assembly Language Programming Manual
Sessions 3 and 4:
1. Write a program to add two numbers present in two consecutive memory locations and store the
result in next memory location.
.model small
.data
n1 db 12h
n2 db 13h
res db ?
.code
mov ax, @data
mov ds, ax
mov al, n1
add al, n2
mov res, al
mov ah, 4ch
int 21h
end
2. Develop program to read a character from console and echo it.
.model small
.data
msg1 db 'Enter a Character : $'
msg2 db 10,13,'Your Input is : $'
.code
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg1
int 21h
mov ah, 1
int 21h
mov bl, al
mov ah, 9
lea dx, msg2
int 21h
mov dl, bl
mov ah, 2
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
1 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
3. Develop and execute a program to read 10 chars from console.
.model small
.data
msg1 db 'Enter 10 Characters : $'
msg2 db 10,13,'Your Input is : $'
chars db 10 dup(?)
.code
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg1
int 21h
lea si, chars
mov cl, 10
mov ah, 1
agn:
int 21h
mov [si], al
inc si
dec cl
jnz agn
mov ah, 9
lea dx, msg2
int 21h
lea si, chars
mov cl, 10
mov ah, 2
nxt:
mov dl, [si]
int 21h
inc si
dec cl
jnz nxt
mov ah, 4ch
int 21h
end
MCSL 017
2 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
4. Write a program to exchange two memory variables using MOV and XCHG instruction. Can you do
it with just XCHG?
.model small
.data
n1 db 12h
n2 db 13h
.code
mov ax, @data
mov ds, ax
mov al, n1
xchg al, n2
mov n1,al
mov ah, 4ch
int 21h
end
Using XCHG only:
.model small
.data
n1 db 12h
n2 db 13h
.code
mov ax, @data
mov ds, ax
xchg al, n1
xchg al, n2
xchg n1,al
mov ah, 4ch
int 21h
end
MCSL 017
3 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
5. Write a program to find the sum of two BCD numbers stored in memory.
.model small
.data
n1 db 12h
n2 db 13h
res db ?
.code
mov ax, @data
mov ds, ax
mov al, n1
add al, n2
daa
mov res, al
mov ah, 4ch
int 21h
end
MCSL 017
4 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
6. Write a program, which will read two decimal numbers, then multiply them together, and finally
print out the result (in decimal).
.model small
.data
msg1 db 'Enter First Decimal Digit : $'
msg2 db 10,13,'Enter Second Decimal Digit : $'
msg3 db 10,13,'Multiplied Result : $'
.code
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg1
int 21h
mov ah, 1
int 21h
sub al, 30h
mov bl, al
mov ah, 9
lea dx, msg2
int 21h
mov ah, 1
int 21h
sub al, 30h
mul bl
aam
add ax, 3030h
mov bx, ax
mov ah, 9
lea dx, msg3
int 21h
mov dl, bh
mov ah, 2
int 21h
mov dl, bl
mov ah, 2
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
5 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
7. Write a program to convert the ASCII code to its BCD equivalent.
.model small
.data
ascii db 46H ;for Hex ditits 30h-39h,41h-46h
bcd db ?
.code
mov ax, @data
mov ds, ax
mov al, ascii
cmp al, 39h
jbe sub30
sub al, 7h
sub30:
sub al, 30h
daa
mov bcd, al
mov ah, 4ch
int 21h
end
MCSL 017
6 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
8. Write a program, which will read in two decimal inputs and print out their sum, in decimal.
.model small
.data
msg1 db 'Enter First Decimal Digit : $'
msg2 db 10,13,'Enter Second Decimal Digit : $'
msg3 db 10,13,'Addition Result : $'
.code
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg1
int 21h
mov ah, 1
int 21h
sub al, 30h
mov bl, al
mov ah, 9
lea dx, msg2
int 21h
mov ah, 1
int 21h
sub al, 30h
add al, bl
aam
add ax, 3030h
mov bx, ax
mov ah, 9
lea dx, msg3
int 21h
mov dl, bh
mov ah, 2
int 21h
mov dl, bl
mov ah, 2
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
7 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
9. Write a program, which will read in two decimal inputs and print out the smaller of the two, in
decimal.
.model small
.data
msg1 db 'Enter First Decimal Digit : $'
msg2 db 10,13,'Enter Second Decimal Digit : $'
msg3 db 10,13,'Smallest : $'
.code
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg1
int 21h
mov ah, 1
int 21h
mov bl, al
mov ah, 9
lea dx, msg2
int 21h
mov ah, 1
int 21h
mov bh, al
mov ah, 9
lea dx, msg3
int 21h
cmp bl, bh
jb lessbl
mov dl, bh
jmp disp
lessbl:
mov dl, bl
disp:
mov ah, 2
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
8 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
10. Write a program to calculate the average of three given numbers stored in memory.
.model small
.data
n1 db 2
n2 db 3
n3 db 3
avg db ?
.code
mov ax, @data
mov ds, ax
xor ah, ah
mov al, n1
add al, n2
jnc adnxt
inc ah
adnxt:
add al, n3
jnc cntnu
inc ah
cntnu:
mov bl, 3
div bl
mov avg, al
mov ah, 4ch
int 21h
end
MCSL 017
9 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
11. Write a program in 8086 assembly language to find the volume of sphere using following
formula: V = 4/3π r3
;find the volume of sphere using following formula: V = 4/3 pi r3
.model small
.data
r db 3
v db ?
.code
mov ax, @data
mov ds, ax
mov al, r
mul al
mul r
mov bl ,al
mov al, 88
mov cl, 21
div cl
mul bl
mov v, al ; result in hexa decimal
mov ah, 4ch
int 21h
end
MCSL 017
10 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
12. Write a program to evaluates 3 * (x^3) + 4x + 5 if flag = = 1 or evaluates 7x + 8 if flag = = 0.
Assume x is a 16-bit unsigned integer.
;evaluates 3 * (x^3) + 4x + 5 if flag = = 1
;evaluates 7x + 8 if flag = = 0
.model small
.data
flag db 1
x dw 2
res dw ?
.code
mov ax, @data
mov ds, ax
cmp flag, 1
jne eq2
mov ax, 3
mul x
mul x
mul x
mov cx, ax ; assume result doest not exceed 16 bit
mov ax, 4
mul x
add ax, 5
add ax, cx
jmp xit
eq2:
mov ax, 7
mul x
add ax, 8
xit:
mov res, ax
mov ah, 4ch
int 21h
end
MCSL 017
11 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
13. Write a program to convert Centigrade (Celsius) to Fahrenheit temperature measuring scales.
Using formula: Celsius = (Fahrenheit - 32) * 5 / 9
;convert Centigrade (Celsius) to Fahrenheit temperature
;formula: Celsius = (Fahrenheit - 32) * 5 / 9
; i.e f = (c * 9 / 5) + 32
.model small
.data
c db 40
f db ?
.code
mov ax, @data
mov ds, ax
mov cl, 32
mov al, 9
mov bl, 5
mul c
div bl
add al, cl
mov f, al ; result in hexadecimal
mov ah, 4ch
int 21h
end
MCSL 017
12 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
14. Write a Program which adds the sales tax in the Price list of items and replace the Price list with a
new list.
;adds the sales tax in the Price list of items
;replace the Price list with a new list
.model small
.data
price db 20h, 30h, 40h, 50h, 60h,70h
tax db 3, 4, 5, 6, 7, 8
n db tax - price
.code
mov ax, @data
mov ds, ax
mov es, ax ; since di used
mov cl, n
lea si, price
lea di, tax
nxt:
mov al , [di]
add [si], al
inc si
inc di
dec cx
jnz nxt
mov ah, 4ch
int 21h
end
MCSL 017
13 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
Sessions 5, 6 and 7:
1. Write a program to find the factorial of decimal number given by user.
;factorial of decimal number given by user
.model small
.data
n db 5
f db ?
.code
mov ax, @data
mov ds, ax
mov cl, n
mov al, 1
agn:
cmp cl, 0
jbe xit
mul cl
dec cl
jmp agn
xit:
mov f, al
mov ah, 4ch
int 21h
end
MCSL 017
14 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
2. Write a program to find nCr for a given n and r.
.model small
.data
n db 5
r db 2
ncr db ?
.code
mov ax, @data
mov ds, ax
xor ch, ch
mov cl, n
mov al, 1
forn:
mul cl
loop forn
mov bl, al ;n!
mov cl, r
mov al, 1
forr:
mul cl
loop forr
mov bh, al ;r!
mov al, 1
mov cl, n
sub cl, r ; cl <- n-r
jcxz xitnr
fornr:
mul cl
loop fornr
xitnr:
mul bh ;(n-r)! * r!
mov cl, al
mov al, bl
div cl ;n! / {(n-r)! * r!)
daa
mov ncr, al
mov ah, 4ch
int 21h
end
MCSL 017
15 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
3. Write a program to arrange given N numbers in descending order.
;Signed Descending order
.model small
.data
a db 34h,78h,56h,47h,0,90h
len dw len-a ;len=no of elements
.code
mov ax,@data
mov ds,ax
mov bx,len
dec bx ;bx=no of passes needed to complete sorting(n-1)
outlup:
mov cx,bx ;cx=no of comparisions to be performed in a pass
mov si,0
inlup:
mov al,a[si]
inc si
cmp al,a[si]
ja go_on
xchg al,a[si]
mov a[si-1],al
go_on:
loop inlup ;dec cx,until cx=0
dec bx
jnz outlup
mov ah, 4ch
int 21h
end
MCSL 017
16 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
4. Write a program, which will read in decimal inputs repeatedly until a zero value is read; at this
point, it should print out the sum of the numbers read in so far.
.model small
.data
msg1 db 10,13,'Enter Decimal Digit (0 to Stop): $'
msg2 db 10,13,'The sum : $'
.code
mov ax, @data
mov ds, ax
mov bl, 0
nxt:
mov ah, 9
lea dx, msg1
int 21h
mov ah, 1
int 21h
cmp al, '0'
je xit
sub al, 30h
add al, bl
mov bl, al
jmp nxt
xit:
mov ah, 9
lea dx, msg2
int 21h
mov al, bl
aam
add ax, 3030h
mov bx, ax
mov dl, bh
mov ah, 2
int 21h
mov dl, bl
mov ah, 2
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
17 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
5. Develop and execute an assembly language program to find the LCM of two 16-bit unsigned
integers.
.model small
.data
n1 dw 8000
n2 dw 9000
lcml dw ?
lcmh dw ?
.code
mov ax,@data
mov ds,ax
mov dx,0
mov ax,n1 ;dx_ax=25
mov bx,n2 ;bx=15
again:
push ax
push dx
div bx
cmp dx,0 ;remainder of the division is stored in dx
je exit
pop dx
pop ax
add ax,n1
jnc noincdx
inc dx
noincdx:
jmp again
exit:
pop lcmh
pop lcml
mov ah, 4ch
int 21h
end
MCSL 017
18 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
6. Develop and execute an assembly language program to find the HCF of two unsigned 16-bit
numbers.
.model small
.data
val1 dw 30
val2 dw 75
gcd dw ?
.code
mov ax,@data
mov ds, ax
mov ax, val1
mov bx, val2
again:
cmp ax,bx
je exit
jb bigbx
divaxbx:
mov dx,0
div bx
cmp dx,0
je exit
mov ax,dx
jmp again
bigbx:
xchg ax,bx
jmp divaxbx
exit:
mov gcd,bx
mov ah, 4ch
int 21h
end
MCSL 017
19 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
7. Write a program for finding the largest number in an array of 10 elements.
;Largest
.model small
.data
a db 34h,78h,56h,47h,0,90h, 22h,88h,12h
len dw $-a ;len=no of elements
lrg db ?
.code
mov ax,@data
mov ds,ax
lea si, a
mov al, [si]
mov cx,len
nxt:
cmp al, [si]
jae cntnu
mov al,[si]
cntnu:
inc si
loop nxt
mov lrg, al
mov ah, 4ch
int 21h
end
MCSL 017
20 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
8. Develop and execute a program to sort a given set of 8-bit unsigned integers into ascending order.
;Unsigned Ascending order
.model small
.data
a db 34h,78h,56h,47h,0,90h
len dw $-a ;len=no of elements
.code
mov ax,@data
mov ds,ax
mov bx,len
dec bx ;bx=no of passes needed to complete sorting(n-1)
outlup:
mov cx,bx ;cx=no of comparisions to be performed in a pass
mov si,0
inlup:
mov al,a[si]
inc si
cmp al,a[si]
jb go_on
xchg al,a[si]
mov a[si-1],al
go_on:
loop inlup ;dec cx,until cx=0
dec bx
jnz outlup
mov ah, 4ch
int 21h
end
MCSL 017
21 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
9. Develop and execute an assembly language program to sort a given set of 16-bit unsigned integers
into descending order.
;16 bit Unsigned Descending order
.model small
.data
a dw 5678h,1234h,3456h,2345h,4567h,6789h
len dw ($-a)/2 ;len=no of elements
.code
mov ax,@data
mov ds,ax
mov bx,len
dec bx ;bx=no of passes needed to complete sorting(n-1)
outlup:
mov cx,bx ;cx=no of comparisions to be performed in a pass
mov si,0
inlup:
mov ax,a[si]
inc si
inc si
cmp ax,a[si]
ja go_on
xchg ax,a[si]
mov a[si-2],ax
go_on:
loop inlup ;dec cx,until cx=0
dec bx
jnz outlup
mov ah, 4ch
int 21h
end
MCSL 017
22 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
10. Write a Program which adds the sales tax in the Price list of items and replace the Price list with
calculated values.
;adds the sales tax in the Price list of items
;replace the Price list with a new list
.model small
.data
price db 20, 30, 40, 50, 60,70
tax db 5, 4, 5, 3, 2, 2
n db tax - price
.code
mov ax, @data
mov ds, ax
mov es, ax ; since di used
mov cl, n
mov bl, 100
lea si, price
lea di, tax
nxt:
mov al , [di]
mul [si]
div bl
add [si], al
inc si
inc di
loop nxt
mov ah, 4ch
int 21h
end
MCSL 017
23 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
11. Write a program to Convert ASCII number into decimal digit.
;ASCII to Decimal
.model large
.stack 100h
.model small
.data
asci db 'z'
bcd dw 0
.code
mov ax, @data
mov ds,ax
mov bl, 10
mov cl, 0
mov al, asci
nxt:
mov ah, 0
div bl
mov ch,al
xchg al, ah
cbw
shl ax, cl
or bcd, ax
add cl, 4
mov al, ch
cmp al, 0
jnz nxt
mov ah,4ch
int 21h
end
MCSL 017
24 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
12. Write a Program for performing the following operation. Z=((A-B)/10*C) ** 2
;z= ((a-b) /10 *c) **2
.model small
.data
a db 60
b db 20
c db 5
Z dw ?
.code
mov ax, @data
mov ds, ax
mov ah, 0
mov bl, 10
mov al, a
sub al, b
div bl
mul c
mul al
mov z, ax
mov ah, 4ch
int 21h
end
MCSL 017
25 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
13. Write a Program for adding an array of Binary Digits.
;add array of binar digits
.model small
.data
bin db 1,0,1,1,1,1,1,1,1,0,1
len dw len-bin
res db ?
.code
mov ax, @data
mov ds, ax
lea si, bin
mov cx, len
mov al, 0
nxt:
test [si], 1
jz cntnu
inc al
cntnu:
inc si
loop nxt
mov res, al
mov ah, 4ch
int 21h
end
MCSL 017
26 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
14. Write a Program, which takes the input of 4-digit number, and display the sum of square of digits
as given below.
Example: Input = 4721
42
+72
+22
+12
= 16+49+4+1
Result = 70. (Display)
;Squarte & add digits
.model small
.data
msg1 db 10,13,'Enter a 4 digit decimal number : $'
n dw 0
msg2 db 10,13,'Addition of Square of all digits : $'
dgts db 4 dup(?)
res dw 0
.code
mov ax, @data
mov ds, ax
lea si, dgts
wrng:
lea dx, msg1
mov ah, 9
int 21h
mov cx, 4
mov ah, 1
nxt:
int 21h
cmp al, '0'
jb wrng
cmp al, '9'
ja wrng
sub al, 30h
mov [si], al
inc si
loop nxt
lea si, dgts
mov cx, 4
nxtdgt:
mov al, [si]
mul al
add res, ax
inc si
loop nxtdgt
lea dx, msg2
mov ah, 9
int 21h
MCSL 017
27 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
lea si, dgts
add si, 3
mov bl, 10
mov cx, 4
mov ax, res
xtrct:
div bl
mov [si],ah
dec si
mov ah,0
loop xtrct
lea si, dgts
mov cx,4
mov ah, 2
disp:
mov dl, [si]
add dl, 30h
int 21h
inc si
loop disp
mov ah, 4ch
int 21h
end
MCSL 017
28 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
15. Using the method of "add-and-shift" loop, in which you use the binary digits of one number to
control additions of a shifted version of the other number into a running total; this is essentially the
same algorithm you use when multiplying numbers by hand in decimal.
;Multiply using shift & add
.model small
.data
mulpir db 21h
mulcnd db 30h
res dw 0
.code
mov ax, @data
mov ds, ax
mov cx, 8
mov al, mulcnd
cbw
mov bl, mulpir
nxt:
shr bl, 1
jnc cntnu
add res, ax
cntnu:
shl ax, 1
loop nxt
mov ah, 4ch
int 21h
end
MCSL 017
29 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
16. Write a Program, which should add two 5-byte numbers (numbers are stored in array- NUM1 &
NUM2), and stores the sum in another array named RESULT.
;Adding 2 Five byte Numbers
.model small
.data
num1 db 11h,22h,33h,44h,0f5h,
num2 db 55h,44h,33h,22h,0f1h
res db 6 dup(0)
.code
mov ax, @data
mov ds, ax
mov es, ax
mov cx, 5
lea bx, res
lea si, num1
lea di, num2
nxt:
mov al, [si]
add al, [di]
jnc cntnu
inc [bx+1]
cntnu:
add [bx], al
inc si
inc di
inc bx
loop nxt
mov ah, 4ch
int 21h
end
MCSL 017
30 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
17. Write a program which should convert 4 digits BCD number into its binary equivalent.
.model small
.stack 64
.data
bcd dw 9999h
bin dw 0
.code
mov ax, @data
mov ds, ax
mov bp, bcd ; y not dx?
mov bx, 10
mov cx, 4
nxt:
push cx
mov cl, 4
rol bp, cl
pop cx
mov ax, bin
mul bx
mov bin, ax
mov ax, 0fh
and ax, bp
add bin, ax
loop nxt
mov ah, 4ch
int 21h
end
MCSL 017
31 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
18. Write a program to conduct a binary search on a given sorted array of 16-bit, unsigned integers,
and a given 16-bit unsigned key.
.model small
.data
nos dw 1111h,2222h,4444h,7777h,9999h
len dw (len - nos) / 2
key dw 0A999h
smsg db 'Search Success$'
fmsg db 'Search Failure$'
.code
mov ax, @data
mov ds, ax
mov bx, 1
mov dx, len ;dx=5
mov cx, key ;cx=2345
agn:
cmp bx, dx
ja fail
mov ax, bx
add ax, dx
shr ax, 1
mov si, ax
dec si
add si, si
cmp cx, nos[si]
jae larg
dec ax
mov dx, ax
jmp agn
larg:
je sucs
inc ax
mov bx, ax
jmp agn
sucs:
lea dx, smsg
jmp disp
fail:
lea dx, fmsg
disp:
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
32 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
19. Write a program to convert a string in upper case to lower case or lower case to upper case.
.model small
.data
str db 'UPPERCASE To lowercase$'
len dw len-str
msg1 db 10,13,'Before Convertion : $'
msg2 db 10,13,'After Convertion : $'
.code
mov ax, @data
mov ds, ax
mov es, ax
lea dx, msg1
mov ah, 9
int 21h
lea dx, str
int 21h
lea dx, msg2
int 21h
mov cx, len
lea si, str
mov di, si
nxt:
lodsb
cmp al, 'A'
jb nochg
cmp al, 'Z'
ja toup
add al, 'a' - 'A'
jmp nochg
toup:
cmp al, 'a'
jb nochg
cmp al, 'z'
ja nochg
sub al, 'a' - 'A'
nochg:
stosb
loop nxt
lea dx, str
mov ah, 9
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
33 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
20. Develop cryptographic algorithm where each letter is replaced by a different letter. Given the
mapping of characters to encoded characters, it is simple to translate from encoded to decoded data.
Write a Program, which encodes the string into the ASCII value but not corresponding ASCII value;
shift 5 place left in ASCII and write the encoding string.
;Encryption
.model small
.data
str db 'This is a TEST data XyZ$'
len dw len-str
msg1 db 10,13,'Before Encryption : $'
msg2 db 10,13,'After Encryption : $'
.code
mov ax, @data
mov ds, ax
mov es, ax
lea dx, msg1
mov ah, 9
int 21h
lea dx, str
int 21h
lea dx, msg2
int 21h
mov cx, len
lea si, str
mov di, si
nxt:
lodsb
cmp al, 'A'
jb nochg
cmp al, 'Z'
ja tolow
push cx
mov cx, 5
nxtup:
dec al
cmp al, 'A'
jae ucntnu
mov al, 'Z'
ucntnu:
loop nxtup
pop cx
jmp nochg
MCSL 017
34 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
tolow:
cmp al, 'a'
jb nochg
cmp al, 'z'
ja nochg
push cx
mov cx, 5
nxtlow:
dec al
cmp al, 'a'
jae lcntnu
mov al, 'z'
lcntnu:
loop nxtlow
pop cx
nochg:
stosb
loop nxt
lea dx, str
mov ah, 9
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
35 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
21. Similarly write another Program to Decoding with respect to above problem.
;Decryption
.model small
.data
str db 'Ocdn dn v OZNO yvov StU$'
ulut db 'FGHIJKLMNOPQRSTUVWXYZABCDE'
llut db 'fghijklmnopqrstuvwxyzabcde'
len dw len-str
msg1 db 10,13,'Before Decryption : $'
msg2 db 10,13,'After Decryption : $'
.code
mov ax, @data
mov ds, ax
mov es, ax
lea dx, msg1
mov ah, 9
int 21h
lea dx, str
int 21h
lea dx, msg2
int 21h
mov cx, len
lea si, str
mov di, si
nxt:
lodsb
cmp al, 'A'
jb nochg
cmp al, 'Z'
ja tolow
lea bx, ulut
sub al,'A'
xlat
jmp nochg
tolow:
cmp al, 'a'
jb nochg
cmp al, 'z'
ja nochg
lea bx, llut
sub al,'a'
xlat
MCSL 017
36 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
nochg:
stosb
loop nxt
lea dx, str
mov ah, 9
int 21h
mov ah, 4ch
int 21h
end
MCSL 017
37 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
Session 8:
1. Write a program, which takes two inputs as strings and display the Concatenated string.
;Concatenation of 2 Strings
.model small ;1 ds & 1 CS
.data ;Data Segment
str1b db 53
sl1 db ?
str1 db 51 dup('$')
str2b db 53
sl2 db ?
str2 db 51 dup('$')
cstr db 100 dup('$')
msg1 db 'Enter String 1(Max length 50) :$'
msg2 db 10,13,'Enter String 2(Max length 50) :$'
cmsg db 10,13,'The Concatenated String : $'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
mov es, ax ;initialize ES with Data Segment Base
lea dx, msg1
mov ah, 9
int 21h
lea dx, str1b
mov ah, 0ah
int 21h
lea dx, msg2
mov ah, 9
int 21h
lea dx, str2b
mov ah, 0ah
int 21h
lea si, str1
lea di, cstr
mov cl, sl1
xor ch, ch
jcxz nxt1
cpy1:
lodsb
stosb
loop cpy1
nxt1:
lea si, str2
mov cl, sl2
jcxz nxt2
MCSL 017
38 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
cpy2:
lodsb
stosb
loop cpy2
nxt2:
mov ah, 9
lea dx, cmsg
int 21h
lea dx, cstr
int 21h
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
39 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
2. Write a program, which converts string lower case characters to upper case characters and upper
case characters to lower case characters.
.model small ;1 ds & 1 CS
.data ;Data Segment
strb db 103
sl db ?
str db 101 dup('$')
msg db 'Enter String with Upper & Lower case :$'
cmsg db 10,13,'The Coverted String : $'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
mov es, ax ;initialize ES with Data Segment Base
lea dx, msg
mov ah, 9
int 21h
lea dx, strb
mov ah, 0ah
int 21h
lea dx, cmsg
mov ah, 9
int 21h
mov cl, sl
xor ch, ch
jcxz xit
lea si, str
mov di, si
nxt:
lodsb
cmp al, 'A'
jb nochg
cmp al, 'Z'
ja toup
add al, 'a' - 'A'
jmp nochg
toup:
cmp al, 'a'
jb nochg
cmp al, 'z'
ja nochg
sub al, 'a' - 'A'
nochg:
MCSL 017
40 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
stosb
loop nxt
xit:
lea dx, str
mov ah, 9
int 21h
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
41 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
3. Write a program for reversing a given string.
.model small ;1 ds & 1 CS
.data ;Data Segment
strb db 103
sl db ?
mstr db 101 dup('$')
rstr db 100 dup('$')
msg db 'Enter a String : $'
cmsg db 10,13,'The Reversed String : $'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
mov es, ax ;initialize ES with Data Segment Base
lea dx, msg
mov ah, 9
int 21h
lea dx, strb
mov ah, 0ah
int 21h
lea dx, cmsg
mov ah, 9
int 21h
mov cl, sl
xor ch, ch
jcxz xit
lea si, mstr
lea di, rstr
add si, cx
nxt:
dec si
mov al, [si]
stosb
loop nxt
xit:
lea dx, rstr
mov ah, 9
int 21h
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
42 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
4. Write a program, which converts string to its ASCII value and store in array.
.model small ;1 ds & 1 CS
.data ;Data Segment
strb db 103
sl db ?
str db 101 dup(0) ; ASCII equivalent of string characters
msg db 10,13,'Enter a String : $'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
lea dx, msg
mov ah, 9
int 21h
lea dx, strb
mov ah, 0ah
int 21h
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
43 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
5. Write a program to find if two strings are equal length: and if the strings are found to be of
equivalent length then are they the same, if not the same then which string is lexicographically greater.
;Concatenation of 2 Strins
.model small ;1 ds & 1 CS
.data ;Data Segment
str1b db 103
sl1 db ?
str1 db 101 dup('$')
str2b db 103
sl2 db ?
str2 db 101 dup('$')
msg1 db 10,13,'Enter String 1(Max length 50) :$'
msg2 db 10,13,'Enter String 2(Max length 50) :$'
emsg db 10,13,'The Strings are Equal$'
nemsg db 10,13,'The Strings are NOT Equal Length$'
gmsg db 10,13,'String '
res db ?,' is Greater$'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
mov es, ax ;initialize ES with Data Segment Base
agn:
lea dx, msg1
mov ah, 9
int 21h
lea dx, str1b
mov ah, 0ah
int 21h
lea dx, msg2
mov ah, 9
int 21h
lea dx, str2b
mov ah, 0ah
int 21h
lea si, str1
lea di, str2
mov cl, sl1
cmp cl, sl2
jne diflen
xor ch, ch
jcxz agn
repe cmpsb
je eqlstr
mov al, [si-1]
cmp al, [di-1]
ja gstr1
MCSL 017
44 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
mov res, '2'
jmp dspgstr
gstr1:
mov res, '1'
dspgstr:
lea dx, gmsg
jmp disp:
eqlstr:
lea dx, emsg
jmp disp
diflen:
lea dx, nemsg
disp:
mov ah, 9
int 21h
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
45 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
6. Write a program to determine a given string is a palindrome. If 'Yes' output the message “The
given string is a palindrome”. If 'No' output the message “No, it is not a palindrome”.
.model small ;1 ds & 1 CS
.data ;Data Segment
strb db 103
sl db ?
mstr db 101 dup('$')
rstr db 100 dup('$')
msg db 10,13,'Enter a String : $'
pmsg db 10,13,'Given String is a Polindrome$'
npmsg db 10,13,'Given String is NOT a Polindrome$'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
mov es, ax ;initialize ES with Data Segment Base
agn:
lea dx, msg
mov ah, 9
int 21h
lea dx, strb
mov ah, 0ah
int 21h
mov cl, sl
xor ch, ch
jcxz agn
lea si, mstr
lea di, rstr
add si, cx
nxt:
dec si
mov al, [si]
stosb
loop nxt
mov cl, sl
lea si, mstr
lea di, rstr
repe cmpsb
je equl
lea dx, npmsg
jmp disp
equl:
lea dx, pmsg
MCSL 017
46 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
disp:
mov ah, 9
int 21h
xit:
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
47 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
7. Write a program to search for a character in a given string and calculate the number of
occurrences of the character in the given string.
;Character Search
.model small ;1 ds & 1 CS
.data ;Data Segment
strb db 103
sl db ?
str db 101 dup('$')
msg1 db 10,13,'Enter a String : $'
msg2 db 10,13,'Enter the charector to be searched : $'
msg3 db 10,13,'Given Character'
chr db ?,' Present '
nos db 0,0,' Times$'
.code
mov ax, @data
mov ds, ax ;initialize DS with Data Segment Base
mov es, ax ;initialize ES with Data Segment Base
agn:
lea dx, msg1
mov ah, 9
int 21h
lea dx, strb
mov ah, 0ah
int 21h
lea dx, msg2
mov ah, 9
int 21h
mov ah, 1
int 21h
mov chr, al
mov cl, sl
xor ch, ch
jcxz agn
lea di, str
nxt:
scasb
jne cntnu
inc nos
cntnu:
loop nxt
mov al, nos
aam
MCSL 017
48 Loganathan R
toot
D
N
to
o
oto
tot Copyp
o No
D
t
o
ott C
o
y
to
yp
C
y
oot
opy
t C
y
C
yp
t
pyp
tot
p
ototo
y
yp
t
y
y
to
Copyp
to
ppyyp p
D
o p
C
y
ot C
p
y py
D
t
ot
p
to
pyyp
tto
C
p
o
o
o
o
o
ot o
t
p
Co p
o
yp
t
N
t
py
N
t
p
N
C
N
D
o
C
D
y
C
oto
C
yp
o
p
t
t
y
y
o
pyp
to
N
py
to
p
o
to
o
t
pp y
o
D
N
y
o
D
o
D
to
t
p yy
D
oto
op
C
yp o
to
y
to
o
y
o
o
yp
y
yp
N
N
to
o o
o
y
to
pyyp
Do
tto o
o
oN
o N
t Co
y
D
o
No
D
to oo
C
yy
oo
C
p
o
o
t
p
o
yp
o
y
o
t
y
D
ypy
o
C
D
oo
Do Noot
yyp
D
No
o
oppyyp
o
tto
ot
y
N
to
yp
t C
p
oD
Noot
ypy
ot
to
D
D
N
to
o
o
p
D
o t
C
D
pp
No
C
p
y
yp
o
t
o
to
Co
yp
o N
y
o
yp
o
y
t
Cop
o
p
Ct
op
o
y y
o
t
No
ypy
o C
o
ot
yyp
oo
y
t
ppy
tto
ypyp
yp o
y
oto to
D
ot
oot
py
N
yp
oo
D
to
o
yp
yp
to
C
Co
y
to
o
o
yp
yp
o
o
to
t
y
o
o
C
o
t
p
N
D
o
N
tt
p
t
p
o
o
y
yp
N
y
to
tto
opypy
t C
pyp
Do
ottto
y
pyp
ot C
D
to
y
o
p
D
D
ot
pp
o Noo
o
o N
y
tto
yp
o
o
D
N
o
y
t C
opp y
ot o
yp
opp
N
o
tto
p
y
D
ooN
D
N
t o
C
oto
op
y
to
opp
N
C
yp
o
o
too
Do No
D
Noo
yyyp
o
Do N
t
p
pyp
C
po
y
add ax, 3030h
mov nos, ah
mov nos+1, al
lea dx, msg3
mov ah, 9
int 21h
mov ah, 4ch ;exit to operating system.
int 21h
end
MCSL 017
49 Loganathan R

IGNOU Assembly Language Programming

  • 1.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y MCSL 017 Assembly Language Programming Manual Sessions 3 and 4: 1. Write a program to add two numbers present in two consecutive memory locations and store the result in next memory location. .model small .data n1 db 12h n2 db 13h res db ? .code mov ax, @data mov ds, ax mov al, n1 add al, n2 mov res, al mov ah, 4ch int 21h end 2. Develop program to read a character from console and echo it. .model small .data msg1 db 'Enter a Character : $' msg2 db 10,13,'Your Input is : $' .code mov ax, @data mov ds, ax mov ah, 9 lea dx, msg1 int 21h mov ah, 1 int 21h mov bl, al mov ah, 9 lea dx, msg2 int 21h mov dl, bl mov ah, 2 int 21h mov ah, 4ch int 21h end MCSL 017 1 Loganathan R
  • 2.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 3. Develop and execute a program to read 10 chars from console. .model small .data msg1 db 'Enter 10 Characters : $' msg2 db 10,13,'Your Input is : $' chars db 10 dup(?) .code mov ax, @data mov ds, ax mov ah, 9 lea dx, msg1 int 21h lea si, chars mov cl, 10 mov ah, 1 agn: int 21h mov [si], al inc si dec cl jnz agn mov ah, 9 lea dx, msg2 int 21h lea si, chars mov cl, 10 mov ah, 2 nxt: mov dl, [si] int 21h inc si dec cl jnz nxt mov ah, 4ch int 21h end MCSL 017 2 Loganathan R
  • 3.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 4. Write a program to exchange two memory variables using MOV and XCHG instruction. Can you do it with just XCHG? .model small .data n1 db 12h n2 db 13h .code mov ax, @data mov ds, ax mov al, n1 xchg al, n2 mov n1,al mov ah, 4ch int 21h end Using XCHG only: .model small .data n1 db 12h n2 db 13h .code mov ax, @data mov ds, ax xchg al, n1 xchg al, n2 xchg n1,al mov ah, 4ch int 21h end MCSL 017 3 Loganathan R
  • 4.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 5. Write a program to find the sum of two BCD numbers stored in memory. .model small .data n1 db 12h n2 db 13h res db ? .code mov ax, @data mov ds, ax mov al, n1 add al, n2 daa mov res, al mov ah, 4ch int 21h end MCSL 017 4 Loganathan R
  • 5.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 6. Write a program, which will read two decimal numbers, then multiply them together, and finally print out the result (in decimal). .model small .data msg1 db 'Enter First Decimal Digit : $' msg2 db 10,13,'Enter Second Decimal Digit : $' msg3 db 10,13,'Multiplied Result : $' .code mov ax, @data mov ds, ax mov ah, 9 lea dx, msg1 int 21h mov ah, 1 int 21h sub al, 30h mov bl, al mov ah, 9 lea dx, msg2 int 21h mov ah, 1 int 21h sub al, 30h mul bl aam add ax, 3030h mov bx, ax mov ah, 9 lea dx, msg3 int 21h mov dl, bh mov ah, 2 int 21h mov dl, bl mov ah, 2 int 21h mov ah, 4ch int 21h end MCSL 017 5 Loganathan R
  • 6.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 7. Write a program to convert the ASCII code to its BCD equivalent. .model small .data ascii db 46H ;for Hex ditits 30h-39h,41h-46h bcd db ? .code mov ax, @data mov ds, ax mov al, ascii cmp al, 39h jbe sub30 sub al, 7h sub30: sub al, 30h daa mov bcd, al mov ah, 4ch int 21h end MCSL 017 6 Loganathan R
  • 7.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 8. Write a program, which will read in two decimal inputs and print out their sum, in decimal. .model small .data msg1 db 'Enter First Decimal Digit : $' msg2 db 10,13,'Enter Second Decimal Digit : $' msg3 db 10,13,'Addition Result : $' .code mov ax, @data mov ds, ax mov ah, 9 lea dx, msg1 int 21h mov ah, 1 int 21h sub al, 30h mov bl, al mov ah, 9 lea dx, msg2 int 21h mov ah, 1 int 21h sub al, 30h add al, bl aam add ax, 3030h mov bx, ax mov ah, 9 lea dx, msg3 int 21h mov dl, bh mov ah, 2 int 21h mov dl, bl mov ah, 2 int 21h mov ah, 4ch int 21h end MCSL 017 7 Loganathan R
  • 8.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 9. Write a program, which will read in two decimal inputs and print out the smaller of the two, in decimal. .model small .data msg1 db 'Enter First Decimal Digit : $' msg2 db 10,13,'Enter Second Decimal Digit : $' msg3 db 10,13,'Smallest : $' .code mov ax, @data mov ds, ax mov ah, 9 lea dx, msg1 int 21h mov ah, 1 int 21h mov bl, al mov ah, 9 lea dx, msg2 int 21h mov ah, 1 int 21h mov bh, al mov ah, 9 lea dx, msg3 int 21h cmp bl, bh jb lessbl mov dl, bh jmp disp lessbl: mov dl, bl disp: mov ah, 2 int 21h mov ah, 4ch int 21h end MCSL 017 8 Loganathan R
  • 9.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 10. Write a program to calculate the average of three given numbers stored in memory. .model small .data n1 db 2 n2 db 3 n3 db 3 avg db ? .code mov ax, @data mov ds, ax xor ah, ah mov al, n1 add al, n2 jnc adnxt inc ah adnxt: add al, n3 jnc cntnu inc ah cntnu: mov bl, 3 div bl mov avg, al mov ah, 4ch int 21h end MCSL 017 9 Loganathan R
  • 10.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 11. Write a program in 8086 assembly language to find the volume of sphere using following formula: V = 4/3π r3 ;find the volume of sphere using following formula: V = 4/3 pi r3 .model small .data r db 3 v db ? .code mov ax, @data mov ds, ax mov al, r mul al mul r mov bl ,al mov al, 88 mov cl, 21 div cl mul bl mov v, al ; result in hexa decimal mov ah, 4ch int 21h end MCSL 017 10 Loganathan R
  • 11.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 12. Write a program to evaluates 3 * (x^3) + 4x + 5 if flag = = 1 or evaluates 7x + 8 if flag = = 0. Assume x is a 16-bit unsigned integer. ;evaluates 3 * (x^3) + 4x + 5 if flag = = 1 ;evaluates 7x + 8 if flag = = 0 .model small .data flag db 1 x dw 2 res dw ? .code mov ax, @data mov ds, ax cmp flag, 1 jne eq2 mov ax, 3 mul x mul x mul x mov cx, ax ; assume result doest not exceed 16 bit mov ax, 4 mul x add ax, 5 add ax, cx jmp xit eq2: mov ax, 7 mul x add ax, 8 xit: mov res, ax mov ah, 4ch int 21h end MCSL 017 11 Loganathan R
  • 12.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 13. Write a program to convert Centigrade (Celsius) to Fahrenheit temperature measuring scales. Using formula: Celsius = (Fahrenheit - 32) * 5 / 9 ;convert Centigrade (Celsius) to Fahrenheit temperature ;formula: Celsius = (Fahrenheit - 32) * 5 / 9 ; i.e f = (c * 9 / 5) + 32 .model small .data c db 40 f db ? .code mov ax, @data mov ds, ax mov cl, 32 mov al, 9 mov bl, 5 mul c div bl add al, cl mov f, al ; result in hexadecimal mov ah, 4ch int 21h end MCSL 017 12 Loganathan R
  • 13.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 14. Write a Program which adds the sales tax in the Price list of items and replace the Price list with a new list. ;adds the sales tax in the Price list of items ;replace the Price list with a new list .model small .data price db 20h, 30h, 40h, 50h, 60h,70h tax db 3, 4, 5, 6, 7, 8 n db tax - price .code mov ax, @data mov ds, ax mov es, ax ; since di used mov cl, n lea si, price lea di, tax nxt: mov al , [di] add [si], al inc si inc di dec cx jnz nxt mov ah, 4ch int 21h end MCSL 017 13 Loganathan R
  • 14.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y Sessions 5, 6 and 7: 1. Write a program to find the factorial of decimal number given by user. ;factorial of decimal number given by user .model small .data n db 5 f db ? .code mov ax, @data mov ds, ax mov cl, n mov al, 1 agn: cmp cl, 0 jbe xit mul cl dec cl jmp agn xit: mov f, al mov ah, 4ch int 21h end MCSL 017 14 Loganathan R
  • 15.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 2. Write a program to find nCr for a given n and r. .model small .data n db 5 r db 2 ncr db ? .code mov ax, @data mov ds, ax xor ch, ch mov cl, n mov al, 1 forn: mul cl loop forn mov bl, al ;n! mov cl, r mov al, 1 forr: mul cl loop forr mov bh, al ;r! mov al, 1 mov cl, n sub cl, r ; cl <- n-r jcxz xitnr fornr: mul cl loop fornr xitnr: mul bh ;(n-r)! * r! mov cl, al mov al, bl div cl ;n! / {(n-r)! * r!) daa mov ncr, al mov ah, 4ch int 21h end MCSL 017 15 Loganathan R
  • 16.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 3. Write a program to arrange given N numbers in descending order. ;Signed Descending order .model small .data a db 34h,78h,56h,47h,0,90h len dw len-a ;len=no of elements .code mov ax,@data mov ds,ax mov bx,len dec bx ;bx=no of passes needed to complete sorting(n-1) outlup: mov cx,bx ;cx=no of comparisions to be performed in a pass mov si,0 inlup: mov al,a[si] inc si cmp al,a[si] ja go_on xchg al,a[si] mov a[si-1],al go_on: loop inlup ;dec cx,until cx=0 dec bx jnz outlup mov ah, 4ch int 21h end MCSL 017 16 Loganathan R
  • 17.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 4. Write a program, which will read in decimal inputs repeatedly until a zero value is read; at this point, it should print out the sum of the numbers read in so far. .model small .data msg1 db 10,13,'Enter Decimal Digit (0 to Stop): $' msg2 db 10,13,'The sum : $' .code mov ax, @data mov ds, ax mov bl, 0 nxt: mov ah, 9 lea dx, msg1 int 21h mov ah, 1 int 21h cmp al, '0' je xit sub al, 30h add al, bl mov bl, al jmp nxt xit: mov ah, 9 lea dx, msg2 int 21h mov al, bl aam add ax, 3030h mov bx, ax mov dl, bh mov ah, 2 int 21h mov dl, bl mov ah, 2 int 21h mov ah, 4ch int 21h end MCSL 017 17 Loganathan R
  • 18.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 5. Develop and execute an assembly language program to find the LCM of two 16-bit unsigned integers. .model small .data n1 dw 8000 n2 dw 9000 lcml dw ? lcmh dw ? .code mov ax,@data mov ds,ax mov dx,0 mov ax,n1 ;dx_ax=25 mov bx,n2 ;bx=15 again: push ax push dx div bx cmp dx,0 ;remainder of the division is stored in dx je exit pop dx pop ax add ax,n1 jnc noincdx inc dx noincdx: jmp again exit: pop lcmh pop lcml mov ah, 4ch int 21h end MCSL 017 18 Loganathan R
  • 19.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 6. Develop and execute an assembly language program to find the HCF of two unsigned 16-bit numbers. .model small .data val1 dw 30 val2 dw 75 gcd dw ? .code mov ax,@data mov ds, ax mov ax, val1 mov bx, val2 again: cmp ax,bx je exit jb bigbx divaxbx: mov dx,0 div bx cmp dx,0 je exit mov ax,dx jmp again bigbx: xchg ax,bx jmp divaxbx exit: mov gcd,bx mov ah, 4ch int 21h end MCSL 017 19 Loganathan R
  • 20.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 7. Write a program for finding the largest number in an array of 10 elements. ;Largest .model small .data a db 34h,78h,56h,47h,0,90h, 22h,88h,12h len dw $-a ;len=no of elements lrg db ? .code mov ax,@data mov ds,ax lea si, a mov al, [si] mov cx,len nxt: cmp al, [si] jae cntnu mov al,[si] cntnu: inc si loop nxt mov lrg, al mov ah, 4ch int 21h end MCSL 017 20 Loganathan R
  • 21.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 8. Develop and execute a program to sort a given set of 8-bit unsigned integers into ascending order. ;Unsigned Ascending order .model small .data a db 34h,78h,56h,47h,0,90h len dw $-a ;len=no of elements .code mov ax,@data mov ds,ax mov bx,len dec bx ;bx=no of passes needed to complete sorting(n-1) outlup: mov cx,bx ;cx=no of comparisions to be performed in a pass mov si,0 inlup: mov al,a[si] inc si cmp al,a[si] jb go_on xchg al,a[si] mov a[si-1],al go_on: loop inlup ;dec cx,until cx=0 dec bx jnz outlup mov ah, 4ch int 21h end MCSL 017 21 Loganathan R
  • 22.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 9. Develop and execute an assembly language program to sort a given set of 16-bit unsigned integers into descending order. ;16 bit Unsigned Descending order .model small .data a dw 5678h,1234h,3456h,2345h,4567h,6789h len dw ($-a)/2 ;len=no of elements .code mov ax,@data mov ds,ax mov bx,len dec bx ;bx=no of passes needed to complete sorting(n-1) outlup: mov cx,bx ;cx=no of comparisions to be performed in a pass mov si,0 inlup: mov ax,a[si] inc si inc si cmp ax,a[si] ja go_on xchg ax,a[si] mov a[si-2],ax go_on: loop inlup ;dec cx,until cx=0 dec bx jnz outlup mov ah, 4ch int 21h end MCSL 017 22 Loganathan R
  • 23.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 10. Write a Program which adds the sales tax in the Price list of items and replace the Price list with calculated values. ;adds the sales tax in the Price list of items ;replace the Price list with a new list .model small .data price db 20, 30, 40, 50, 60,70 tax db 5, 4, 5, 3, 2, 2 n db tax - price .code mov ax, @data mov ds, ax mov es, ax ; since di used mov cl, n mov bl, 100 lea si, price lea di, tax nxt: mov al , [di] mul [si] div bl add [si], al inc si inc di loop nxt mov ah, 4ch int 21h end MCSL 017 23 Loganathan R
  • 24.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 11. Write a program to Convert ASCII number into decimal digit. ;ASCII to Decimal .model large .stack 100h .model small .data asci db 'z' bcd dw 0 .code mov ax, @data mov ds,ax mov bl, 10 mov cl, 0 mov al, asci nxt: mov ah, 0 div bl mov ch,al xchg al, ah cbw shl ax, cl or bcd, ax add cl, 4 mov al, ch cmp al, 0 jnz nxt mov ah,4ch int 21h end MCSL 017 24 Loganathan R
  • 25.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 12. Write a Program for performing the following operation. Z=((A-B)/10*C) ** 2 ;z= ((a-b) /10 *c) **2 .model small .data a db 60 b db 20 c db 5 Z dw ? .code mov ax, @data mov ds, ax mov ah, 0 mov bl, 10 mov al, a sub al, b div bl mul c mul al mov z, ax mov ah, 4ch int 21h end MCSL 017 25 Loganathan R
  • 26.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 13. Write a Program for adding an array of Binary Digits. ;add array of binar digits .model small .data bin db 1,0,1,1,1,1,1,1,1,0,1 len dw len-bin res db ? .code mov ax, @data mov ds, ax lea si, bin mov cx, len mov al, 0 nxt: test [si], 1 jz cntnu inc al cntnu: inc si loop nxt mov res, al mov ah, 4ch int 21h end MCSL 017 26 Loganathan R
  • 27.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 14. Write a Program, which takes the input of 4-digit number, and display the sum of square of digits as given below. Example: Input = 4721 42 +72 +22 +12 = 16+49+4+1 Result = 70. (Display) ;Squarte & add digits .model small .data msg1 db 10,13,'Enter a 4 digit decimal number : $' n dw 0 msg2 db 10,13,'Addition of Square of all digits : $' dgts db 4 dup(?) res dw 0 .code mov ax, @data mov ds, ax lea si, dgts wrng: lea dx, msg1 mov ah, 9 int 21h mov cx, 4 mov ah, 1 nxt: int 21h cmp al, '0' jb wrng cmp al, '9' ja wrng sub al, 30h mov [si], al inc si loop nxt lea si, dgts mov cx, 4 nxtdgt: mov al, [si] mul al add res, ax inc si loop nxtdgt lea dx, msg2 mov ah, 9 int 21h MCSL 017 27 Loganathan R
  • 28.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y lea si, dgts add si, 3 mov bl, 10 mov cx, 4 mov ax, res xtrct: div bl mov [si],ah dec si mov ah,0 loop xtrct lea si, dgts mov cx,4 mov ah, 2 disp: mov dl, [si] add dl, 30h int 21h inc si loop disp mov ah, 4ch int 21h end MCSL 017 28 Loganathan R
  • 29.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 15. Using the method of "add-and-shift" loop, in which you use the binary digits of one number to control additions of a shifted version of the other number into a running total; this is essentially the same algorithm you use when multiplying numbers by hand in decimal. ;Multiply using shift & add .model small .data mulpir db 21h mulcnd db 30h res dw 0 .code mov ax, @data mov ds, ax mov cx, 8 mov al, mulcnd cbw mov bl, mulpir nxt: shr bl, 1 jnc cntnu add res, ax cntnu: shl ax, 1 loop nxt mov ah, 4ch int 21h end MCSL 017 29 Loganathan R
  • 30.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 16. Write a Program, which should add two 5-byte numbers (numbers are stored in array- NUM1 & NUM2), and stores the sum in another array named RESULT. ;Adding 2 Five byte Numbers .model small .data num1 db 11h,22h,33h,44h,0f5h, num2 db 55h,44h,33h,22h,0f1h res db 6 dup(0) .code mov ax, @data mov ds, ax mov es, ax mov cx, 5 lea bx, res lea si, num1 lea di, num2 nxt: mov al, [si] add al, [di] jnc cntnu inc [bx+1] cntnu: add [bx], al inc si inc di inc bx loop nxt mov ah, 4ch int 21h end MCSL 017 30 Loganathan R
  • 31.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 17. Write a program which should convert 4 digits BCD number into its binary equivalent. .model small .stack 64 .data bcd dw 9999h bin dw 0 .code mov ax, @data mov ds, ax mov bp, bcd ; y not dx? mov bx, 10 mov cx, 4 nxt: push cx mov cl, 4 rol bp, cl pop cx mov ax, bin mul bx mov bin, ax mov ax, 0fh and ax, bp add bin, ax loop nxt mov ah, 4ch int 21h end MCSL 017 31 Loganathan R
  • 32.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 18. Write a program to conduct a binary search on a given sorted array of 16-bit, unsigned integers, and a given 16-bit unsigned key. .model small .data nos dw 1111h,2222h,4444h,7777h,9999h len dw (len - nos) / 2 key dw 0A999h smsg db 'Search Success$' fmsg db 'Search Failure$' .code mov ax, @data mov ds, ax mov bx, 1 mov dx, len ;dx=5 mov cx, key ;cx=2345 agn: cmp bx, dx ja fail mov ax, bx add ax, dx shr ax, 1 mov si, ax dec si add si, si cmp cx, nos[si] jae larg dec ax mov dx, ax jmp agn larg: je sucs inc ax mov bx, ax jmp agn sucs: lea dx, smsg jmp disp fail: lea dx, fmsg disp: mov ah, 09h int 21h mov ah, 4ch int 21h end MCSL 017 32 Loganathan R
  • 33.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 19. Write a program to convert a string in upper case to lower case or lower case to upper case. .model small .data str db 'UPPERCASE To lowercase$' len dw len-str msg1 db 10,13,'Before Convertion : $' msg2 db 10,13,'After Convertion : $' .code mov ax, @data mov ds, ax mov es, ax lea dx, msg1 mov ah, 9 int 21h lea dx, str int 21h lea dx, msg2 int 21h mov cx, len lea si, str mov di, si nxt: lodsb cmp al, 'A' jb nochg cmp al, 'Z' ja toup add al, 'a' - 'A' jmp nochg toup: cmp al, 'a' jb nochg cmp al, 'z' ja nochg sub al, 'a' - 'A' nochg: stosb loop nxt lea dx, str mov ah, 9 int 21h mov ah, 4ch int 21h end MCSL 017 33 Loganathan R
  • 34.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 20. Develop cryptographic algorithm where each letter is replaced by a different letter. Given the mapping of characters to encoded characters, it is simple to translate from encoded to decoded data. Write a Program, which encodes the string into the ASCII value but not corresponding ASCII value; shift 5 place left in ASCII and write the encoding string. ;Encryption .model small .data str db 'This is a TEST data XyZ$' len dw len-str msg1 db 10,13,'Before Encryption : $' msg2 db 10,13,'After Encryption : $' .code mov ax, @data mov ds, ax mov es, ax lea dx, msg1 mov ah, 9 int 21h lea dx, str int 21h lea dx, msg2 int 21h mov cx, len lea si, str mov di, si nxt: lodsb cmp al, 'A' jb nochg cmp al, 'Z' ja tolow push cx mov cx, 5 nxtup: dec al cmp al, 'A' jae ucntnu mov al, 'Z' ucntnu: loop nxtup pop cx jmp nochg MCSL 017 34 Loganathan R
  • 35.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y tolow: cmp al, 'a' jb nochg cmp al, 'z' ja nochg push cx mov cx, 5 nxtlow: dec al cmp al, 'a' jae lcntnu mov al, 'z' lcntnu: loop nxtlow pop cx nochg: stosb loop nxt lea dx, str mov ah, 9 int 21h mov ah, 4ch int 21h end MCSL 017 35 Loganathan R
  • 36.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 21. Similarly write another Program to Decoding with respect to above problem. ;Decryption .model small .data str db 'Ocdn dn v OZNO yvov StU$' ulut db 'FGHIJKLMNOPQRSTUVWXYZABCDE' llut db 'fghijklmnopqrstuvwxyzabcde' len dw len-str msg1 db 10,13,'Before Decryption : $' msg2 db 10,13,'After Decryption : $' .code mov ax, @data mov ds, ax mov es, ax lea dx, msg1 mov ah, 9 int 21h lea dx, str int 21h lea dx, msg2 int 21h mov cx, len lea si, str mov di, si nxt: lodsb cmp al, 'A' jb nochg cmp al, 'Z' ja tolow lea bx, ulut sub al,'A' xlat jmp nochg tolow: cmp al, 'a' jb nochg cmp al, 'z' ja nochg lea bx, llut sub al,'a' xlat MCSL 017 36 Loganathan R
  • 37.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y nochg: stosb loop nxt lea dx, str mov ah, 9 int 21h mov ah, 4ch int 21h end MCSL 017 37 Loganathan R
  • 38.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y Session 8: 1. Write a program, which takes two inputs as strings and display the Concatenated string. ;Concatenation of 2 Strings .model small ;1 ds & 1 CS .data ;Data Segment str1b db 53 sl1 db ? str1 db 51 dup('$') str2b db 53 sl2 db ? str2 db 51 dup('$') cstr db 100 dup('$') msg1 db 'Enter String 1(Max length 50) :$' msg2 db 10,13,'Enter String 2(Max length 50) :$' cmsg db 10,13,'The Concatenated String : $' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base mov es, ax ;initialize ES with Data Segment Base lea dx, msg1 mov ah, 9 int 21h lea dx, str1b mov ah, 0ah int 21h lea dx, msg2 mov ah, 9 int 21h lea dx, str2b mov ah, 0ah int 21h lea si, str1 lea di, cstr mov cl, sl1 xor ch, ch jcxz nxt1 cpy1: lodsb stosb loop cpy1 nxt1: lea si, str2 mov cl, sl2 jcxz nxt2 MCSL 017 38 Loganathan R
  • 39.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y cpy2: lodsb stosb loop cpy2 nxt2: mov ah, 9 lea dx, cmsg int 21h lea dx, cstr int 21h mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 39 Loganathan R
  • 40.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 2. Write a program, which converts string lower case characters to upper case characters and upper case characters to lower case characters. .model small ;1 ds & 1 CS .data ;Data Segment strb db 103 sl db ? str db 101 dup('$') msg db 'Enter String with Upper & Lower case :$' cmsg db 10,13,'The Coverted String : $' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base mov es, ax ;initialize ES with Data Segment Base lea dx, msg mov ah, 9 int 21h lea dx, strb mov ah, 0ah int 21h lea dx, cmsg mov ah, 9 int 21h mov cl, sl xor ch, ch jcxz xit lea si, str mov di, si nxt: lodsb cmp al, 'A' jb nochg cmp al, 'Z' ja toup add al, 'a' - 'A' jmp nochg toup: cmp al, 'a' jb nochg cmp al, 'z' ja nochg sub al, 'a' - 'A' nochg: MCSL 017 40 Loganathan R
  • 41.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y stosb loop nxt xit: lea dx, str mov ah, 9 int 21h mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 41 Loganathan R
  • 42.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 3. Write a program for reversing a given string. .model small ;1 ds & 1 CS .data ;Data Segment strb db 103 sl db ? mstr db 101 dup('$') rstr db 100 dup('$') msg db 'Enter a String : $' cmsg db 10,13,'The Reversed String : $' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base mov es, ax ;initialize ES with Data Segment Base lea dx, msg mov ah, 9 int 21h lea dx, strb mov ah, 0ah int 21h lea dx, cmsg mov ah, 9 int 21h mov cl, sl xor ch, ch jcxz xit lea si, mstr lea di, rstr add si, cx nxt: dec si mov al, [si] stosb loop nxt xit: lea dx, rstr mov ah, 9 int 21h mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 42 Loganathan R
  • 43.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 4. Write a program, which converts string to its ASCII value and store in array. .model small ;1 ds & 1 CS .data ;Data Segment strb db 103 sl db ? str db 101 dup(0) ; ASCII equivalent of string characters msg db 10,13,'Enter a String : $' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base lea dx, msg mov ah, 9 int 21h lea dx, strb mov ah, 0ah int 21h mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 43 Loganathan R
  • 44.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 5. Write a program to find if two strings are equal length: and if the strings are found to be of equivalent length then are they the same, if not the same then which string is lexicographically greater. ;Concatenation of 2 Strins .model small ;1 ds & 1 CS .data ;Data Segment str1b db 103 sl1 db ? str1 db 101 dup('$') str2b db 103 sl2 db ? str2 db 101 dup('$') msg1 db 10,13,'Enter String 1(Max length 50) :$' msg2 db 10,13,'Enter String 2(Max length 50) :$' emsg db 10,13,'The Strings are Equal$' nemsg db 10,13,'The Strings are NOT Equal Length$' gmsg db 10,13,'String ' res db ?,' is Greater$' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base mov es, ax ;initialize ES with Data Segment Base agn: lea dx, msg1 mov ah, 9 int 21h lea dx, str1b mov ah, 0ah int 21h lea dx, msg2 mov ah, 9 int 21h lea dx, str2b mov ah, 0ah int 21h lea si, str1 lea di, str2 mov cl, sl1 cmp cl, sl2 jne diflen xor ch, ch jcxz agn repe cmpsb je eqlstr mov al, [si-1] cmp al, [di-1] ja gstr1 MCSL 017 44 Loganathan R
  • 45.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y mov res, '2' jmp dspgstr gstr1: mov res, '1' dspgstr: lea dx, gmsg jmp disp: eqlstr: lea dx, emsg jmp disp diflen: lea dx, nemsg disp: mov ah, 9 int 21h mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 45 Loganathan R
  • 46.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 6. Write a program to determine a given string is a palindrome. If 'Yes' output the message “The given string is a palindrome”. If 'No' output the message “No, it is not a palindrome”. .model small ;1 ds & 1 CS .data ;Data Segment strb db 103 sl db ? mstr db 101 dup('$') rstr db 100 dup('$') msg db 10,13,'Enter a String : $' pmsg db 10,13,'Given String is a Polindrome$' npmsg db 10,13,'Given String is NOT a Polindrome$' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base mov es, ax ;initialize ES with Data Segment Base agn: lea dx, msg mov ah, 9 int 21h lea dx, strb mov ah, 0ah int 21h mov cl, sl xor ch, ch jcxz agn lea si, mstr lea di, rstr add si, cx nxt: dec si mov al, [si] stosb loop nxt mov cl, sl lea si, mstr lea di, rstr repe cmpsb je equl lea dx, npmsg jmp disp equl: lea dx, pmsg MCSL 017 46 Loganathan R
  • 47.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y disp: mov ah, 9 int 21h xit: mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 47 Loganathan R
  • 48.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y 7. Write a program to search for a character in a given string and calculate the number of occurrences of the character in the given string. ;Character Search .model small ;1 ds & 1 CS .data ;Data Segment strb db 103 sl db ? str db 101 dup('$') msg1 db 10,13,'Enter a String : $' msg2 db 10,13,'Enter the charector to be searched : $' msg3 db 10,13,'Given Character' chr db ?,' Present ' nos db 0,0,' Times$' .code mov ax, @data mov ds, ax ;initialize DS with Data Segment Base mov es, ax ;initialize ES with Data Segment Base agn: lea dx, msg1 mov ah, 9 int 21h lea dx, strb mov ah, 0ah int 21h lea dx, msg2 mov ah, 9 int 21h mov ah, 1 int 21h mov chr, al mov cl, sl xor ch, ch jcxz agn lea di, str nxt: scasb jne cntnu inc nos cntnu: loop nxt mov al, nos aam MCSL 017 48 Loganathan R
  • 49.
    toot D N to o oto tot Copyp o No D t o ottC o y to yp C y oot opy t C y C yp t pyp tot p ototo y yp t y y to Copyp to ppyyp p D o p C y ot C p y py D t ot p to pyyp tto C p o o o o o ot o t p Co p o yp t N t py N t p N C N D o C D y C oto C yp o p t t y y o pyp to N py to p o to o t pp y o D N y o D o D to t p yy D oto op C yp o to y to o y o o yp y yp N N to o o o y to pyyp Do tto o o oN o N t Co y D o No D to oo C yy oo C p o o t p o yp o y o t y D ypy o C D oo Do Noot yyp D No o oppyyp o tto ot y N to yp t C p oD Noot ypy ot to D D N to o o p D o t C D pp No C p y yp o t o to Co yp o N y o yp o y t Cop o p Ct op o y y o t No ypy o C o ot yyp oo y t ppy tto ypyp yp o y oto to D ot oot py N yp oo D to o yp yp to C Co y to o o yp yp o o to t y o o C o t p N D o N tt p t p o o y yp N y to tto opypy t C pyp Do ottto y pyp ot C D to y o p D D ot pp o Noo o o N y tto yp o o D N o y t C opp y ot o yp opp N o tto p y D ooN D N t o C oto op y to opp N C yp o o too Do No D Noo yyyp o Do N t p pyp C po y add ax, 3030h mov nos, ah mov nos+1, al lea dx, msg3 mov ah, 9 int 21h mov ah, 4ch ;exit to operating system. int 21h end MCSL 017 49 Loganathan R