masm programs

15
www.esnips.com/user/vapremaims Page 1 1) 8086/Masm Program On Fibonacci Series. DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE MAIN PROC MOV AH,02H MOV DL,’1’ INT 21H MOV DL,’,’ INT 21H MOV DL,’1’ INT 21H MOV BL,01H MOV CH,01H MOV DL,’,’ INT 21H START1: MOV CL,BL ADD BL,CH MOV CH,CL MOV AL,BL MOV AH,00 MOV BH,10 DIV BH MOV CL,AH MOV DL,AL MOV AH,02H ADD DL,30H INT 21H MOV DL,CL ADD DL,30H INT 21H MOV DL,CL ADD DL,30H INT 21H MOV DL,’,’ INT 21H CMP BL,50H JL START1 MOV AX,4C00H INT 21H CODE ENDS END MAIN ***********************

Upload: premaims

Post on 28-Nov-2014

3.728 views

Category:

Documents


5 download

DESCRIPTION

8086 / Masm Programs

TRANSCRIPT

Page 1: Masm Programs

www.esnips.com/user/vapremaims Page 1

1) 8086/Masm Program On Fibonacci Series.

DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE MAIN PROC MOV AH,02H MOV DL,’1’ INT 21H MOV DL,’,’ INT 21H MOV DL,’1’ INT 21H MOV BL,01H MOV CH,01H MOV DL,’,’ INT 21H START1: MOV CL,BL ADD BL,CH MOV CH,CL MOV AL,BL

MOV AH,00 MOV BH,10 DIV BH MOV CL,AH MOV DL,AL MOV AH,02H ADD DL,30H INT 21H MOV DL,CL ADD DL,30H INT 21H MOV DL,CL ADD DL,30H INT 21H MOV DL,’,’ INT 21H CMP BL,50H JL START1 MOV AX,4C00H INT 21H CODE ENDS

END MAIN ***********************

Page 2: Masm Programs

www.esnips.com/user/vapremaims Page 2

2) 8086/Masm Program To Perform The Following Operations. (A) Reverse A String.

DATA SEGMENT M1 DB 10,13,'ENTER THE STRING:$' M2 DB 10,13,'REVERSE OF A STRING:$' BUFF DB 80 DB 0 DB 80 DUP(0) COUNTER1 DW 0 COUNTER2 DW 0 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA

START:MOV AX,DATA

MOV DS,AX MOV AH,09H MOV DX,OFFSET M1 INT 21H MOV AH,0AH LEA DX,BUFF INT 21H MOV AH,09H MOV DX,OFFSET M2 INT 21H LEA BX,BUFF INC BX MOV CH,00 MOV CL,BUFF+1 MOV DI,CX

BACK:MOV DL,[BX+DI] MOV AH,02H INT 21H DEC DI JNZ BACK

EXIT:MOV AH,4CH INT 21H

CODE ENDS END START ************************* Output:- Enter the String SR Engineering College

Page 3: Masm Programs

www.esnips.com/user/vapremaims Page 3

3) 8086/Masm Program To Print Factorial Of A Number

DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC

MOV AX,0001H MOV CX,0008H MOV DX,0000H

L1: MUL CX LOOP L1 MOV CX,00 L2: MOV DX,0000H MOV BX,0AH

DIV BX PUSH DX

INC CX CMP AX,0000H JE L3 JMP L2

L3: POP DX

MOV AH,02H ADD DX,0030H INT 21H LOOP L3

END: MOV AX,4C00H

INT 21H CODE ENDS MAIN ENDP END MAIN *********************

Output:- 40320

Page 4: Masm Programs

www.esnips.com/user/vapremaims Page 4

4) 8086/Masm Program To Print Numbers From 0-9 and 9-0 CODE SEGMENT ASSUME CS:CODE START:

MOV BL,00H MOV AX,0200H

START2: MOV DL,BL ADD DL,30H INT 21H MOV DL,’,’ INT 21H ADD BL,01H CMP BL,0AH

JL START2 SUB BL,01H

START1: MOV DL,BL ADD DL,30H INT 21H MOV DL,’,’ INT 21H SUB BL,01H CMP BL,00H JGE START1

MOV AX,4C00H INT 21H CODE ENDS

END STAR ********************** Output:-

0,1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1,0

Page 5: Masm Programs

www.esnips.com/user/vapremaims Page 5

5) 8086 MASM PROGRAM TO Read In A Binary String Through Keyboard And Display It In The Reverse Order.Also Display Its Parity.

ASSUME DS:DATA1,CS:CODE1 DATA1 SEGMENT MSG DB 0AH,0DH,'ENTER THE BINARY NUMBER$' NUMBER DB 20,0,20 DUP('$') MSG2 DB 0AH,0DH,'THE NUMBER IN REVERSED ORDER IS$',0AH,0DH ODD DB 0AH,0DH,'THE NUMBER HAS ODD PARITY$' EVENPAR DB 0AH,0DH,'THE NUMBER HAS EVEN PARITY$' DATA1 ENDS CODE1 SEGMENT START:MOV AX,DATA1 MOV DS,AX LEA DX,MSG MOV AH,09H INT 21H LEA DX,NUMBER MOV AH,0AH INT 21H MOV BX,0000H MOV CX,BX MOV CL,NUMBER+1 LEA SI,NUMBER+2 AGAIN:MOV AX,0001H AND AL,[SI] JZ SKIP INC BX SKIP:INC SI LOOP AGAIN LEA DX,MSG2 MOV AH,09H INT 21H MOV CX,0000H MOV CL,NUMBER+1 DEC SI DO: MOV DL,[SI] MOV AH,02H INT 21H DEC SI LOOP DO MOV AX,BX MOV BL,02H

