Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

AFFAN KHURRAM 1912215

AFFAN KHURRAM
1912215
LAB MANUAL
AFFAN KHURRAM 1912215

1) Write a program to display a single character.

.model small
.stack 100
.data

.code
main proc

mov dl,'T'
mov ah,2
int 21h

mov ah,4ch
int 21h
main endp
end main

2) Write a program to input from with echo.

.model small
.stack 100h
.data

.code
main proc
mov ah, 1
int 21h

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

3) Write a program to input from without echo.


.model small
.stack 100h
.data

.code
main proc
mov ah, 7
int 21h

mov ah, 4ch


int 21h

main endp
end main

3) Write a program to display your full name on the screen.

.model small
.stack 100h
.data
.code
main proc
mov dl, 'A'
mov ah, 2
int 21h

mov dl, 'f'


mov ah, 2
int 21h

mov dl, 'f'


mov ah, 2
int 21h

mov dl, 'a'


mov ah, 2
int 21h

mov dl, 'n'


AFFAN KHURRAM 1912215

mov ah, 2
int 21h

mov dl, 'K'


mov ah, 2
int 21h

mov dl, 'h'


mov ah, 2
int 21h

mov dl, 'u'


mov ah, 2
int 21h

mov dl, 'r'


mov ah, 2
int 21h

mov dl, ' r'


mov ah, 2
int 21h

mov dl, 'a'


mov ah, 2
int 21h

mov dl, 'm'


mov ah, 2
int 21h

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

5) Write a program which take four inputs from user without echo and display ‘*’ (asterisk sign) in
place of it (as in password).

.model small
.stack 100h
.data

.code
main proc
mov ah, 7
int 21h

mov dl, '*'


mov ah, 2
int 21h

mov ah, 7
int 21h

mov dl, '*'


mov ah, 2
int 21h

mov ah, 7
int 21h

mov dl, '*'


mov ah, 2
int 21h

mov ah, 7
int 21h

mov dl, '*'


mov ah, 2
int 21h

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

6) Write a program which take upper-case single character as input from user and convert it into
lower-case and display its result in the next line.

.model small
.stack 100h
.data

.code
main proc

mov ah, 1
int 21h
add al, 32
mov bh, al

mov dl, 10
mov ah, 2
int 21h

mov dl, 13
mov ah, 2
int 21h

mov dl, bh
mov ah, 2
int 21h

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

7) Write a program which take lower-case single character as input from user and convert it into
upper-case and display its result in the next line.

.model small
.stack 100h
.data
.code
main proc
mov ah, 1
int 21h
sub al, 32
mov bh, al
mov dl, 10
mov ah, 2
int 21h
mov dl, 13
mov ah, 2
int 21h
mov dl, bh
mov ah, 2
int 21h
mov ah, 4ch
int 21h
main endp
end main
AFFAN KHURRAM 1912215

8) Write a program to add two numbers.

.model small
.stack 100h
.data
.code
main proc

mov ah, 1
int 21h
sub al, 48
mov bh, al
mov ah, 1
int 21h
sub al, 48
add bh, al
add bh, 48
mov dl, bh
mov ah, 2
int 21h
mov ah,4ch
int 21h
main endp
end main

9) Write a program to take two numbers as input from user, add them and display the result on
screen in appropriate way (3+2=5).
.model small
.stack 100h
.data
.code
main proc

mov ah, 1
int 21h
sub al, 48
mov bh, al

mov dx,'+'
AFFAN KHURRAM 1912215

mov ah,2
int 21h

mov ah, 1
int 21h
sub al, 48

add bh, al
add bh, 48

mov dx,'='
mov ah,2
int 21h

mov dl, bh
mov ah, 2
int 21h

mov ah,4ch
int 21h

main endp
end main
AFFAN KHURRAM 1912215

10) Write a program to take two numbers as input from user, subtract them and display the result
on screen in appropriate way (7 - 2=5).

.model small
.stack 100h
.data
.code
main proc

mov ah, 1
int 21h
sub al, 48
mov bh, al

mov dx,'-'
mov ah,2
int 21h

mov ah, 1
int 21h
sub al, 48

sub bh, al
add bh, 48

mov dx,'='
mov ah,2
int 21h

mov dl, bh
mov ah, 2
int 21h

