8086 program to check whether a string is palindrome or not Last Updated : 03 Aug, 2021 Comments Improve Suggest changes 5 Likes Like Report Problem: Write an 8086 program to check whether a given string is palindrome or not.Examples: Input String: "abba" Output: String is palindrome Input String: "abbca" Output: String is not palindrome Explanation: Create a stringTraverse to the end of the stringGet the address of the end of the string, DILoad the starting address of the string, SICompare the value stored at the addressIncrement the pointer, SIDecrements the pointer, DICompare again the value stored at si and diRepeat the steps until SI<=DIIf all the characters match print string is palindrome else print not palindrome Program: CPP .MODEL SMALL .STACK 100H .DATA ; The string to be printed STRING DB 'abba', '$' STRING1 DB 'String is palindrome', '$' STRING2 DB 'String is not palindrome', '$' .CODE MAIN PROC FAR MOV AX, @DATA MOV DS, AX ; check if the string is; ;palindrome or not CALL Palindrome ;interrupt to exit MOV AH, 4CH INT 21H MAIN ENDP Palindrome PROC ; load the starting address ; of the string MOV SI,OFFSET STRING ; traverse to the end of; ;the string LOOP1 : MOV AX, [SI] CMP AL, '$' JE LABEL1 INC SI JMP LOOP1 ;load the starting address; ;of the string LABEL1 : MOV DI,OFFSET STRING DEC SI ; check if the string is palindrome; ;or not LOOP2 : CMP SI, DI JL OUTPUT1 MOV AX,[SI] MOV BX, [DI] CMP AL, BL JNE OUTPUT2 DEC SI INC DI JMP LOOP2 OUTPUT1: ;load address of the string LEA DX,STRING1 ; output the string; ;loaded in dx MOV AH, 09H INT 21H RET OUTPUT2: ;load address of the string LEA DX,STRING2 ; output the string ; loaded in dx MOV AH,09H INT 21H RET Palindrome ENDP END MAIN Output: String is palindrome Note: The program cannot be run on an online editor, please use MASM to run the program and use dos box to run MASM, you might use any 8086 emulator to run the program. Create Quiz Comment A andrew1234 Follow 5 Improve A andrew1234 Follow 5 Improve Article Tags : Computer Organization & Architecture system-programming Computer Organization and Architecture microprocessor Explore Basic Computer InstructionsWhat is a Computer? 6 min read Issues in Computer Design 1 min read Difference between assembly language and high level language 2 min read Addressing Modes in 8086 7 min read Difference between Memory based and Register based Addressing Modes 4 min read Von Neumann Architecture 5 min read Harvard Architecture 3 min read Interaction of a Program with Hardware 3 min read Simplified Instructional Computer (SIC) 4 min read Instruction Set used in simplified instructional Computer (SIC) 1 min read Instruction Set used in SIC/XE 2 min read RISC vs CISC 3 min read Vector processor classification 5 min read Essential Registers for Instruction Execution 3 min read Single Accumulator Based CPU Organization 3 min read Stack based CPU Organization 3 min read Machine Control Instructions in Microprocessor 4 min read Very Long Instruction Word (VLIW) Architecture 3 min read Input and Output SystemsPrimary Instruction Cycles 4 min read Machine Instructions 5 min read Instruction Formats 6 min read Difference between 2-address instruction and 1-address instructions 4 min read Difference between 3-address instruction and 0-address instruction 4 min read Register content and Flag status after Instructions 3 min read Debugging a machine level program 3 min read Vector Instruction Format in Vector Processors 7 min read Vector Instruction Types 4 min read Instruction Design and FormatALU Functions and Bus Organization 5 min read Computer Arithmetic | Set - 1 5 min read Computer Arithmetic | Set - 2 4 min read 1's Complement Representation vs 2's Complement Representation 4 min read Restoring Division Algorithm For Unsigned Integer 4 min read Non-Restoring Division For Unsigned Integer 3 min read Booth's Algorithm 4 min read How the Negative Numbers are Stored in Memory? 2 min read Microprogrammed ControlMicro-Operation 3 min read Instruction Set Architecture and Microarchitecture 3 min read Program Control Instructions 4 min read Difference between CALL and JUMP instructions 5 min read Hardwired and Micro-programmed Control Unit 3 min read Implementation of Micro Instructions Sequencer 4 min read Performance of Computer in Computer Organization 5 min read Introduction to Control Unit and its Design 5 min read Computer Organization | Amdahl's law and its proof 2 min read Subroutine: Nesting and Stack memory 3 min read Different Types of RAM (Random Access Memory ) 8 min read Random Access Memory (RAM) and Read Only Memory (ROM) 8 min read 2D and 2.5D Memory organization 4 min read Input and Output OrganizationPriority Interrupts 5 min read I/O Interface (Interrupt and DMA Mode) 4 min read DMA Controller 8257/8237 2 min read Computer Organization | Asynchronous input output synchronization 7 min read Programmable peripheral interface 8255 4 min read Synchronous Data Transfer in Computer Organization 4 min read Introduction of Input-Output Processor 5 min read MPU Communication in Computer Organization 4 min read Memory Mapped I/O and Isolated I/O 5 min read Memory OrganizationIntroduction to memory and memory units 2 min read Memory Hierarchy Design and its Characteristics 6 min read Register Allocations in Code Generation 6 min read Cache Memory 4 min read Cache Organization | Set 1 (Introduction) 3 min read Multilevel Cache Organisation 6 min read Difference between RAM and ROM 7 min read Difference Between CPU Cache and TLB 4 min read Introduction to Solid-State Drive (SSD) 4 min read Read and Write operations in Memory 3 min read PipeliningInstruction Level Parallelism 5 min read Execution and Throughput 5 min read Pipelining Types and Stalling 3 min read Computer Organization and Architecture | Pipelining | Set 2 (Dependencies and Data Hazard) 6 min read Last Minute Notes Computer Organization 15+ min read Like