You are on page 1of 3

11,12,22,23, Program to input add dx,48 and bh, 56 Greater: iMsg2 db 10,13,"Enter Second mov ah,2

string from user and print it int 21h mov cl, 5 mov dx, offset MsgGr Number:$" int 21h
.model small loop l3 rol bh, cl mov ah, 9 outputMsg db 10,13,"Their inc si
.stack 100h add bh, 48 int 21h Product is = :$" loop uppercase
.data mov ah, 02 jmp PRINT n1 db ?
mov ah,4ch mov dl, bh EQUAL: n2 db ?
var1 db 100 dup("$")
int 21h int 21h mov dl, 10 .CODE mov ah,4ch
.code
mov bh, octal mov ah, 2 MAIN PROC int 21h
main proc
and bh, 7 int 21h MOV AX, @data inputString endp
mov ax,@data main endp add bh, 48 mov dl, 13 MOV DS, AX end inputString
mov ds,ax end main
mov si,offset var1 mov ah, 02 mov ah, 2 LEA DX, iMsg1 34 Program to convert upper case
16,17 Display the smallest mov dl, bh int 21h MOV AH, 09h string to lower case string
l1: mov ah,1
int 21h number in an array int 21h mov dx, offset MsgEq INT 21H .model small
cmp al,13 .model small mov ah, 04ch mov ah, 9 MOV AH, 01H .stack 100h
je printString .stack 100h int 21h int 21h INT 21H .data
mov [si],al .data main endp jmp PRINT SUB AL,48 var1 db 100 dup("$")
inc si STRING1 DB 2,1,7,5 end main PRINT: MOV n1,AL .code
jmp l1 res db ? 24 Program to reverse the mov ah,4ch LEA DX, iMsg2 inputString proc
printString: .code hard coded string int 21h MOV AH, 09h mov ax,@data
mov dx, offset var1 main proc ;dosseg main endp INT 21H mov ds,ax
mov ah,9 mov ax,@data .model small end main MOV AH, 01H mov bl, 0
int 21h mov ds,ax .stack 100h 27,28 Program to print the INT 21H mov si,offset var1
mov cx, 4 .data following pattern;( counting ). SUB AL,48 l1: mov ah,1
mov bl, 79h arr1 db 'k','c','n','g' .model small ;MOV n2,AL int 21h
mov ah,4ch LEA SI, STRING1 .code .stack 100h MUL n1 cmp al,13
int 21h up: main proc .data LEA DX, outputMsg je printString
main endp mov al, [SI] mov ax,@data .code MOV AH, 09h mov [si],al
end main cmp al, bl mov ds,ax main proc INT 21H inc si
13,21 Get an integer from user jge nxt mov si, offset arr1 mov ax,@data ADD AX,48 inc bl
mov bl, al mov cx, 4 mov ds,ax MOV DL,AL jmp l1
and display whether the MOV AH, 02H
nxt: L1: printString:
number is even or odd. inc si INT 21H mov si,offset var1
.model small mov ax, [si]
dec cx mov ah, 1 MOV AH, 4CH mov cl, bl
.stack 100h push ax
jnz up int 21h INT 21H lowercase:
.data inc si
mov res,bl mov cl, al MAIN ENDP mov dx,[si]
ev db 'Even$' loop L1
mov dl,res sub cl, 48 END MAIN add dx, 32
od db 'Odd$' mov cx, 4
add dl,48 mov dl,10 31 Take a character as input mov ah,2
.code L2:
mov ah,2 mov ah, 2
main proc pop dx from user and find the int 21h
int 21h int 21h inc si
mov ax,@data mov ah, 2 occurrence of that
mov dl,13 loop lowercase
mov ds,ax int 21h character in hard coded
mov ah, 2 mov ah,4ch
mov ah,1 inc si
mov ah,4ch
loop L2
int 21h string int 21h
int 21h int 21h mov bx, 1 .model small inputString endp
mov bl,2 main endp L1: .stack 100h end inputString
div bl end main push cx .data
mov ah,4ch 35 Program to print carry while
cmp ah,0 20 Display the octal mov cx, bx String db 'helloworld$'
int 21h shifting left 8 times
je IsEven L2: .code
number of given decimal main endp .model small
mov dx,10 Mov dx, bx main proc
mov ah,2 number 25 Program to Input string add dx, 48 .stack 100h
mov ax,@data
int 21h .model small from user and reverse it mov ah,2 mov ds,ax .data
mov dx,13 .stack 90h inc bl .code
int 21h mov ah,1 ;Input
mov ah,2 .data jmp l1 main proc
loop L2 INT 21h
int 21h counter db 0 printString: mov dl,0
mov dx,offset od curValue db 0 mov cl, bl mov bl,'$
mov ah,9 prevValue db 0 print: mov dl,10 mov ah, 1
mov si, offset String
int 21h octal db 0 dec si mov ah, 2 int 21h
L1:
mov ah,4ch msg db "Enter a decimal mov dx,[si] int 21h mov cl, 8
cmp bl,[si]
int 21h number and press Enter: $" mov ah,2 mov dl,13 mov bl, al
je ToEnd
octmsg db 13,10,"In octall: $" int 21h mov ah, 2 l1:
cmp al,[si]
.code loop print int 21h shl bl, 1
je Counter
IsEven: main proc Copy 11,12… inc bl mov ah, 2
inc si
mov dx,10 mov ax, @data 26 Program to input two pop cx mov dl, 0
jmp L1
mov ah,2 mov ds, ax loop L1 adc dl, 48
numbers and check if they
int 21h mov ah,4ch int 21h
mov dx,13
are equal, unequal, loop l1
int 21h Counter:
mov ah,2 mov ah, 09h greater or lesser main endp add dl,1
int 21h lea dx, msg Dosseg end main inc si
mov dx,offset ev int 21h .model small mov ah, 4ch
accept:
29 Program to read a jmp L1
int 21h
mov ah,9 .stack 100h
mov ah, 01 .data character and display that main endp
int 21h
mov ah,4ch int 21h MsgEq db 'Numbers are Equal $' character 100 times on ToEnd: end main
int 21h cmp al, 13 MsgUneq db 'Numbers are next add dl,48 36 Program to check the input
main endp je exit Unequal and $' line using loop mov ah,2 number is Negative or Positive
end main sub al, 48 MsgGr db ' First Number is dosseg INT 21h .model small
mov curValue, al greater than second number $' .model small
14,15 Display the sum of all odd 33 Program to convert .stack 100h
cmp counter, 1 MsgLs db ' First Number is lesser .stack 100h .data
numbers between 1 and 100. jl inc_ctr than second number $' lower case string to Upper
.model small .data num db 10 dup('$')
mov al, prevValue .code .code
case string
.stack 100h msgNeg db 'Given Number is Negative. $'
mov bl, 10 main proc .model small
.data main proc msgPos db 'Given Number is Positive. $'
mul bl mov ax, @data .stack 100h
.code mov ah, 1 .code
add al, curValue mov ds, ax .data
main proc int 21h main proc
mov prevValue, al mov ah, 1 var1 db 100 dup("$")
mov ax,@data mov bl,al mov ax,@data
inc counter int 21h .code
mov ds,ax mov cx, 100 mov ds,ax
jmp accept mov bl, al inputString proc
mov cx,1 l1: mov si, offset num
inc_ctr: mov al, 1 mov ax,@data
mov ax,0 mov dl, bl
mov prevValue, al int 21h mov ds,ax
l1: mov ah, 2
inc counter mov cl, al mov bl, 0 inputString:
add ax,cx int 21h
jmp accept L1: mov si,offset var1 mov ah, 1
add cl,2 mov dl, 10
exit: cmp bl,cl l1: mov ah,1 int 21h
cmp cl,100 mov ah, 2
mov bl,prevValue je EQUAL int 21h cmp al, 13
jl l1 int 21h
mov dl, 10 cmp al,13 JE CheckNum
mov dl,13
mov ah, 2 je printString mov [si],al
mov ah, 2
mov octal, bl int 21h mov [si],al inc si
mov dx,0 int 21h
xor bx, bx mov dl, 13 inc si jmp inputString
mov bx,10 loop l1
jmp convertTooctall mov ah, 2 inc bl CheckNum:
mov cx,0 convertTooctall: jmp l1
int 21h cmp num,'-'
l2: mov ah, 09h printString:
mov dx, offset MsgUneq mov ah, 4ch JE PrintNeg
div bx lea dx, octmsg mov si,offset var1
mov ah, 9 int 21h mov dx, offset msgPos
push dx int 21h mov cl, bl
int 21h main endp mov ah, 9
mov dx,0 mov bh, octal uppercase:
cmp bl, cl end main int 21h
mov ah,0 and bh, 192 mov dx,[si]
jg Greater 30 Program to take input mov ah,4ch
inc cx mov cl, 2 sub dx, 32
mov dx, offset MsgLs int 21h
cmp ax,0 rol bh, cl two numbers and
mov ah, 9
jne l2 add bh, 48 multiply them
int 21h
mov ah,02h .DATA
l3: mov ah, 02 jmp PRINT iMsg1 db 10,13,"Enter First PrintNeg:
pop dx mov dl, bh Number:$" mov dx, offset msgNeg
int 21h mov ah, 9
mov bh, octal mov ah,1 ; input dinominator int 21h
19 Display the hex number of int 21h
given decimal number sub al,48
.MODEL SMALL JMP Skip mov D,al
.STACK 100h MoreHex: mov ah,0 ; division
.DATA ADD DL, 7h mov al,N
Menu DB 10, 13, 'Enter a choice (1 or JMP HexRet mov bl,D
2):' Skip: DIV bl
DB 10, 13, '1) Convert 1 to 5 Decimal RET push ax ; push content from ax
values to Hex' DEC2HEX ENDP to stack
DB 10, 13, '2) Quit Program', 10, 13, '$' END START
MenuErr DB 10, 13, 'Choice must be a 18 Display the binary
mov dl,10
1, 2, or 3!' number of given decimal
mov ah,2
DB 10, 13, 'Try again!', 10, 13, '$' number int 21h
AskDec DB 10, 13, 'Enter a number .model small mov dl,13
with 1 to 5 digits: ', 10, 13, '$' .stack 100h mov ah,2
.CODE .data int 21h
START PROC msg db 'Enter a decimal
MOV AX, @DATA number:$'
MOV DS, AX msg1 db 0dh,0ah,'Invalid entry mov dx, offset Num ;print
dispMenu: $' numerator string
MOV DX, OFFSET Menu msg2 db 0dh,0ah,'Its equivalent mov ah,9
MOV AH, 09H binary is:$' int 21h
INT 21H .code mov dl,N
MOV AH, 01H main proc add dl,48
INT 21H mov ax,@data mov ah,2
CMP AL, '1' mov ds,ax int 21h
JL dispErr lea dx,msg
CMP AL, '3' mov ah,9
JG dispErr int 21h mov dl,10
CMP AL, '1' mov ah,1 mov ah,2
JE goDec int 21h int 21h
cmp al,30h mov dl,13
jnge invalid mov ah,2
CMP AL, '2' cmp al,39h int 21h
JE goQuit jnle invalid mov dx, offset Dino ;print
dispErr: lea dx,msg2 dinominator string
MOV DX, OFFSET MenuErr mov ah,9 mov ah,9
MOV AH, 09H int 21h int 21h
INT 21H and al,0fh mov dl,D
JMP dispMenu mov cl,3 add dl,48
goDec: mov bh,bl mov ah,2
CALL DEC2HEX shr bh,cl int 21h
JMP dispMenu add bh,30h
mov ah,2
mov dl,bh mov dl,10
goQuit: mov ah,2
int 21h
MOV AL, 0 int 21h
xor bh,bh
MOV AH, 4CH mov dl,13
mov bh,bl
INT 21H mov ah,2
mov cl,2
START ENDP int 21h
and bh,04h
DEC2HEX PROC pop cx ; pop content from stack
shr bh,cl
MOV DX, OFFSET AskDec to cx
add bh,30h
MOV AH, 09H mov dx, offset Quo ;print
mov ah,2
INT 21H quotient string
mov dl,bh
MOV AX, 0 ; Clear AX mov ah,9
int 21h
PUSH AX int 21h
xor bh,bh
Again: mov dl,cl
mov bh,bl
MOV AH, 01H add dl,48
and bh,02h
INT 21H mov ah,2
shr bh,1
CMP AL, 0Dh int 21h
add bh,30h
JE SDiv1 mov dl,10
mov ah,2
mov dl,bh mov ah,2
int 21h int 21h
xor bh,bh mov dl,13
CMP AL, '0'
mov bh,bl mov ah,2
JL Again
and bh,01h int 21h
CMP AL, '9'
add bh,30h mov dx, offset Rem ;print
JG Again
mov ah,2 reminder string
MOV AH, 0
mov dl,bh mov ah,9
SUB AL, 30h
int 21h int 21h
MOV CX, AX
jmp exit mov dl,ch
pop ax
invalid: add dl,48
lea dx,msg1 mov ah,2
MOV BX, 10 mov ah,9 int 21h
MUL BX. int 21h
exit:
mov ah,4ch
mov ah,4ch
ADD AX, CX int 21h
int 21h
PUSH AX main endp
JMP Again end main Main endp
32 Take two numbers end Main
SDiv1: from the user, divide
mov cx, 0 those numbers and print
MOV BX, 16 quotient
pop ax and reminder with a
Div1: proper message
DIV BX .model small
PUSH DX .stack 100h
ADD CX, 1 .data
MOV DX, 0 Num db "Numerator = $"
CMP AX, 0 Dino db "Denominator = $"
JNE Div1 Quo db "Quotient = $"
getHex: Rem db "Reminder = $"
MOV DX, 0 N db ?
POP DX D db ?
ADD DL, 30h .code
getHex: Main proc
MOV DX, 0 mov ax,@data
POP DX . mov ds,ax
ADD DL, 30h mov ah,1
CMP DL, 39h int 21h
JG MoreHex sub al,48
HexRet: mov N,al ; input numerator
MOV AH, 02h
INT 21H
LOOP getHex

You might also like