mov ah,4ch
int 21h

main endp
end main
AFFAN KHURRAM 1912215

11) Write a program to add three numbers using variables and stores in sum variable and display it.

.model small
.stack 100h
.data
sum db 1 DUP<?>
.code
main proc
mov ax, data
mov ds, ax

mov ah, 1
int 21h
sub al, 48
mov bh, al

mov ah, 1
int 21h
sub al, 48

add bh, al
add bh, 48

mov ah,1
int 21h
sub al,48
mov sum,al

add sum, al
add sum, 48

mov dl, sum


mov ah, 2
int 21h

mov ah,4ch
int 21h

main endp
end main
AFFAN KHURRAM 1912215

12) Write a program to increment a number using increment (inc) instruction.


.model small
.stack 100h
.data

.code
main proc
mov al,'5'

inc al
mov dl,al
mov ah,2
int 21h

mov ah,4ch
int 21h

main endp
end main

13) Write a program to increment a number using decrement (dec) instruction.

.model small
.stack 100h
.data
.code
main proc
mov al,'5'

dec al
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
main endp
end main
AFFAN KHURRAM 1912215

14) Write a program to display “HELLO WORLD” using string variable.

.model small
.stack 100h
.data
string db 'HELLO WORLD$'

.code
main proc
mov ax,@data
mov ds,ax

mov dx,offset string


mov ah,9
int 21h

mov ah,4ch
int 21h

main endp
end main

15) Write a program to display full name, registration number, email address and Institute name.

.model small
.stack 100h
.data
str1 db 'Name: Affan Khurram$'
str2 db 10,13,'Reg. number: 1912215$'
str3 db 10,13,'email: cs1912215@szabist.pk$'
str4 db 10,13,'Institute Name: SZABIST$'
.code
main proc
mov ax,@data
mov ds,ax

mov dx,offset str1


mov ah,9
int 21h
AFFAN KHURRAM 1912215

mov dx,offset str2


mov ah,9
int 21h

mov dx,offset str3


mov ah,9
int 21h

mov dx,offset str4


mov ah,9
int 21h

mov ah,4ch
int 21h

main endp
end main

16) Write a program to take times input from user using loop instruction.

.model small
.stack 100h
.data
.code
main proc
mov cx,10

L1:

mov ah,1
int 21h

mov ah,2
mov dl,10
int 21h
mov dl,13
mov ah,2
int 21h

loop L1
AFFAN KHURRAM 1912215

mov ah, 4ch


int 21h

main endp
end main

17) Write a program to print numbers from ‘0’ to ‘9’ using loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,10
mov bh,48
L1:
mov dl,bh
mov ah,2
int 21h

mov ah,2
mov dl,10
int 21h
mov dl,13
mov ah,2
int 21h

inc bh

loop L1

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

18) Write a program to print numbers from ‘9’ to ‘0’ using loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,10
mov bh,57
L1:
mov dl,bh
mov ah,2
int 21h

mov ah,2
mov dl,10
int 21h
mov dl,13
mov ah,2
int 21h

dec bh

loop L1

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

19) Write a program to print upper case letter ‘A’ to ‘Z’ using loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,26
mov bh,65
L1:
mov dl,bh
mov ah,2
int 21h

mov ah,2
mov dl,10
int 21h
mov dl,13
mov ah,2
int 21h

inc bh

loop L1

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

20) Write a program to print lower case letter ‘a’ to ‘z’ using loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,26
mov bh,97
L1:
mov dl,bh
mov ah,2
int 21h

mov ah,2
mov dl,10
int 21h
mov dl,13
mov ah,2
int 21h

inc bh
AFFAN KHURRAM 1912215

loop L1

mov ah, 4ch


int 21h

main endp
end main

21) Write a program to print upper case letter ‘Z’ to ‘A’ using loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,26
mov bh,90
L1:
mov dl,bh
mov ah,2
int 21h

mov ah,2
mov dl,10
AFFAN KHURRAM 1912215

int 21h
mov dl,13
mov ah,2
int 21h

dec bh

loop L1

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

22) Write a program to print even numbers between (0-9) using loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,5
mov bh,48
L1:
mov dl,bh
mov ah,2
int 21h

