1 / 19

Lecture 1 Chapter 4 –Requirements for coding in Assembly Language

Lecture 1 Chapter 4 –Requirements for coding in Assembly Language. Chapter Outline Assembly Language Features Simplified segment Directive Defining Types of data Equate Directive. 1. Assembly Language Features. Program comments Reserved words Identifiers Statements Directives. 4.

maegan
Télécharger la présentation

Lecture 1 Chapter 4 –Requirements for coding in Assembly Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 1 Chapter 4 –Requirements for coding in Assembly Language

  2. Chapter Outline • Assembly Language Features • Simplified segment Directive • Defining Types of data • Equate Directive 1

  3. Assembly Language Features • Program comments • Reserved words • Identifiers • Statements • Directives 4

  4. Program Comment • The comment field of a statement is used by the programmer to say • something about what the statement does. • A semicolon marks the beginning of this field, and the assembler • ignores anything typed after the semicolon. • It is almost impossible to understand an assembly language program • without comments. • Good programming practice dictates a comment on almost every • line. 13

  5. Program Comment • Examples: • MOV CX, 0 ; CX counts terms, initially 0 • Thus, comments is used to put the instruction into the context of the • program. • It is permissible to make an entire line a comment, and to use them • to create space in a program. 14

  6. Reserved words • Instructions, such as MOV and ADD • Directives, such as END that used to provide information to the assembler • Operators • Predefined symbols, such as @Data, which return information to your program during the assembly

  7. Identifiers Two types of Identifiers : name and label 1. Name refers to the address of a data items ex: COUNTER ,SUM,ID 2. Label refers to the address of an instruction,procedure,or segment ex: MAIN

  8. Identifiers • Can be from 1 to 31 characters long (not case sensitive). • May consist of letters, digits, and the special characters • ? . @ _ $ % (Thus, embedded blanks are not allowed). • Names may not begin with a digit. • If a dot is used, it must be the first character.

  9. Identifiers • Examples: • COUNTER1 • 2abc • Begins with a digit • @CHARACTER • A45. 28 • . Not first character • TWO WORDS • Contains a blank • STD_NUM • .TEST • YOU&ME • Contains an illegal character 8

  10. Statements • Both instructions and directives have up to four fields: • [identifier ]operation [operand(s)][comment] • [Name Fields are optional] • At least one blank or tab character must separate the fields. • The fields do not have to be aligned in a particular column, but they • must appear in the above order. • An example of an instruction: • START:MOVCX,5; initialize counter • An example of an assembler directive: • MAINPROC 6

  11. Directives • SEGMENT Directive • Data Segment • Stack segment • Code Segment • END Directive • ex: ENDP directive ends a procedure • ex: END directive ends the entire program and appears as the last statement 9

  12. SIMPLIFIED SEGMENT Directives • SEGMENT Directive • Data Segment • Stack segment • Code Segment • END Directive • ex: ENDP directive ends a procedure • ex: END directive ends the entire program and appears as the last statment 9

  13. Program Structure - Memory Models • The size of code and data a program can have is determined by • specifying a memory model using the .MODEL directive. • Syntax: • .MODEL memory_model Model Description SMALL code in 1 segment data in 1 segment MEDIUM code > 1 segment data in 1 segment COMPACT code in 1 segment data > 1 segment LARGE code > 1 segment data > 1 segment no array larger than 64k bytes HUGE code > 1 segment data > 1 segment arrays may be larger than 64k bytes

  14. Program Structure - Memory Models • The appropriate model is SMALL, unless there is a lot of code or • data. • .MODEL directive should come before segment definitions. • A segment is 216 (64 k)

  15. Program Structure - Stack Segment • The purpose of the stack segment declaration is to set aside a block • of memory (the stack area) to store the stack. • The stack area should be big enough to contain the stack at its • maximum size. • Syntax: • .STACK size ; where size is an optional number that specifies • ; the stack area size in bytes. • Example: • .STACK 100H ; sets aside 100H bytes for the stack area. • ; (reasonable size for most applications). • If size is omitted, 1KB is set aside for the stack area.

  16. Program Structure - Data Segment • A program’s data segment contains all the variable definitions. • Constant definitions are often made here as well. (they may be • placed elsewhere in the program since no memory allocation is • involved). • To declare a data segment, we use the directive .DATA, followed by • variable and constant declarations. • Example: • .DATA • WORD1 DW 2 • MSG DB ‘this is a message’

  17. Program Structure - Code Segment • The code segment contains a program’s instructions. • Syntax: • .CODE name ; where name is an optional name of segment. • There is no need for a name in a SMALL program, However, the • assembler will generate an error. • Inside a code segment, instructions are organized as procedures.

  18. Program Structure - Code Segment • The simplest procedure definition is: • name PROC ; name: is the name of the procedure. • ; body of the procedure ; PROC & ENDP: are pseudo-ops that • name ENDP ; delineate the procedure • Example of a code segment definition: • .CODE • MAIN PROC • ; main procedure instructions • MAIN ENDP • ; other procedures go here

  19. Program Structure - A General Form of a .SMALL model program .MODEL SMALL .STACK 100H .DATA ; data definitions go here .CODE MAIN PROC ; instructions go here MAIN ENDP ; other procedures go here END MAIN

More Related