Friday, October 8, 2021

How To Print A Single Character in 8086 Assembly Language

 If you are getting started with 8086 assembly programming, you might encounter the elementary and very beginning program of your life, which is “how to print text in 8086 assembly language”. However, in most cases, the next step is to print a single character in the 8086 assembly language.


In an 8086 assembly language computer always works with registers of the microprocessor. in intel’s 8086 microprocessor, there are four basic general-purpose or data registers i.e.


Accumulator Register (AX)

Base Register (BX)

Counter Register (CX)

Data Register (DX)


Above mentioned registers are 16bit registers which means they consist of two bytes. These registers are further broken into ‘high byte’ and ‘low byte'. We can use them for any purpose we want. Look at the table below.



8086_General_Purpose_Registers


There are other types of registers as well, but for now, we will stick to them.



Now that we have an overview of Data registers, we can now write a simple assembly language program that prints single character output. 


First, we write our basic program template, which does nothing but is very important and will always be used in each assembly program.


TITLE SINGLE_CHARACTER_PRINTING

.MODEL SMALL

.STACK 100H

.DATA


;;THIS IS DATA SECTION



.CODE   


;THIS IS CODE SECTION

    MAIN:

        MOV AX, @DATA

        MOV DS, AX

        

        

            

        

        

        MOV AH, 04CH

        INT 21H

   END MAIN


If you don’t understand or want to understand more basics, you can follow this link for the instructions used in this program.


In the 8086 assembly language, a single character means one byte. Let’s say we want to print ‘A’ first, we need to move it to the data register, which is DX, and ‘A’ is one byte so that we will place it in the DL register. If you are confused, remember that if you want to print a single character, always move it to the ‘DL’ register.



MOV DL, ‘A’

MOV AH, 02H

INT 21H


Just add three lines in the above code, and you will see the output of the program. If you don't understand MOV AH, 02H and INT 21H, just go with it as at this point there is no need to get stuck to it. Just remember we write these three statements to display a single character. You just need to replace the ‘A’ in DL if you want to print something else.


Following is the complete code of above program


TITLE SINGLE_CHARACTER_PRINTING
.MODEL SMALL
.STACK 100H
.DATA

;;THIS IS DATA SECTION

.CODE   

;THIS IS CODE SECTION
    MAIN:
        MOV AX@DATA
        MOV DSAX
        
        MOV DL'A'
        MOV AH02H
        INT 21H
                        
        MOV AH04CH
        INT 21H
   END MAIN

You should see output of the program as 'A'


If you have any question or trouble you can always choose to click Ask for Help section mentioned above.

No comments:

Complete Video Tutorials