mov ah,2
mov dl,10
int 21h
mov dl,13
mov ah,2
int 21h

inc bh
inc bh
loop L1

mov ah, 4ch


int 21h

main endp
end main
AFFAN KHURRAM 1912215

23) Write a program to print” #*#*#*#*#* “Using nested loop.

.model small
.stack 100h
.data
.code
main proc
mov cx,5
Loop1:
mov dl,'#'
mov ah,2
int 21h

mov bx,cx
mov cx,3
Loop2:
mov dl,'*'
mov ah,2
int 21h
loop Loop2

mov cx,bx

loop Loop1

mov ah,4ch
int 21h

main endp
end main

24) Write a program to print * using nested loop.


**
***
****

.model small
.stack 100h
.data
nl db 0dh, 0ah, '$'
.code
main proc
AFFAN KHURRAM 1912215

mov ax, @data


mov ds, ax
mov cx, 5
mov bx, 1
for_1:
push cx
mov dl, 20h
mov ah, 2

mov cx, bx
mov dl, '*'
mov ah, 2
for_3:
int 21h
loop for_3
lea dx, nl
mov ah, 9
int 21h
inc bx
pop cx
loop for_1
mov ah, 4ch
int 21h
main endp
end main

25) Write a program to demonstrate the concept of an array. Use index operators to access the
different values stored in an array.

arr1 db '6','8','5','7','4','9'

.code
main proc
mov ax,@data
mov ds,ax
mov si , offset arr1
mov cx,6

l1:
AFFAN KHURRAM 1912215

mov dx,[si]
mov ah,2
int 21h
mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,13
int 21h
inc si
loop l1
mov ah,4ch
int 21h

main endp

end main

26) Write a program to print an array using loop.


.model small
.stack 100h
.data

arr1 db '6','8','5','7','4','9'

.code
main proc
mov ax,@data
mov ds,ax
mov si , offset arr1
mov cx,6

l1:

mov dx,[si]
mov ah,2
int 21h
mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,13
int 21h
inc si
loop l1
mov ah,4ch
int 21h
AFFAN KHURRAM 1912215

main endp

end main

27) Write a program to take string input from user and store in an array.
.model small
.stack 100h
.data

arr1 db 30 DUP(?)

.code
main proc
mov ax,@data
mov ds,ax

mov cx,30
mov si , offset arr1

l1:

mov ah,1
int 21h
mov [si],al
inc si
loop l1

mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,13
int 21h

mov si , offset arr1


mov cx,30
AFFAN KHURRAM 1912215

l2:

mov dl,[si]
mov ah,2
int 21h

inc si
loop l2

mov ah,4ch
int 21h

main endp

end main

28) Write a program to swap two numbers using stack.


.model small
.stack 100h ;
.data

.code
main proc
mov ah,1
int 21h
mov ah,0
push ax
mov ah,1
int 21h
mov ah,0
push ax

mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,13
int 21h

pop dx
AFFAN KHURRAM 1912215

mov ah,2
int 21h

pop dx
mov ah,2
int 21h

mov ah,4ch
int 21h
main endp
end main

29) Write a program to reverse the message “Hello world” using stack (push and pop instruction).
.model small
.stack 100h ;
.data
msg db 'Hello World$'
str db 'Reverse String is:$'
.code
main proc
mov ax,@data
mov ds,ax
mov cx,11
mov ah,9
mov dx,offset msg
int 21h
mov ah,2
mov dl,10
int 21h
mov ah,2
mov dl,13
int 21h
mov si,offset msg
L1:
push [si]
inc si
loop L1

mov dx,offset str


mov ah,9
int 21h
mov cx,11
L2:
AFFAN KHURRAM 1912215

pop dx
mov ah,2
int 21h
loop L2
mov ah,4ch
int 21h
main endp
end main

30) Write a program to take input and output using procedures.

.model small
.stack 100h
.data

.code
main proc

call Input

call Output

mov ah,4ch
int 21h

main endp

Input proc
mov ah,1

int 21h
Input endp

Output proc

mov dl,al
mov ah,2
int 21h

Output endp
end main
AFFAN KHURRAM 1912215

31) Write a program to make procedures for newline and string display. Display your full name,
registration number, email and institute name by using nested procedures.

