This blog post presents an 8086 assembly program designed to count the number of 0s and 1s in a given 16-bit number. We’ll explore the bit manipulation techniques used and analyze the program’s execution flow.
Continue reading 8086 Assembly Program to Count Number of 0’s and 1’s from a NumberCategory Archives: 8086 TASM
8086 Assembly Program to Convert Binary Number into BCD Format
In this blog post, we will explore an 8086 assembly language program designed to convert a binary number into its Binary-Coded Decimal (BCD) format. This conversion is essential in applications where binary numbers need to be represented in a decimal-like format, such as digital displays or interfaces that require human-readable numbers.
The following assembly program performs the conversion:
DATA SEGMENT NO1 DB "1001000000110110" D1 DW 4 DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX LEA SI, NO1 LEA DI, D1 MOV CX, 04H TOP: MOV BX, 00H MOV AX, [SI] ROR AX, 1 JNC P2 ADD BX, 08H P2: INC SI MOV AX, [SI] ROR AX, 1 JNC P3 ADD BX, 04H P3: INC SI MOV AX, [SI] ROR AX, 1 JNC P4 ADD BX, 02H P4: INC SI MOV AX, [SI] ROR AX, 1 JNC P5 ADD BX, 01H P5: MOV [DI], BX INC DI INC SI DEC CX JNZ TOP INT 3 CODE ENDS END STARTContinue reading 8086 Assembly Program to Convert Binary Number into BCD Format
8086 Assembly Program to Convert BCD Number into Binary Format
In this blog post, we’ll explore how to convert a BCD (Binary-Coded Decimal) number into its binary equivalent using an 8086 assembly language program. The following code snippet demonstrates this process:
DATA SEGMENT NO1 DB "9036" D2 DB ? D1 DB 16 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX LEA SI, NO1 LEA DI, D1 MOV CX, 04H TOP: MOV AL, [SI] MOV DX, 0CH UP1: ROL AX,1 DEC DX JNZ UP1 AND AX, 1111000000000000B MOV DX, 04H UP2: ROL AX, 1 JNC DN MOV BX, 1 MOV [DI], BX JMP DN2 DN: MOV BX, 0 MOV [DI], BX DN2: INC DI DEC DX JNZ UP2 INC SI DEC CX JNZ TOP INT 3 CODE ENDS END STARTContinue reading 8086 Assembly Program to Convert BCD Number into Binary Format
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:
DATA SEGMENT STR1 DB 01H,02H,05H,03H,04H STR2 DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX LEA SI, STR1 LEA DI, STR2+4 MOV CX, 05H BACK: CLD MOV AL, [SI] MOV [DI], AL INC SI DEC DI DEC CX JNZ BACK INT 3 CODE ENDS END STARTContinue reading 8086 Assembly Program to Find Reverse of an Array
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
CMPSBto compare byte-by-byte. - Print the Result: Display whether the string is a palindrome or not.
Performing Block Transfer using Assembly Language
In this blog post, we’ll explore how to perform a block transfer using an 8086 assembly language program. The following code snippet demonstrates this process:
DATA SEGMENT STRING1 DB 01H,02H,03H,04H,05H STRING2 DB 4 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,STRING1 LEA DI,STRING2 MOV CX,05H CLD REP MOVSB INT 3 CODE ENDS END STARTContinue reading Performing Block Transfer using Assembly Language
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