Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 25

1

;PROGRAM TO ADD TWO 8 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DB 08
DATA2 DB 04
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
ADD AL,BL
MOV DL,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0025 DX=000C SP=0000 BP=0000 SI=000 DI=000
DS=0C90 ES=0C80 SS=0C90 CS=0C90 IP=0023 NV UP E1 PL NZ NA PE NC
0C90:0023 CD21 INT 21
2

;PROGRAM TO SUBTRACT TWO 8 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DB 08
DATA2 DB 04
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
SUB AL,BL
MOV DL,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0004 CX=0025 DX=0004 SP=0000 SI=0000 DI=0000
DS=0C8A ES=0C8A CS=0C8A IP=0023 NV UP E1 PL NZ NA PO NC
0C8A:0023 CD21 INT 21
3

;PROGRAM TO MULTIPLY TWO 8 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DB O8
DATA2 DB 04
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
MUL BL
MOV DX,AX
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0004 CX0025 DX=0020 SP=000 BP=000 SI=0000 DI=0000
DS=0C8A ES=0C7A SS=0C8A IP=0023 NV UP E1 PL NZ NA PO NC
0C8A:0023 CD21 INT 21
4

;PROGRAM TO DIVIDE TWO 8 BIT NUMBERS

DATA_SEG SEGMENT
D1 DB 0008
D2 DB 02
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
DIV D2
MOV AH,4CH
MOV AL,00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=0000 CX0024 DX=0004 SP=0000 BP=0000
SI=0000 DI=0000 DS=0C8A ES=0C7A SS=0C8A CS=0C8B
IP=012 NV UP E1 PL NZ NA PO NC
OC8B:0012 CD 21 INT 21
-Q
5

;PROGRAM TO ADD TWO 16 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DW 0008
DATA2 DW 0004
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AX,DATA1
MOV BX,DATA2
ADD AX,BX
MOV DX,AX
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0004 CX=0025 DX=000C SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C72A SS=0C8A CS=0C8B IP=0013 NV UP E1 PLNZ NA PE NC
OC8B:0013 CD 21 INT 21
6

;PROGRAM TO SUB TWO 16 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DW 0008
DATA2 DW 0004
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AX,DATA1
MOV BX,DATA2
SUB AX,BX
MOV DX,AX
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0004 CX=0025 DX=0004 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C7A SS=0C8A CS=0C8B IP=0013 NV UP E1 PL NZ NA PO NC
OC8B:OO13 CD21 INT 21
7

;PROGRAM TO DIVIDE TWO 16 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DW 0008
DATA2 DW 0004
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AX,DATA1
MOV BL,DATA2
SUB BL
MOV DX,AX
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX0004 CX=0025 DX=0002 SO=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C7A SS=0C8A CS=0C8A IP=0023 NV UP E1 NG NZ NA PO
NC
OC8A:0023 CD21 INT 21
8

;PROGRAM TO FIND LCM OF A GIVEN NUMBERS

DATA_SEG SEGMENT
N1 DW 16
N2 DW 06
DATA SEG ENDS
CODE-SEG SEGMENT
ASSUME CS:CODE SEG,DS:DATA SEG
START: MOV AX,OFFSET DATA SEG
MOV DS,AX
MOV AX,N1
MOV BX,N2
REPEAT: CMP AX,BX
JNL DOWN
XCHG AX,BX
DOWN: MOV DX,00
DIV BX
MOV AX,DX
CMP DX,00
JNE REPEAT
MOV AX,N1
MUL N2
DIV BX
MOV DL,AL
MOV AX,4C00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=0002 CX=003D DX=0030 SP=000 BP=0000 SI=0000 DI=0000
DS=0C90 ES=0C80 SS=0C90 CS=0C91 IP=002B NV UP E1 PL NZ NA PE NC
0C91:002B CD21 INT 21
9

;PROGRAM TO FIND GCD OF A GIVEN NUMBER

DATA_SEG SEGMENT
N1 DW 16
N2 DW 06
DATA _SEG ENDS
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
MOV AX,N1
MOV BX,N2
REPEAT:CMP AX,BX
JNL DOWN
XCHG AX,BX
DOWN: MOV DX,00
DIV BX
MOV AX,DX
CMP DX,00
JNE REPEAT
MOV AX,4C00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=0002 CX=0032 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C90 ES=0C80 SS=0C90 CS=0C91 IP=0020 NV UP E1 PL NZ NA PE NC
OC91:0020 CD21 INT 21
10

