Professional Documents
Culture Documents
8086 Masm Programs
8086 Masm Programs
For
M.C.A Students
(Affiliated to Kakatiya University)
www.esnips.com/user/vapremaims
DATA SEGMENT
VAR1 DW 12H,34H,45H,67H,56H
CNT DW 5
RES DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,CNT
MOV SI,0000H
www.esnips.com/user/vapremaims
DATA SEGMENT
N1 DW 0020H,0002H,0002H,0002H
RES DW ?
CNT DB 04H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CL,CNT
MOV SI,0000H
MOV DX,0000H
NEXT: MOV AX,N1[SI]
ADD DX,AX
INC SI
INC SI
LOOP NEXT
MOV AX,DX
DIV CNT
MOV RES,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
*******************
www.esnips.com/user/vapremaims
DATA SEGMENT
N1 DW 0AFFH,0AFFH
N2 DW 0330H,4002H
RES DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,0000H
MOV AX,N1[SI]
MUL N2[SI]
MOV RES,AX
MOV BX,DX
MOV AX,N1[SI+2]
MUL N2[SI]
ADD BX,AX
MOV CX,DX
MOV AX,N1[SI]
MUL N2[SI+2]
ADD BX,AX
ADC CX,DX
MOV RES+2,BX
MOV AX,N1[SI+2]
MUL N2[SI+2]
MUL N2[SI+2]
ADD CX,AX
MOV RES+4,CX
ADC DX,0000H
MOV RES+6,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
************************
www.esnips.com/user/vapremaims
www.esnips.com/user/vapremaims
www.esnips.com/user/vapremaims
7)
www.esnips.com/user/vapremaims
CODE ENDS
END START
**********************
www.esnips.com/user/vapremaims
10
MOV AX,DATA
MOV DS,AX
OUTLOOP:
MOV BX,SIZE
DEC BX
MOV CX,BX
MOV SI,0
INLOOP:
MOV AL,A[SI]
INC SI
CMP AL,A[SI]
JB NOCHANG
XCHG AL,A[SI]
MOV A[SI-1].AL
www.esnips.com/user/vapremaims
11
www.esnips.com/user/vapremaims
12
www.esnips.com/user/vapremaims
13
www.esnips.com/user/vapremaims
14
15
16
17
www.esnips.com/user/vapremaims
18
www.esnips.com/user/vapremaims
19
20
ADD SI,AX
MOV CX,9
CLD
LEA DI,ALFMON
REP MOVSB
RET
LOCMON ENDP
DISPMON ENDP
DISPMON PROC
MOV AH,09
LEA DX,ALFMON
INT 21H
RET
DISPMON ENDP
CODE ENDS
END
*********************
www.esnips.com/user/vapremaims
21
22
MOV AL,10
MUL BL
MOV BL,AL
SUB BH,30H
ADD BL,BH
ADD BL,30H
MOV ARAY[SI],BL
INC SI
LOOP SCAN
SINGLE:
CMP CX,0
JE SORT
MOV ARRAY[SI],BL
INC SI
LOOP SCAN
SORT:
MOV CL,COUNT
FOR1:
PUSH CX
MOV SI,0
MOV BL,COUNT
SUB BL,I
MOV CL,BL
FOR2:
MOV BL,ARRAY[SI]
CMP BL,ARRAY[SI+1]
JG SWAP
L1: INC SI
LOOP FOR2
POP CX
INC I
LOOP FOR1; Sorting Ends, Printing Starts
SPACE:
MOV AH,02H
MOV BH,00
MOV DL,01H
INC ROW
MOV DH,ROW
INT 10H
MOV AH,09H
LEA DX,MESSAGE1
INT 21H
INC COUNT
MOV CL,COUNT
MOV SI,0
www.esnips.com/user/vapremaims
23
PRT:
MOV AH,02H
MOV DL,
INT 21H
MOV DL,ARRAY[SI]
CMP DL,57
JG DIG2
INT 21H
INC SI
LOOP PRT
DIG2:
CMP CX,0
JE COMP
MOV AX,0
SUB DL,30H
MOV AL,DL
MOV BL,10
DIV BL
MOV DX, AX
MOV AH,02H
ADD DL,30H
INT 21H
INC SI
LOOP PRT
COMP:
MOV AX,4C00H
INT 21H
SWAP:
XCHG BL,ARRAY[SI+1]
XCHG ARRAY[SI],BL
JMP L1
CODE ENDS
END START
*******************
www.esnips.com/user/vapremaims
24
www.esnips.com/user/vapremaims
25
www.esnips.com/user/vapremaims
26
22) 8086/Masm Program Using Macro Placing The Cursor At Some Place
GOTO MACRO ROW, COL
MOV AH,02H
MOV BH,00H
MOV CX,1010H
MOV DH,ROW
MOV DL,COL
INT 10H
ENDM
DATA SETMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC
MOV AX,DATA
MOV DS,AX
GOTO AH,20
MOV AX,4C00H
INT 21H
CODE ENDS
MAIN ENDP
END
**************************
www.esnips.com/user/vapremaims
27
www.esnips.com/user/vapremaims
28
www.esnips.com/user/vapremaims
29
www.esnips.com/user/vapremaims
30
31
JZ YESS
LEA DX,NO
MOV AH,09H
INT 21H
JMP DOWN
YESS:LEA DX,YES
MOV AH,09H
INT 21H
DOWN: MOV AH,4CH
INT 21H
CODE ENDS
*********************************
www.esnips.com/user/vapremaims
32
33
INT 21H
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,GET
MOV AH,0AH
INT 21H
LEA DX,MSG2
MOV AH,09H
INT 21H
LEA DX,ENTER
MOV SI,DX
MOV DX,0000H
AGAIN:
LEA BX,GET+1
MOV CL,[BX]
INC BX
MOV DI,BX
AGAIN1:
MOV AL,[SI]
CMP AL,[DI]
JNZ UNDER
INC SI
INC DI
LOOP AGAIN1
MOV BL,20H
CMP [SI],BL;ASCII OF SPACE
JZ FOUND
MOV BL,24H
CMP [SI],BL;ASCII OF $
JZ FOUND
UNDER:INC SI
MOV BL,20H
CMP [SI],BL
JZ DO
MOV BL,24H
CMP [SI],BL
www.esnips.com/user/vapremaims
34
JZ OVER
JMP UNDER
FOUND:
INC DL
DO:INC SI
MOV BL,24H
CMP [SI],BL
JZ OVER
JMP AGAIN
OVER:ADD DL,30H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE1 ENDS
***********************
www.esnips.com/user/vapremaims
35
36
MOV AX,BX
MOV BL,02H
DIV BL
AND AH,01H
JNZ ODDPAR
LEA DX,EVENPAR
MOV AH,09H
INT 21H
JMP DOWN
ODDPAR:
LEA DX,ODD
MOV AH,09H
INT 21H
DOWN: MOV AH,4CH
INT 21H
CODE1 ENDS
END START
****************
www.esnips.com/user/vapremaims
37
29) 8086 /Masm Program To Find Out Whether The Given Year Is A Leap Year
Or Not
ASSUME DS:DATA1,CS:CODE1
DATA1 SEGMENT
MSG DB 0AH,0DH,'ENTER THE YEAR$'
NUMBER DB 6,0,6 DUP('$')
YS DB 0AH,0DH,'YES,IT IS A LEAP YEAR$'
N DB 0AH,0DH,'NO,IT IS NOT A LEAP YEAR$'
DATA1 ENDS
CODE1 SEGMENT
START:MOV AX,SEG DATA1
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,NUMBER
MOV AH,0AH
INT 21H
LEA BX,NUMBER+4
MOV AH,[BX]
MOV AL,[BX+1]
AAD
MOV BL,04H
DIV BL
AND AH,0FFH
JZ YES
LEA DX,N
MOV AH,09H
INT 21H
JMP DOWN
YES:LEA DX,YS
MOV AH,09H
INT 21H
DOWN: MOV AH,4CH
INT 21H
CODE1 ENDS
END START
****************
www.esnips.com/user/vapremaims
38
39
MOV AL,[BX+1]
DEC CL
JZ DOWN1
LEA DX,MSG1
MOV AH,09H
INT 21H
JMP ASK
DOWN:
MOV AL,AH
MOV AH,00H
DOWN1:
AND AX,0F0FH
AAD
DEC CH
JZ SECOND
ADD AX,0111H;273 ADDITION
CALL DISPLAY
LEA DX,MSG2
CALL SHOW
JMP DO
SECOND:
MOV CL,09H
MUL CL
MOV CL,05H
DIV CL
MOV AH,00H
ADD AL,20H;HEX EQUIVALENT OF 32
CALL DISPLAY
LEA DX,MSG3
CALL SHOW
JMP OVER
DISPLAY:LEA BX,RESULT+4
MOV DL,03H
MOV CL,0AH
AGAIN:
DIV CL
ADD AH,30H
MOV [BX],AH
DEC BX
MOV AH,00H
DEC DL
JNZ AGAIN
RET
www.esnips.com/user/vapremaims
40
SHOW:
MOV AH,09H
INT 21H
LEA DX,RESULT+2
MOV AH,09H
INT 21H
RET
OVER:
MOV AH,4CH
INT 21H
CODE1 ENDS
*************
www.esnips.com/user/vapremaims
41
42
MOV AX,0000H
AND BH,0FH
MOV AL,BH
MUL BL
AAM
ADD AX,03030H
INC DI
INC DI
MOV [DI],AH
INC DI
MOV [DI],AL
LEA DX,ANS
MOV AH,09H
INT 21H
INC SI
LOOP AGAIN
MOV AH,4CH
INT 21H
CODE1 ENDS
END START
***************
www.esnips.com/user/vapremaims
43
32) 8086 / MASM PROGRAM To Input 9 Digits And Display The Second Biggest
Number That Can Be Formed Using Those Digits
ASSUME DS:DATA1,CS:CODE1,SS:STACK1
STACK1 SEGMENT
STORE1 DB 10,0,10 DUP('$')
STACK1 ENDS
DATA1 SEGMENT
MSG DB 0AH,0DH,'ENTER THE 9 DIGIT NUMBER$'
NUMBER DB 12,0,12 DUP('$')
MSG1 DB 0AH,0DH,'THE REARRANGED ORDER IS=$'
DATA1 ENDS
STACK1 SEGMENT
STORE DB 10,0,10 DUP('$')
STACK1 ENDS
CODE1 SEGMENT
START;MOV AX,SEG DATA1
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,NUMBER
MOV AH,0AH
INT 21H
MOV CX,0008H
PASS:PUSH CX
MOV CX,0008H
LEA DX,NUMBER+2
MOV SI,DX
AGAIN:MOV AL,[SI]
CMP AL,[SI+1]
JNC DOWN
XCHG AL,[SI+1]
XCHG AL,[SI]
DOWN:
INC SI
LOOP AGAIN
POP CX
LOOP PASS
MOV AL,[SI]
XCHG AL,[SI-1]
XCHG AL,[SI]
LEA DX,MSG1
MOV AH,09H
INT 21H
LEA DX,NUMBER+2
MOV AH,09H
www.esnips.com/user/vapremaims
44
INT 21H
MOV AH,4CH
INT 21H
CODE1 ENDS
END START
***************
www.esnips.com/user/vapremaims
45
46