8086 Microprocessor and Assembly Language Program
8086 Microprocessor and Assembly Language Program
AH AL
BH BL
CH CL
DH DL
Registers
PROGRAM 1
// ASSSEMBLY LANGUAGE PROGRAM ARITHMATICAL OPERATION
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
asm MOV AX, 10
asm MOV BX, 2
asm ADD AX ,BX
printf("%d',_AX);
asm MOV AX, 10
asm MOV BX, 2
asm SUB AX ,BX
printf("%d',_AX);
asm MOV AX, 10
asm MOV BX, 2
asm MUL BX
printf("%d',_AX)
asm MOV AX, 10
asm MOV BX, 2
asm DIV BX
printf("%d',_AX);
getch();
return 0;
}
PROGRAM-2
// ASSSEMBLY LANGUAGE PROGRAM FOR LOGICAL OPERATION
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
asm MOV AX, 10
asm MOV BX, 2
asm OR AX ,BX
printf("VALUE OF OR OF 10 , 2 IS %d\n",_AX);
asm MOV AX, 10
asm MOV BX, 2
asm AND AX ,BX
printf"VALUE OF AND OF 10 , 2 IS %d\n",_AX);
asm MOV AX, 10
asm MOV BX, 2
asm XOR AX ,BX
printf("VALUE OF XOR OF 10 , 2 IS %d\n",_AX);
getch();
return 0;
}
PROGRAM-3
//PROGRAM TO IMPLEMENT IF STATEMENT
// THE PROGRAM WILL NEGATE THE INTEGER IF IT IS NEGEATIVE
//THE ALGORITHM IS
//If AX < 0 Then
//Replace AX by -AX
#include<stdio.h>
#include<conio.h>
int main()
{
int z;
clrscr();
printf("Enter a number");
scanf("%d",&z);
//ENDIF
// if AX < 0
asm mov AX,z; // to move the value of z to ax
asm CMP AX, 0 // compare the value in ax with zero
asm JNL END_IF //jump to label END_IF if it is not less than zero
//then
asm NEG AX; // negate the value in ax
END_IF:
printf("%d",_AX);
return 0;
}
PROGRAM-4
//PROGRAM TO IMPLEMENT IF-ELSE STSATEMENT
//EXAMPLE
//asemmpbly language program to find maximum of two numbers
//ALGORITHM IS
//Example:
//If AX <= BX Then
//Display character in AX
//Else
//Display character in BX
//ENDIF
#include<stdio.h>
#include<conio.h>
int main()
{
int X,Y;
clrscr();
printf("Enter two n umber");
scanf("%d%d",&X,&Y);
asm MOV AX,X;
asm MOV BX,Y;
// if AL<=BL
asm CMP AX, BX; //compare AX with BX
asm JG ELSE_ //jump to ELSE_ if AX>BX
//then
asm MOV DX, BX //move valiue of Ax to DX
PROGRAM-5
/ PROGRAM TO IMPLEMENT WHILE STATEMENT
//EXAMPLE:
// print the sum of first 10 natural number (while statement implementation in assembly)
//ALGORITHM
//Initialize count to 1( DX=1)
//Initialize term to 1(BX=2)
// initialize sum to 0 (AX =0)
//While Count<=10
//sum=sum+term
//term=term+1
//Count = Count + 1
//END_While
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
PROGRAM-6
//IMPLEMENTATION OF FOR
// display of * 80 times
#include<stdio.h>
#include<conio.h>
int main()
{
int z;
clrscr();
//Example: For 80 times DO Display *
//END_IF
asm MOV CX, 80 //INITIALIZE CX TO 80
asm MOV AH, 2 //INITIALIZE AH TO 2 TO DISPLAY A CHARACHTER IF IT FOLLOWED BY INT 21H
INTERRRUPT
asm MOV DL, '*'; //INITIALIZE DL WITH '*"
Next:
asm INT 21H // CALL INTERRUPT TO DISPLAY THE CHARACHTER IN DOS
asm Loop Next
getch();
return 0;
}