8086 Programs
8086 Programs
16 BIT ADDITION
(INDIRECTADDERESSING MODE):
ASSUME CS:CODE,DS:DATA
DATA SEGMENT 16 BIT ADDITION
NUM DW 02H (REGISTERADDERESSING MODE):
DATA ENDS
CODE SEGMENT ASSUME CS:CODE
START: CODE SEGMENT
MOV AX,DATA START:
MOV DS,AX MOV BX,5678H
MOV AX,4444H MOV AX,1234H
MOV BX,OFFSET NUM ADD AX,BX
ADD AX,[BX] INT 03H
INT 03H CODE ENDS
CODE ENDS END START
END START
MULTIPLICATION:
i) 16 BIT MULTIPLICATION
(DIRECT ADDERESSING MODE):
AIM: - To write an assembly language program
for multiplication of two 16-bit numbers.
PROGRAM: ii) 16 BIT MULTIPLICATION
ASSUME CS:CODE,DS:DATA
DATA SEGMENT (REGISTER ADDERESSING MODE):
X DB 02H AIM: - To write an assembly language program
DATA ENDS for multiplication of two 16-bit numbers.
CODE SEGMENT ASSUME CS:CODE
START: CODE SEGMENT
MOV AX,DATA START:
MOV DS,AX MOV BX,1234H
MOV AX,0002H MOV AX,1234H
MUL X MUL BX
INT 03H INT 03H
CODE ENDS CODE ENDS
END START END STAR
DIVISION:
i) 16 BIT DIVISION (DIRECT ADDRESSING MODE):
AIM: - To write an assembly language program for multiplication of two 16-bit numbers
PROGRAM:
ASSUME CS:CODE,DS:DATA START:
DATA SEGMENT MOV AX,DATA
NUM DW 02H MOV DS,AX
DATA ENDS MOV AX,4444H
CODE SEGMENT DIV NUM
INT 03H
CODE ENDS
END START
B) DECENDING ORDER
AIM:-Program to sort the given numbers in descending order
PROGRAM:
ASSUME CS:CODE,DS:DATA L2:MOV AX,[SI]
DATA SEGMENT CMP AX,[SI+2]
LIST DW 55H,67H,23H,45H JA L3
COUNT EQU 04H XCHG [SI+2],AX
DATA ENDS XCHG [SI],AX
CODE SEGMENT L3:ADD SI,02
START: LOOP L2
MOV AX,DATA DEC DX
MOV DS,AX JNZ L1
MOV DX,COUNT-1 INT 03H
L1:MOV CX,DX CODE ENDS
MOV SI,OFFSET LIST END START
SERCHING OF AN ARRAY:
AIM: Write an alp program for to search a number or character from an array
PROGRAM: SEARCHING AN ARRAY CASE: EQUAL
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
ARRAY DB 27H, 0A9H, 82H, 4DH, 36H
N1 DB 82H
N2 DB 25H
COUNT DB 05H
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
MOV CL, COUNT
MOV BX, OFFSET ARRAY
LEA BX, ARRAY
MOV DL, N1
BACK: CMP DL,[BX]
JE EXIT
INC BX
LOOP BACK
MOV AX, 0FFFFH
INT 03H
EXIT: MOV AX, 00H
INT 03H
CODE ENDS
END START
INSERT A STRING
PROGRAM
ASSUME CS:CODE,DS:DATA,ES:DATA DATA SEGMENT
S1 DB "ANURAGLEGE" MOV CX,04H
S2 DB "COL" REP MOVSB
S3 DB 0DH DUP(?) LEA SI,[S2+2]
DATA ENDS MOV CX,3
CODE SEGMENT REP MOVSB
START: LEA SI,[S1+5]
MOV AX,DATA MOV CX,6
MOV DS,AX REP MOVSB
MOV ES,AX INT 03H
STD CODE ENDS
LEA SI,[S1+09H] END START
LEA DI,[S3+0CH]
REVERSING A STRING
PROGRAM
ASSUME CS: CODE, DS: DATA ,ES: DATA LEA DI,[S2+8]
DATA SEGMENT MOV CX,9
S1 DB "KNOWLEDGE" BACK:CLD
S2 DB 09H DUP (?) LODSB
DATA ENDS STD
CODE SEGMENT STOSB
START: DEC CX
MOV AX,DATA JNZ BACK
MOV DS,AX INT 03H
MOV ES,AX CODE ENDS
LEA SI,[S1]
END START
STRING LENGTH
PROGRAM
ASSUME CS:CODE,ES:DATA CLD
DATA SEGMENT LEA DI,STG
STG DB "ANURAG#" MOV AL,CHAR
CHAR DB "#" MOV CX,14
LEN DW 00H REPNE SCASB
DATA ENDS MOV LEN,DI
CODE SEGMENT INT 03H
START: CODE ENDS
MOV AX,DATA END START
MOV ES,AX
STRING COMPARISION
CASE: STRINGS ARE EQUAL
ASSUME CS:CODE, DS: DATA, ES: DATA DATA SEGMENT
S1 DB "ELECTRONICS $" MOV CX,11
S2 DB "ELECTRONICS $" CLD
S3 DB "COMPUTER $" REP CMPSB
MSG1 DB "STRINGS ARE EQUAL $" JNZ ABC
MSG2 DB "STRINGS ARE NOT EQUAL $" LEA DX,MSG1
DATA ENDS LAST:MOV AH,09H
CODE SEGMENT INT 21H
START: MOV AH,4CH
MOV AX,DATA INT 21H
MOV DS,AX ABC:LEA DX,MSG2
MOV ES,AX JMP LAST
LEA SI,S1 CODE ENDS
LEA DI,S2 END START
Input: binary--------01A9
Output: bcd------------425
Input: BCD-------------27
Output:------------------1B
Input: 0A, 04
Output: 02
Output: Ones--------04
Zeros--------04