بسم هللا الرحمن الرحيم INTEL 8086 Microprocessor 1 Assembler Directives Conditional and Unconditional Jumps Complete Assembly Tutorial 1 Complete Assembly Tutorial 2 2 Introduction 8086 Assembler-Dependent Instructions Assembly Program Examples Questions and Problems 3 . 4 . 5 BEGIN DB 44H ; BEGIN is declared as a byte offset with contents zero START DW 25F1H ; START is declared as a word offset with contents 25FlH PROG DD 3FE6D8B2H ; PROG is declared as a double word (4 bytes) offset with 6 The EQU directive can be used to assign a name to constants The statement NUMB EQU 2 1 H directs the assembler to assign the value 21H every time it finds NUMB in the program This means that the assembler reads the statement MOV BH , NUMB as MOV BH, 21H 7 The programmer must load START into DS as follows 8 The ASSUME directive assigns a logical segment to a physical segment at any given time The ASSUME directive tells the assembler what addresses will be in the segment registers at execution time 9 The DUP directive can be used to initialize several locations to zero The statement START DW 4 DUP (0) reserves four words starting at the offset START in DS and initializes them to zero 10 The DUP directive can also be used to reserve several locations that need not be initialized A question mark must be used with DUP in this case The statement BEGIN DB 1 0 0 DUP ( ? ) reserves 100 bytes of uninitialized data space to an offset BEGIN in DS 11 12 Note that typical 8086 assemblers such as Microsoft and Hewlett-Packard HP64000 use the ORG directive to load CS and IP For example, CS and IP can be initialized with 2000H and 0300H as follows: 13 14 15 16 17 18 19 20 . 21 . 22