.model small
.stack 100h
.data
str1 db 'Name: Affan Khurram$'
str2 db 'Reg. number: 1912215$'
str3 db 'email: cs1912215@szabist.pk$'
str4 db 'Institution Name: SZABIST$'
.code
main proc
mov ax,@data
mov ds,ax

lea dx,str1
call str_display

mov dx,offset str2


call str_display

lea dx,str3
call str_display

lea dx,str4
call str_display

mov ah,4ch
int 21h

main endp

str_display proc
mov ah,9
int 21h
call n_l
ret
str_display endp
n_l proc
mov dl,10
mov ah,2
int 21h
mov dl,13
mov ah,2
int 21h
AFFAN KHURRAM 1912215

ret
n_l endp
end main

32) Write an assembly code to take multiple character as input from user with prompt and program
should tell how many vowels and consonants were there in the input. Use enter key to display the both
number of counts with prompt. After displaying the result, ask him again for a choice that he wants to
run program again or terminate the program. Use “Y” to run again and Use “Esc key” to terminate the
program.

.model small
.stack 100h
print macro p
lea dx,p
mov ah,09h
int 21h
endm

display macro g
mov dl,g
mov bh,0ah
mov ah,00h
mov al,dl
div bh
mov ch,ah
mov dl,al
add dl,30h
mov ah,02h
int 21h
mov dl,ch
add dl,30h
mov ah,02h
int 21h
endm
.data
m1 db 0ah,0dh,"Enter the String: $"
m2 db 0ah,0dh,"Vowels= $"
m3 db 0ah,0dh,"Consonants= $"
m4 db 0ah,0dh,"No of Vowels= $"
m5 db 0ah,0dh,"No of Consonants= $"
a db 20h dup("$")
b db "aeiouAEIOU"
AFFAN KHURRAM 1912215

v db 20h dup("$")
co db 20h dup("$")
k dw 0
f dw 0
g db 0
z db 0
.code
main proc
mov ax,@data
mov ds,ax
mov es,ax
mov si,0000h
print m1

loop1: mov ah,01h


int 21h
mov a[si],al
inc si
cmp al,0dh
jne loop1

mov cx,si
mov di,0000h
mov si,0000h
dec cx

loop3: mov bh,a[si]


loop4: mov bl,b[di]
cmp bh,bl
jne loop2
mov dx,0000h
mov dx,si
mov si,k
inc k
mov v[si],bh
inc g
mov si,dx
loop6: inc si
mov di,0000h
cmp si,cx
jne loop3
jmp loop5

loop2: inc di
cmp di,0ah
jl loop4
mov dx,0000h
mov dx,si
AFFAN KHURRAM 1912215

mov si,f
inc f
mov co[si],bh
inc z
mov si,dx
jmp loop6

loop5: print m2
print v
print m4
display g

print m5
display z
mov ah,4ch
int 21h

main endp
end main
AFFAN KHURRAM 1912215

33) Write a program which take upper-case single character as input from user and convert it into lower-
case and display its result using logic instruction.

.model small
.stack 100h
.data

.code
main proc
mov ah, 1
int 21h

OR al, 00100000b

mov dl,al
mov ah,2
int 21h

mov ah,4ch
int 21h

main endp
end main

34) Write a program which take lower-case single character as input from user and convert it into
upper-case and display its result using logic instruction.

.model small
.stack 100h
.data

.code
main proc
mov ah, 1
int 21h

and al,11011111b
AFFAN KHURRAM 1912215

mov dl,al
mov ah,2
int 21h

mov ah,4ch
int 21h

main endp
end main

35) Write a program which takes string input from user and converts that string into lower case,
upper case and toggle case using logic instruction only.

.model small
.stack 100h
.data
str1 db 30 dup (?)
.code
main proc
mov ax,@data
mov ds,ax
mov cx,10
mov si,offset str1
L1:
mov ah,1
int 21h
mov [si],al
inc si
loop L1
mov cx,10
mov si,offset str1
L2:
mov bl,[si]
AND bl,11011111b
mov dl,bl
mov ah,2
int 21h
inc si
loop L2
mov cx,10
mov si,offset str1
L3:
mov bl,[si]
AFFAN KHURRAM 1912215