Page 6: Masm Programs

www.esnips.com/user/vapremaims Page 6

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 ****************

Output:-

Page 7: Masm Programs

www.esnips.com/user/vapremaims Page 7

6) 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,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 **************** Output:- Enter the Year 2000

Yes, It Is A Leap Year

Page 8: Masm Programs

www.esnips.com/user/vapremaims Page 8

7) 8086 / MASM PROGRAM TO CONVERT THE Given Temperature In Centigrade(<100°C) To Fahrenheit And Kelvin And Display It (I/P And O/P As Decimal Numbers)

ASSUME DS:DATA1,CS:CODE1 DATA1 SEGMENT MSG DB 0AH,0DH,'ENTER THE TEMPERATURE IN DEGREE CELSIUS',0AH,'$' MSG1 DB 0AH,0DH,'ERROR! ENTER A TEMPERATURE LESS THAN 99 DEGREE C$' MSG2 DB 0AH,0DH,'THE TEMPERATURE IN KELVIN SCALE IS=$' MSG3 DB 0AH,0DH,'THE TEMPERATURE IN FARENHEIT SCALE IS APPROXIMATELY=$' MSG4 DB 0AH,0DH,'THE TEMPERATURE IN CELSIUS SCALE IS=$' TEMP DB 6,0,6 DUP('$') RESULT DB 20,0,20 DUP('$') DATA1 ENDS CODE1 SEG START:MOV AX,SEG DATA1 MOV DS,AX LEA DX,MSG MOV AH,09H INT 21H MOV CH,02H ASK: LEA DX,TEMP MOV AH,0AH INT 21H LEA DX,MSG4 MOV AH,09H INT 21H LEA DX,TEMP+2 MOV AH,09H INT 21H DO: LEA BX,TEMP+1 MOV CL,[BX] INC BX MOV AH,[BX] DEC CL JZ DOWN MOV AL,[BX+1] DEC CL JZ DOWN1

Page 9: Masm Programs

www.esnips.com/user/vapremaims Page 9

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 SHOW: MOV AH,09H INT 21H LEA DX,RESULT+2 MOV AH,09H INT 21H

Page 10: Masm Programs

www.esnips.com/user/vapremaims Page 10

RET OVER: MOV AH,4CH INT 21H CODE1 ENDS *************

Output:

Page 11: Masm Programs

www.esnips.com/user/vapremaims Page 11

8) 8086 / MASM PROGRAM To Display The Multiplication Table (First 10 Values) For A Number N(<10d)

ASSUME DS:DATA1,CS:CODE1 DATA1 SEGMENT MSG DB 0AH,0DH,'ENTER THE NUMBER$' NUMBER DB 2,0,2 DUP('$') DECIMAL DB '0','1','2','3','4','5','6','7','8','9' ANS DB 0AH,'0','*','0','=','0','0','$' DATA1 ENDS CODE1 SEGMENT START;MOV AX,SEG DATA1 MOV DS,AX LEA DX,MSG MOV AH,09H INT 21H MOV CX,000AH MOV DL,0AH MOV AH,02H INT 21H LEA DX,NUMBER MOV AH,0AH INT 21H LEA DX,NUMBER INC DX INC DX MOV DI,DX MOV BL,[DI] AND BL,0FH LEA DX,ANS INC DX MOV SI,DX MOV DL,[DI] MOV [SI],DL LEA DX,ANS INC DX MOV DI,DX LEA DX,DECIMAL MOV SI,DX AGAIN:LEA DX,ANS INC DX MOV DI,DX MOV AL,[SI] INC DI INC DI MOV [DI],AL MOV BH,[SI] MOV AX,0000H AND BH,0FH MOV AL,BH

Page 12: Masm Programs

www.esnips.com/user/vapremaims Page 12

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 ***************

Output:- Enter The Number 6

6*0=00

6*1=06

6*2=12

6*3=18

6*4=32

6*5=36

6*6=36

6*7=42

6*8=48

6*9=54

Page 13: Masm Programs

www.esnips.com/user/vapremaims Page 13

9) 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 STACK SEGMENT STORE DB 10,0,10 DUP('$') STACK ENDS CODE1 SEGMENT START:MOV AX,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 INT 21H MOV AH,4CH INT 21H

Page 14: Masm Programs

www.esnips.com/user/vapremaims Page 14

CODE1 ENDS END START ***************

Output:-

Page 15: Masm Programs

www.esnips.com/user/vapremaims Page 15

10) 8086 / Masm Program for Adding of Numbers

.model small

.stack 100h

.data

t dw 10

.code

mov ax,@data

mov ds,ax

mov ax,45

add ax,t

mov dl,al

mov ah,02h

int 21h

mov ah,4ch

int 21h

end

************

Output:-

7