All posts by Ankur

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

In this blog post, we’ll explore how to search for an element in an array using an 8086 assembly language program. The following code snippet demonstrates this process:

DATA SEGMENT
STRING1 DB 11H,22H,33H,44H,55H
MSG1 DB "FOUND$"
MSG2 DB "NOT FOUND$"
SE DB 33H
DATA ENDS

PRINT MACRO MSG
MOV AH, 09H
LEA DX, MSG
INT 21H
INT 3
ENDM

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV AL, SE
LEA SI, STRING1
MOV CX, 04H

UP:
MOV BL,[SI]
CMP AL, BL
JZ FO
INC SI
DEC CX
JNZ UP
PRINT MSG2
JMP END1

FO:
PRINT MSG1

END1:
INT 3
CODE ENDS
END START
Continue reading 8086 Assembly Program to Search an Element in an Array