OR bl,00100000b
mov dl,bl
mov ah,2
int 21h
inc si
loop L3
mov cx,10
mov si,offset str1
L4:
mov bl,[si]
XOR bl,00100000b
mov dl,bl
mov ah,2
int 21h
inc si
loop L4

mov ah,4ch
int 21h

main endp
end main

36) Write a password program which take input from user and display ‘*’ on screen. Then compare
the input character with the store character and display “Correct Password” if password correctly enter
else print “Incorrect password” on screen.

print macro p1
mov ah,9
mov dx,offset p1
int 21h
endm
.model small
.stack 100h
.data
msg1 db 'Please enter your password:$'
msg2 db 10,13,'Password is correct$'
msg3 db 10,13,'invalid password please try again',10,13,'$'
pass db 'SZABIST'
input db 30 dup (0)
counter dw ?
msg4 dw ?
.code
main proc
mov ax,@data
mov ds,ax
AFFAN KHURRAM 1912215

start:
mov counter,0
mov si,offset input
print msg1
L1:
mov ah,7
int 21h
mov bl,al
cmp bl,13
je pas_match
mov dl,'*'
mov ah,2
int 21h
mov [si],bl
inc counter
inc si
jmp L1
pas_match:
mov si,offset pass
mov bx,offset input
mov cx,counter
L2:
mov dl,[si]
mov al,[bx]
cmp al,dl
jne incorrect
inc si
inc bx
loop L2
jmp correct
correct:
print msg2
jmp end1
end1:
mov ah,4ch
int 21h
incorrect:
print msg3
jmp start
main endp
end main
AFFAN KHURRAM 1912215

37) Write a program to take two number as input from user then multiply them and display the result
after multiplication.

.model small
.stack 100h
.data
num1 db ?
num2 db ?
result db ?
msg1 db 10,13,"enter first number to multiply : $"
msg2 db 10,13,"enter second number to multiply : $"
msg3 db 10,13,"result of multiplication is : $"

.code

main proc
mov ax,data
mov ds,ax
lea dx,msg1
mov ah,9
int 21h
mov ah,1
int 21h
sub al,30h
mov num1,al
lea dx,msg2
mov ah,9
int 21h
mov ah,1
int 21h
sub al,30h
mov num2,al
mul num1
mov result,al
aam
add ah,30h
add al,30h
mov bx,ax
lea dx,msg3
mov ah,9
int 21h
mov ah,2
mov dl,bh
int 21h
mov ah,2
mov dl,bl
int 21h
AFFAN KHURRAM 1912215

mov ah,4ch
int 21h
main endp
end main

38) Write a program to take two number as input from user then divide them and display the result
after division.
.model small
.stack 100h ; reserves space in bytes
.data
msg1 db 'Quotient = $'
msg2 db 10,13,'Remainder = $'
.code
main proc
mov ax , @data
mov ds , ax

mov ax , 26 ; dividend is 26 only ax register is used


mov bl, 5 ;divisor is 5 only lower 8 bit registers can be used bl,cl,dl
div bl ;ah= remainder , al = quotient
;moving into ch and cl because ah changes while printing

mov ch , ah
mov cl , al
;printing quotient

lea dx,msg1
mov ah , 9
int 21h

mov dl,cl
add dl,48
mov ah,2
int 21h
;printing remainder

lea dx , msg2
mov ah,9
int 21h

mov dl , ch
add dl,48
AFFAN KHURRAM 1912215

mov ah ,2
int 21h

mov ah,4ch
int 21h

main endp
end main

39) Write a program which ask user to enter a digit (from 1 to 9 only) and then print the table of
that number.
The program is look like this
Please enter a digit = 3
(User press 3 and then press Enter key)
3 x 01 = 03
3 x 02 = 06
3 x 03 = 09
3 x 04 = 12
3 x 05 = 15
3 x 06 = 18
3 x 07 = 21
3 x 08 = 24
3 x 09 = 27
3 x 10 = 30

.model small
.stack 100h
.data
message db 0ah, 0dh, "enter a number: $"
notprocess db 0ah, 0dh, "not a valid digit, cannot proces$"

.code

main:
mov ax, @data
mov ds, ax

lea dx, message


mov ah, 09h
int 21h

mov ah, 01h


int 21h

mov ch, 0ah


AFFAN KHURRAM 1912215

