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.
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
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.