Skip to main content

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

This blog post will guide you through a C++ program that performs the addition of two numbers using inline assembly. While modern compilers provide high-level arithmetic operations, understanding inline assembly can help in optimizing performance and understanding low-level interactions with the CPU. Let's explore this step-by-step! #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 asm mov ah, 00h asm mov bx, b asm mov bh, 00h asm add al, bl asm mov c, ax cout << "Result: "; cout << c; getch(); }

8086 Assembly Program to Find Reverse of an Array

In this blog post, we’ll explore how to reverse an array using an 8086 assembly language program. We will walk through the logic, the step-by-step execution, and provide a working code snippet to illustrate the process. Overall Process: The program initializes registers and sets up pointers to the source (ARR) and destination (REV_ARR) arrays. It processes each element of the original array, copying it in reverse order to the destination array. After processing all elements, the program terminates, leaving the reversed array in memory. 8086 Assembly Code:

8086 Assembly Program to Check if String is Palindrome or not

A palindrome is a word, phrase, or sequence that reads the same forward and backward. This 8086 assembly program determines whether a given string is a palindrome by reversing the string and comparing it to the original. The program follows these steps: Initialize the Data Segment: Load the string to be checked. Reverse the String: Store the reversed string in another memory location. Compare the Original and Reversed Strings: Use CMPSB to compare byte-by-byte. Print the Result: Display whether the string is a palindrome or not.

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(); }

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(); }

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(); }

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.