Chapter 5

Key Words
---------

Assembly Language - is a very low level programming language that uses a mnemonic prefix followed by one or two operands. The statements are in plain English using common words. For example,

MOV AX,34
MOV [120],AX
SUB AX,BX

are almost understandable because of the mnemonic words used in the instructions. In the first line, the instruction MOV AX,34 simply means, Move the number 34 into the AX register. In the second line, MOV [120],AX,means move the contents of the AX register into the memory location at offset 120. The last line, SUB AX,BX, means subtract the contents of the BX register from the contents of the AX register and put the results in the AX register.

Note:
Debug will allow us to write small programs using the mnemonic form of the instruction set for the 8088 micro-processor. We will be required to specify the address that is used by the program in the form of an offset number. This means we have to pay attention to the locations in memory of all of the instructions that the program uses.

Bios call -when a program or device executes an interrupt sub-routine inside the ROM BIOS chip. (see INT)

Bit- This is the smallest unit of digital data. Onebit represents either a one or a zero in binary logic.

BYTE - One byte is 8 bits arranged in order with the least significant bit to the right. The bits are usually identified by the names, D7 D6 D5 D4 D3 D2 D1 D0 in that order.

Code - is what we call the data in memory. Machine code refers to the program instructions in hexadecimal form. Assembly code refers to the program code in assembly language form. Text code refers to the ascii code that represents the messages of the program.
Data - is the binary information that is in the memory chips of the computer and is in the form of one byte or 8 bits. Debug displays the binary data in the form of Hex numbers so, if you want to see what it looks like in binary (the way it is) you will have to convert the Hex number to binary bits. Sometimes we represent data using two bytes which is called a word or four bytes which is called a double word.


Debug - A program used to view, edit, and save data in memory and on the disk. Can also be used to assemble small COM programs. The word also applies to the fixing of computer programs. As the story goes, a computer went down and required some repairs. After a lengthily time the problem turned out to be caused by a bug that got caught in one of the relays.


Display -Another word for the monitor that is used to display the output of a computer program. Common displays in use today are the Mono-graphics (MGA), Color graphics (CGA), Video graphics (VGA) and Super Video graphics (SVGA)


Double word -In the 8088/80286/80386 a double word is two words or four bytes. Double words are stored in reverse order in memory with the most significant byte in the highest offset location.


DOS call -When a program or a device executes an interrupt sub-routine into IBMDOS.COM. All DOS calls use the INT 21 instruction. (see INT)


Echo - When a character is echoed to the display it simply pops up on the screen. Every time we press a key on the keyboard the character is echoed to the screen.


FLAG - The processor has an 11 bit register called the flag register that saves the results of the arithmetic operations. (see the r command) LOOP - An 8088 instruction that is used for repeated operations. The Syntax is LOOP xxxx, where xxxx is the address of the instruction that will be executed. The CX register must be set with the loop count, every time the loop instruction is executed, CX will decrement by one until it reaches zero, at which time the loop instruction is over and the next instruction is executed.

INT - an instruction that is used in a program to call a software interrupt sub-routine that may be located in the ROM BIOS chip or the MS-DOS operating system. INT 10, for example will call an interrupt 10 Sub-routine that controls the video on the display.

Interrupt -refers to interrupting the cpu for a period of time. There are two kinds of interrupts you should know. A software interrupt is an interrupt that occurs when an INT instruction is executed from within a program. A hardware interrupt occurs when a piece of hardware produces an interrupt signal on the interrupt controller chip.

Port - is an interface card that plugs into one of the slots on the mother-board. Each card has it's own I/O (input/output) address. The 8088-80486 processors can have up to 65,535 ports. Ports are accessed with the OUT and the IN instruction. OUT 03BC 41 is an example of how data (41 HEX or upper case A) is sent to the port with an address of 03BC. Some common ports for the IBM pc are listed below.

Printer Ports: Name Address

Parallel: LPT1 03BC
LPT2 0378
LPT3 0278
Serial: COM1 03F8
COM2 02F8
COM3 03E8
COM4 02E8
Displays: Mono 03B0-03BF
Color 03D0-03DF
Disk Drives: Hard 0320-032F
Floppy 03F0-03F7
Other: Game 0200-020F
Offset -refers to the address of a memory cell inside the ram chips. When we assembly or load a COM program it will always be located in some segment of memory. The very first memory location of that segment is at offset 0 and the last memory location is at offset FFFF. A COM program must be in the same segment of memory, that means a COM program is smaller than 65,535 bytes.(see segment)

Register -a temporary storage location that is made up of a latch of some kind. The 8088 micro-processor has fourteen 16 bit registers to process the data in a computer.

Four are for data - AX,BX,CX,DX
Four are for segment addresses - ES,DS,SS,CS
Four are for index addressing - SP,BP,SI,DI
One is the instruction pointer - IP
One is the flag register - Flag


Reset - A pin on the 8088 - 80486 that is used to force the processor into a reset condition. (boot) Reset is also used to describe the act of clearing a bit or setting it to zero.


Reset Address - is a pre-set address that all processors will point to each time the reset pin is active. The reset address is F000:FFF0 or absolute physical address of FFFF0. There is a jump instruction at this location (ROM BIOS CHIP) that will point to the beginning of the ROM BIOS program.

Stack -is a location in memory that is used by a program to store data for a short period of time. The stack is located at offset FFFE in the top of memory in a com program. The PUSH and the POP instruction use the stack to store the contents of the registers when an INT instruction is executed.

String -is a group of bytes used to represent information. For example,

" This is an example of a string ".

Sub-routine -refers to a group of instructions that preforms a specific task and is located away from the main program. To use the sub-routine a CALL instruction is executed in the main program, when all the instructions in the sub-routine are finished, a RET instruction will return control to the calling program.


Word - In the 8088/80286/80386 a word is two bytes and is stored in reverse order with the most significant byte in the highest offset location.

The 8086/8088 Micro-processor
-----------------------------

All information that follows applies to the 8086 family of micro-processors, that includes the 80286, 80386, and the 80486. However, we will discuss only the instruction set of the 8088 cpu. If working with one of the other micro-processors, you must refer to the additional instruction set for that CPU. These processors are upward compatible which means, all of the processors will run the 8088 programs.


  • Chapter 6
  • Return to Home Page.