;PROGRAM TO MULTIPLY TWO 16 BIT NUMBERS

DATA_SEG SEGMENT
DATA1 DW 0008
DATA2 DW 0004
DATA ENDS
CODE SEGMENT
ASSSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AX,DATA1
MOV BX,DATA2
SUB BX
MOV DX,AX
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0004 CX=0025 DX=0020 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C7A SS=0C8A CS=0C8B IP=0013 NV UP E1 PL NZ NA PO NC
OC8B:0013 CD21 INT 21
11

;PROGRAM TO SORT IN ASCENDING ORDER

DATA_SEG SEGMENT
N DB 10,08,01,02,06
LEN DW 05
RESULT DB 5 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,OFFSET DATA
MOV DS,AX
MOV SI,OFFSET RESULT
MOV BX,LEN
DEC BX
REPEAT:MOV CL,BL
MOV SI,00
UP: MOV AL,N[SI]
INC SI
CMP AL,N[SI]
JB DOWN
XCHG AL,N[SI]MOV N[SI-1].AL
DOWN:LOOP UP
DEC BL
JNZ REPEAT
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0000 DX0000 SP=0000 BP=0000 SI=0000 SI=0001 DI=0000
DS=0C90 ES=0C80 SS=0C90 CS=0C91 IP=002E NV UP E1 PL ZR NA PE CY
0C91:002E CD21 INT 21
-EDS:0000
0C90:0000 01. 02. 06. 08. OA. O5.
12

;PROGRAM TO SORT A LIST OF NUMBERS IN DESCENDING ORDER

DATA_SEG SEGMENT
N DB 10,00,08,12,02
LEN DW 005
RESULT DB 5 DUP(?)
DATA_SEG ENDS
CODE_SEG SEGMENT
ASSUME CS:CODE SEG,DS:DATA SEG
START: MOV AX,OFFSET DATA SEG
MOV DS,AX
MOV SI,OFFSET RESULT
MOV BX,LEN
DEC BX
REPEAT:MOV CL,BL
MOV SI,00
UP: MOV AL,N[SI]
INC SI
CMP AL,N[SI]
JA DOWN
XCHG AL,[SI]
MOV N[SI-1],AL
DOWN: LOOP UP
DEC BL
JNZ REPEAT
MOV AX,4C00H
INT 2 1H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0001 DI=0000
DS=0C90 ES=0C80 SS=0C91 IP=002E NV UP E1 PL ZR NA PE NC
0C91:002E CD 21 INT 21
-EDS:0000
0C90:0000 0C. 0A. 08. 02. 00.-Q
13

;PROGRAM TO COUNT NUMBERS OF 1'S AND 0’S IN 16 BIT DATA

DATA_SEG SEGMENT
N DW 0009
ZEROS DB?
ONES DB?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV CX,0010H
MOV BX,00H
MOV DL,00H
MOV AX,N
UP: SAR AX,01H
JNC ZERO
INC DL
JMP DOWN
ZERO: INC BL
DOWN:LOOP UP
MOV ZEROS,BL
MOV ONES,DL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=000E CX=0000 DX=0002 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C7A SS=0C8A CS=0C8B IP=0028 NV UP E1 PL NZ NA PO NC
0C8B:028 CD 21 INT 21
14

;PROGRAM TO GENERATE THE N NUMBER OF FIBBONACCI SERIES

DATA_SEG SEGMENT
N DB 08H
A DB 09 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV CL,N
MOV AL,00
MOV SI,00
MOV[SI]AL
MOV BL,01
MOV AL,BL
UP:INC SI
MOV [SI],AL
ADD AL,BL
MOV DL,AL
CMP AL,CL
JZ DOWN
MOV AL,BL
MOV BL,DL
LOOP UP
DOWN:MOV DL,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0037 CX=0000 DX=0022 SP=0000 BP=0000 SI=0008 DI=0000
DS=0C8A ES=0C7A SS=0C8BA CS=0C8B IP=002A NV UP E1 PL NZ NA PE NC
OC8B:002A CD21 INT 21
-EDS:0000
0C8A:0000 00. 01. 02. 03.05. 08.0D
0C8A:0008 15.
15

;PROGRAM TO CHECK FOR PALINDROME

