Tag Archives: 8086

Mix (C++ and Assembly) Program to Find Whether Number is Odd or Even

This C++ program determines whether a given number is even or odd using 8086-style inline assembly. It utilizes the div instruction to divide the number by 2 and then checks the remainder stored in the dx register.

#include<iostream.h>
#include<conio.h>

void main() {
    clrscr();
    int a, res;

    cout << "\n Enter a number";
    cin >> a;

    asm mov ax, a       // Move input number into AX
    asm mov bx, 02h     // Move divisor 2 into BX
    asm div bx          // Divide AX by BX, quotient in AX, remainder in DX
    asm mov res, dx     // Store remainder in res

    if(res == 0) {
        cout << "\n Even";
    } else {
        cout << "\n Odd";
    }

    getch();
}
Continue reading Mix (C++ and Assembly) Program to Find Whether Number is Odd or Even

Mix (C++ and Assembly) Program to Find Whether Number is Positive or Negative

This program demonstrates how to use inline 8086 assembly in C++ to determine whether a given number is positive or negative. It’s a great way to understand how conditional branching works at the assembly level.

#include<iostream.h>
#include<conio.h>

void main() {
    clrscr();
    int a;

    cout << "\n Enter a number:";
    cin >> a;

    asm mov ax, 0000h     // Clear AX
    asm mov ax, a         // Move user input into AX
    asm cmp ax, 0000h     // Compare AX with 0
    asm jl less           // Jump to 'less' if AX < 0
    asm jge greater       // Jump to 'greater' if AX >= 0

less:
    cout << "\n Number is negative";
    asm jmp end

greater:
    cout << "\n Number is positive";

end:
    getch();
}
Continue reading Mix (C++ and Assembly) Program to Find Whether Number is Positive or Negative

Mix (C++ and Assembly) Program to Find Square/Cube/Factorial of a Number

This program demonstrates how to calculate the square, cube, or factorial of a number using 8086 inline assembly in C++. It presents a menu-based approach for the user to choose an operation and performs the calculation using the mul instruction in assembly.

Continue reading Mix (C++ and Assembly) Program to Find Square/Cube/Factorial of a Number

Mix (C++ and Assembly) Program to Perform Signed & Unsigned Multiplication and Division

This post walks through a C++ program that demonstrates how to perform basic arithmetic operations like multiplication and division using inline assembly. It allows the user to choose between signed/unsigned multiplication and division in a loop until they decide to exit.

Continue reading Mix (C++ and Assembly) Program to Perform Signed & Unsigned Multiplication and Division

Mix (C++ and Assembly) Program to Subtract Two 8 bit Numbers

While modern high-level languages like C++ abstract away many low-level operations, sometimes it’s useful to get closer to the hardware to understand how things work under the hood. This example demonstrates how to subtract two 8-bit numbers using inline assembly in a simple C++ program.

#include<iostream.h>
#include<conio.h>
#include<stdio.h>

void main() {
    clrscr();

    short int a, b, c;

    cout << "Enter First Number:";
    cin >> a;

    cout << "Enter Second Number:";
    cin >> b;

    asm mov ax, a      // Move 'a' into AX
    asm mov ah, 00h    // Ensure AH is cleared
    asm mov bx, b      // Move 'b' into BX
    asm mov bh, 00h    // Ensure BH is cleared
    asm sub al, bl     // Subtract BL from AL
    asm mov c, ax      // Store result in 'c'

    cout << "Result:";
    cout << c;

    getch();
}
Continue reading Mix (C++ and Assembly) Program to Subtract Two 8 bit Numbers

8086 Assembly Program to Search an Element in an Array

Array search is where assembly starts feeling like real programming — you need a pointer, a counter, a comparison, and a conditional branch, all working together. This program searches a five-element byte array for a target value and prints either “FOUND” or “NOT FOUND” using a reusable MACRO that wraps the DOS print call.

Continue reading 8086 Assembly Program to Search an Element in an Array

Mix (Assembly and C++) Program to Find Greatest of Two Numbers

This program demonstrates how to compare two integers using 8086 inline assembly in C++. By leveraging assembly instructions like sub and conditional jump js, the program determines which number is greater.

#include<iostream.h>
#include<conio.h>

void main() {
    clrscr();
    short a;
    short b;

    cout << "\n Enter First Number:";
    cin >> a;

    cout << "\n Enter Second Number:";
    cin >> b;

    asm mov ax, 0000h        // Clear AX
    asm mov bx, 0000h        // Clear BX
    asm mov ax, a            // Load first number into AX
    asm mov bx, b            // Load second number into BX
    asm sub ax, bx           // Subtract BX from AX
    asm js true              // Jump if result is negative (AX < BX)

    cout << "\n " << a << " is greater than " << b;
    asm jmp end              // Skip 'true' block

true:
    cout << "\n " << b << " is greater than " << a;

end:
    getch();
}
Continue reading Mix (Assembly and C++) Program to Find Greatest of Two Numbers