This C++ program demonstrates how to search for a specific element within an array of 10 integers using 8086 assembly instructions embedded inline. The program uses the cmp
and jz
instructions to perform the comparison and detect a match.
#include<iostream.h>
#include<conio.h>
void main()
{
int nos[10], j, t;
int i, p;
cout << "\n Enter 10 numbers:";
for (i = 0; i < 10; i++) {
cin >> nos[i];
}
cout << "\n Enter number to be searched:";
cin >> j;
for (i = 0; i < 10; i++) {
p = i;
t = nos[i];
_asm {
mov ax, t // Load current array element
mov bx, j // Load number to be searched
cmp ax, bx // Compare current element with target
jz out // If match found, jump to output
}
}
cout << "\n No is not found.";
goto end;
out:
cout << "\n Number is found at " << p + 1 << " th position";
end:
getch();
}
Understanding the Code
Variable Declarations
nos[10]
→ Array to hold 10 integers.j
→ Number to search.t
→ Temporary storage for comparison.p
→ Index tracker to store current position.
User Input
The program accepts 10 numbers to populate the array and one number to search.
Inline Assembly Instructions
mov ax, t
→ Loads the current element of the array into register AX.mov bx, j
→ Loads the number to be searched into register BX.cmp ax, bx
→ Compares the current element with the number to search.jz out
→ If the numbers are equal (zero flag is set), jumps to labelout
.
Search Logic If no match is found after checking all elements, the program outputs “No is not found.” and exits. If a match is found, it prints the 1-based position using the label out
.
Output
Enter 10 numbers:15
20
48
32
14
5
36
84
11
37
Enter number to be searched:5
Number is found at 6 th position
Output Explanation
The program checks each number in the array against the number to be searched. When it finds a match, it prints the position (index + 1). In this case, 5
is found at position 6.