DATA_SEG SEGMENT
LEN DB 09H
PAL DB 00H
STR1 DB 'GADAG', '$'
DATA _SEG ENDS
CODE_SEG SEGMENT
ASSUME CS;CODE_SEG,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
MOV ES,AX
MOV LEN,00H
MOV SI,OFFSET STR1
MOV AX,01H
INT 21H
MOV [SI],AL
INC SI
INC LEN
CMP AL,00H
JNE UP
DEC LEN
MOV CL,LEN
MOV PAL,00
MOV SI,OFFSET STR1
MOV DI,SI
ADD DI,CX
DEC DI
SHR CX,1
UP: LODSB
CMP AL,[DI]
JNZ NPAL
DEC DI
LOOP UP
MOV PAL,OFH
NPAL: INT 3
CODE_SEG ENDS
END START

RESULT:
AX=0001 BX=0000 CX=0054 DX=0000 SP=0000 BP=0000
SI=0002 DI=0000
DS=0D17 ES=02BE SS=OD17 CS=02BE IP=0000 NV UP E1 PL
NZ NA PO NC
02BE:0000 CC INT 3
-EDS:0000
OD17:0000 00. 00. 47.41.44.41. 47.
16

;PROGRAM TO FIND THE BIGGEST ELEMENT IN AN ARRAY

DATA_SEG SEGMENT
N DB 07H,05H,03H,08H,2H,09H,01H,05H
LEN DB 08H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV SI,00H
MOV CL,LEN
MOV AL,N[SI]
UP: INC SI
CMP AL,N[SI]
JA DOWN
MOV AL,N[SI]
DOWN: LOOP UP
MOV DL,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0000 CX=0000 DX=0009 SP=0000 BP=0000 SI=0008 DI=0000
DS=0C8A ES=0C7A SS=0C8H CS=0C8B IP=0022 NV UP EI PL NZ NA PO NC
0C8B:0022 CD21 INT 21
17

;PROGRAM TO FIND THE FACTORIAL OF A GIVEN NUMBER

DATA_SEG SEGMENT
N DB 05
DATA ENDS
CODE SEGMENTS
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV CL,N
MOV AL,01
UP: MUL CL
DEC CL
JNZ UP
MOV DL,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0000 CX=0000 DX=0078 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C7A SS=0C8A CS=0C8B IP=0016 NV UP EI PL ZR NA PE NC
0C8B:0016CD21 INT 21
18

;PROGRAM TO FIND THE SMALLEST NUMBER IN AN ARRAY

DATA_SEG SEGMENT
N DB 07H,05H,03H,08H,02H,09H,01H,05H
LEN DB 08H
DATA ENDS
CODE SEGMENTS
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV SI,00H
MOV CL,LEN
MOV AL,N[SI]
UP: INC SI
CMP AL,N[SI]
JB DOWN
MOV AL,N[SI]
DOWN:LOOP UP
MOV DL,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0000 CX=0000 DX=0001 SP=0000 BP=0000 SI=0008 DI=0000
DS=0C8A ES=0C7A SS=0C8H CS=0C8B IP=0022 NV UP EI NG NZ AC PE CY
0C8B:0022 CD21 INT 21
19

;PROGRAM TO SEARCH A NUMBER IN AN ARRAY

DATA_SEG SEGMENT
N DB 10H,08H,01H,02H,06
LEN DB 05H
SEA DB 02
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV DL,00H
MOV CL,LEN
MOV SI,00
UP: MOV AL,N[SI]
INC SI
CMP AL,SEA
JNZ DOWN
MOV DL,01
JMP STOP
DOWN:LOOP UP
STOP: MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
AX=4C00 BX=0000 CX=0002 DX=0001 SP=0000 BP=0000 SI=0004 DI=0000
DS=0C8A ES=0C7A SS=0C8H CS=0C8B IP=0023 NV UP EI PL ZR NA PE NC
0C8B:0023 CD21 INT 21
20

;PROGRAM TO COUNT NUMBER OF VOWELS

DATA SEGMENT
STR1 DB "BANGALORE",'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV SI,OFFSET STR1
MOV BL,00
MOV CH,00H
MOV CL,09H
NEXTCHAR:MOV AL,[SI]
CMP AL,'A'
JNZ EEEEE
INC BL
INC SI
JMP NEXTCHAR
EEEEE: CMP AL,'E'
JNZ IIIII
INC BL
INC SI
JMP NEXTCHAR
IIIII: CMP AL,'I'
JNZ OOOOO
INC BL
INC SI
JMP NEXTCHAR
OOOOO:CMP AL,'O'
JNZ UUUUU
INC BL
INC SI
JMP NEXTCHAR
UUUUU:CMP AL,'U'
JNZ DOWN
INC BL
INC SI
DOWN: INC SI
LOOP NEXTCHAR
MOV AX,4C00H
INT 21H
CODE ENDS
END START