mov cl, 00h

cmp al, 3ah

sub al, 30h


mov bh, al
mov bl, 01h
next:

mov dl, 0dh


mov ah, 02h
int 21h

mov dl, 0ah


mov ah, 02h
int 21h

mov dl, '0'


mov ah, 02h
int 21h

mov dl, bh
add dl, 30h
mov ah, 02h
int 21h

mov dl, '*'


mov ah, 02h
int 21h

mov al, bl
mul bh

aam

push ax

mov ah, 00h


mov al, bl
aaa

mov cl, ah
mov bl, al
AFFAN KHURRAM 1912215

mov dl, cl
add dl, 30h
mov ah, 02h
int 21h

mov dl, bl
add dl, 30h
mov ah, 02h
int 21h

result:
mov dl, '='
mov ah, 02h
int 21h

pop ax

mov dh, al
mov dl, ah
add dl, 30h
mov ah, 02h
int 21h

mov dl, dh
add dl, 30h
mov ah, 02h
int 21h

inc bl
dec ch
cmp ch, 00h
jne next
jne exit

exit:
mov ah, 04ch
int 21h

end main
AFFAN KHURRAM 1912215

40) Write a program that checks whether the entered number is even or odd using div.

display macro p1
mov ah,9
mov dx,offset p1
int 21h
endm
.model small
.stack 100h
.data
msg1 db 10,13,'even number$'
msg2 db 10,13,'Odd number$'
msg3 db 'Please enter any number:$'
.code
main proc
mov ax,@data
mov ds,ax
display msg3
mov ah,1
int 21h
mov ah,0
mov bl,2
div bl ;ah=reminder; al=quotient
cmp ah,0
je L1
jne L2
L2:
display msg2
jmp end1
L1:
display msg1
jmp end1
end1:
mov ah,4ch
int 21h
AFFAN KHURRAM 1912215

main endp
end main

41) Write a program that take input as string and counts total number of characters entered
without spaces (spacebar) and display the result when user press 'ENTER' key it must show the result
not including the 'ENTER' key.

print macro p1
mov dx,offset p1
mov ah,9
int 21h
endm
.model small
.stack 100h
.data
str1 db 10,13,'Please enter your statement:$'
str2 db 10,13,'Total number of character=','$'
str3 db 10,13,'press Y to run again or Press ESC to terminate program$'
.code
main proc
mov ax,@data
mov ds,ax
start:
print str1
mov bl,0
L1:
mov ah,1
int 21h
cmp al,13
je end1
inc bl
cmp al,32
je decr

jmp L1
decr:
dec bl
jmp L1
AFFAN KHURRAM 1912215

end1:
print str2
mov al,bl
mov ah,0
aam
mov bl,al
mov dl,ah
add dl,48
mov ah,2
int 21h
mov dl,bl
add dl,48
mov ah,2
int 21h
L2:
print str3
mov ah,1
int 21h
cmp al,'Y'
je start
cmp al,'y'
je start
cmp al,27
je end2
jmp L2
end2:
mov ah,4ch
int 21h
main endp
end main

42) Write a program to take input from user, check and informing user what he/she entered a)
upper case letter
b) lower case letter
c) number
d) symbol
AFFAN KHURRAM 1912215

print macro p1
mov ah,9
mov dx,offset p1
int 21h
endm

.model small
.stack 100h
.data
msg1 db 10,13,'Upper case letter$'
msg2 db 13,10,'Lower case letter$'
msg3 db 10,13,'Symbol$'
msg4 db 10,13,'Number$'
msg5 db 10,13,'Please enter: Any Number/ symbol / Alphabet',10,13,'$'
.code
main proc
mov ax,@data
mov ds,ax
start:
print msg5
mov ah,1
int 21h
cmp al,27
je end1
cmp al,48
jb symbol
cmp al,57
jbe number
cmp al,65
jb symbol
cmp al,90
jbe upper
cmp al,97
jb symbol
cmp al,122
jbe lower
cmp al,125
jbe symbol

lower:
print msg2
jmp start
upper:
print msg1
jmp start
number:
print msg4
jmp start
AFFAN KHURRAM 1912215

symbol:
print msg3
jmp start
end1:
mov ah,4ch
int 21h

main endp
end main

You might also like