Tuesday, April 2, 2019

Assembler Directives of 8086 Microprocessor

Assembler directionals of 8086 MicroprocessorINTRODUCTIONAssembly languages atomic number 18 low-level languages for programming computers, microprocessors, microcontrollers, and separatewise IC. They implement a symbolizationic representation of the numeric shape Codes and other constants needed to program a particular CPU architecture. This representation is normally depositd by the hardware manufacturer, and is based on abbreviations that help the coder to remember individual instructions, registers. An assembly program directive is a statement to devote direction to the assembler to perform task of the assemblage process. It control the physical composition if the program and provide necessary information to the assembler to understand the assembly language programs to generate necessary machine codes. They indicate how an operand or a section of the program is to be processed by the assembler. An assembler supports directives to define information, to organise me mbers to control surgical process, to define macros. It consists of two types of statements instructions and directives. The instructions are translated to the machine code by the assembler whereas directives are not translated to the machine codes.Assembler Directives of the 8086 Microprocessor (a) The DB directive(b) The DW directive(c) The DD directive(d) The STRUCT (or STRUC) and ENDS directives (counted as one)(e)The EQU Directive(f)The COMMENT directive(g)ASSUME (h) EXTERN (i) globular (j) SEGMENT (k)OFFSET (l) PROC (m)GROUP(n) INCLUDE info declaration directives1. DB The DB directive is use to declare a BYTE -2-BYTE variable A BYTE is made up of 8 bits.Declaration examples Byte1 DB 10hByte2 DB 255 0FFh, the max. possible for a BYTECRLF DB 0Dh, 0Ah, 24h Carriage Return, terminator BYTE2. DW The DW directive is used to declare a news program type variable A WORD occupies 16 bits or (2 BYTE).Declaration examples Word DW 1234hWord2 DW 65535 0FFFFh, (the max. possible for a WORD)3. DD The DD directive is used to declare a DWORD A DWORD double backchat is made up of 32 bits =2 Words or 4 BYTE.Declaration examplesDword1 DW 12345678hDword2 DW 4294967295 0FFFFFFFFh. 4. STRUCT and ENDS directives to define a structure template for grouping information items.(1) The STRUCT directive certifys the assembler that a user defined uninitialized information structure follows. The uninitialized info structure consists of a combination of the three supported data types. DB, DW, and DD. The labels serve as zero-based offsets into the structure. The first elements offset for any structure is 0. A structure element is referenced with the base + performer before the elements break.A Structure ends by using the ENDS directive meaning END of Structure. sentence structure STRUCT Structure_element_name element_data_type? . . . . . . . . . ENDS (OR) STRUC Structure_element_name element_data_type? . . . . . . . . . ENDSDECLARATION STRUCTByte1 DB?Byte2 DB?Word1 DW?W ord2 DW?Dword1DW?Dword2 DW?ENDSUse OF STRUCT The STRUCT directive enables us to counterchange the order of items in the structure when, we reform a burden fountainhead and shuffle the data. Shuffle the data items in the buck header and reformat the duration of data declaration in the STRUCT and off you go. No change in the code we write that processes the file header is necessary unless you inserted an extra data element.(5) The EQU DirectiveThe EQU directive is used to give name to any(prenominal) look upon or symbol. Each time the assembler finds the given names in the program, it will re countersink the name with the value or a symbol. The value great deal be in the range 0 through 65535 and it can be other liken declared anywhere above or below.The following operators can also be used to declare an Equate THIS BYTETHIS WORDTHIS DWORDA variable declared with a DB, DW, or DD directive has an address and has space uncommunicative at that address for it in the .COM fil e. exactly an Equate does not have an address or space reserved for it in the .COM file. example A Byte EQU THIS BYTE DB 10 A_ word EQU THIS WORD DW 1000 A_ dword EQU THIS DWORD DD 4294967295 Buffer Size EQU 1024 Buffer DB 1024 DUP (0) Buffed_ ptr EQU $ actually points to the close byte after the 1024th byte in buffer.(6) ExternIt is used to tell the assembler that the name or label following the directive are I some other assembly staff. For example if you call a procedure which is in program module assembled at a different time from that which contains the peal instructions ,you must tell the assembler that the procedure is external the assembler will put information in the object code file so that the linker can connect the two module together.Example mathematical function -HERE SEGMENTEXTERN SMART-DIVIDE FAR found in the segment PROCEDURES-HEREPROCEDURES-HERE ENDS(7) GLOBAL The GLOBAL directive can be used in place of PUBLIC directive .for a name defined in the on-line (prenominal) assembly module the GLOBAL directive is used to make the symbol available to the other modules. Example GLOBAL DIVISOR WORD tells the assembler that DIVISOR is a variable of type of word which is in another assembly module or EXTERN.(8) SEGMENT It is used to indicate the abrasion of a logical segment. It is the name given to the the segment. Example the code segment is used to indicate to the assembler the start of logical segment.(9) PROC (PROCEDURE) It is used to chance on the start of a procedure. It follows a name we give the procedure. After the procedure the term NEAR and FAR is used to specify the procedure Example SMART-DIVIDE PROC FAR identifies the start of procedure named SMART-DIVIDE and tells the assembler that the procedure is far.(10) NAME It is used to give a specific name to each assembly module when program consists of several modules. Example PC-BOARD used to name an assembly module which contains the instructions for controlling a printed circuit b oard. (11) INCLUDE It is used to tell the assembler to insert a trap of source code from the named file into the current source module. This shortens the source module. An alternative is use of editor block command to cop the file into the current source module.(12) OFFSETIt is an operator which tells the assembler to dress the offset or displacement of a named data item from the start of the segment which contains it. It is used to load the offset of a variable into a register so that variable can be accessed with one of the addressed modes. Example when the assembler read MOV BX.OFFSET PRICES, it will determine the offset of the prices.(13) GROUPIt can be used to tell the assembler to group the logical segments named after the directive into one logical group. This allows the limit of all he segments to be accessed from the same group. Example SMALL-SYSTEM GROUP CODE, DATA, STACK-SEG.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.