RESULT:
INPUT:SRT1="BANGALORE,"'$'
OUTPUT:BL=04
21

;PROGRAM TO FIND SQUARE OF A GIVEN NUMBER

DATA_SEG SEGMENT
DATA1 DW 04H
SQR DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,OFFSET DATA
MOV DS,AX
MOV AX,DATA1
MUL AX
MOV SQR,AX
MOV DX,SQR
MOV AX,4C00H
INT21H
CODE ENDS
END START

RESULT:
INPUT : DATA1=04H
OUTPUT : DX=10
22

;PROGRAM TO GENERATE MULTIPLICATION TABLE

DATA_SEG SEGMENT
NUM DB 02H
TABLE DB 10 DUP(?)
DATA_SEG ENDS
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
MOV SI,NUM
MOV CX,0AH
LEA DI,TABLE
MOV AX,00
MOV BX,[SI]
UP: ADD AX,BX
MOV [DI],AX
INC DI
DEC CX
JNZ UP
MOV AX,4C00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=0002 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=000B
DS=0D17 ES=0D07 SS=0D17 CS=0D18 IP=0020 NV UP EI PL ZR NA PE NC
0D18:0020 CD21 INT 21
-EDS:0000
0D17:0000 02.02. 04. 06. 08. 0A. 0C. 0E.
0D17:0008 10.12. 14.
23

;PROGRAME ADDITION OF TWO MATRIX

DATA_SEG SEGMENT
DIM EQU 09H
MAT1 DB 01,02,03,04,05,06,07,08,09
MAT2 DB 01,02,03,04,05,06,07,08,09
MAT3 DB 09H DUP(?)
DATA_SEG ENDS
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
MOV CX,DIM
MOV SI,OFFSET MAT1
MOV DI,OFFSET MAT2
MOV BX,OFFSET MAT3
NEXT: XOR,AX,AX
MOV AL,[SI]
ADD AL,[DI]
MOV [BX],AX
INC SI
INC DI
ADD BX,01
LOOP NEXT
MOV AX,4C00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=001B CX=0000 DX=0000 SP=0000 BP=0000 SI=0009 DI=0012
DS=0C8A ES=0C7A SS=0C8A CS=0C8C IP=0023 NV UP E1 PL NZ NA PE NC
0C8C0023 CD21 INT 21
-EDS:0000
0C8A:0000 01.02.03.04.05.06.07.08
0C8A:0008 09.01.02.03.04.05.06.07
OC8A:0010 08. 09.02.04.06.08.0A.0C
0C8A:0018 0E. 10. 12.
24

;PROGRAM TO PRINT 0 TO N NUMBERS

DATA_SEG SEGMENT
N DB 10H
DATA_SEG ENDS
CODE_SEG SEGMENTS
ASSUME CS:CODE_SEG,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
MOV SI,00
MOV CL,N
MOV AL,00
UP: MOV[SI],AL
INC SI
INC AL
LOOP UP
MOV AX,4C00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
AX=4C00 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0010 DI=0000
DS=0C8A ES=0C7A SS=0C8A CS=0C8A IP=0018 NV UP E1 PL NZ AC PO NC
0C8B:0018 CD21 INT 21
-EDS:0000
0C8A:0000 00. 01. 02. 03. 04. 05. 06. 07.
0C8A:0008 08. 09. 0A. 0B.
25

;PROGRAM TO CHECK GIVEN NUMBER IS EVEN OR ODD

DATA_SEG SEGMENT
N DB 0BH
MSG1 DB 'GIVEN NUMBER IS EVEN','$'
MSG2 DB 'GIVEN NUMBER IS ODD','$'
DATA_SEG ENDS
CODE_SEG SEGMENTS
ASSUME CS:CODE_SEG,DS:DATA_SEG
START: MOV AX,OFFSET DATA_SEG
MOV DS,AX
MOV AL,N
SHR AL,01
JC DOWN
MOV AH,09H
MOV DX,OFFSET MSG1
JMP DOWN1
DOWN: MOV AH,09H
MOV DX,OFFSET MSG2
DOWN1:INT 21H
MOV AX,4C00H
INT 21H
CODE_SEG ENDS
END START

RESULT:
GIVEN NUMBER IS ODD

You might also like