0% found this document useful (0 votes)
38 views

Chapter 4 - Requirements For Coding in Assembly Language

This document discusses requirements for coding in Assembly Language. It covers topics like Assembly Language features, program comments, reserved words, identifiers, statements, directives, and the structure of an Assembly program. The key aspects are that Assembly programs use directives like .MODEL, .STACK, .DATA, and .CODE to define memory models and segments for code, data, and stack. Comments are important to document programs. Identifiers name data items and labels. Statements have optional fields separated by spaces.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

Chapter 4 - Requirements For Coding in Assembly Language

This document discusses requirements for coding in Assembly Language. It covers topics like Assembly Language features, program comments, reserved words, identifiers, statements, directives, and the structure of an Assembly program. The key aspects are that Assembly programs use directives like .MODEL, .STACK, .DATA, and .CODE to define memory models and segments for code, data, and stack. Comments are important to document programs. Identifiers name data items and labels. Statements have optional fields separated by spaces.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Lecture 1

Chapter 4 Requirements for coding in Assembly


Language

Chapter Outline
Assembly Language Features
Simplified segment Directive
Defining Types of data
Equate Directive

Assembly Language Features


Program comments
Reserved words
Identifiers
Statements
Directives

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

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

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

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

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.

Identifiers
Examples:
COUNTER1
2abc
@CHARACTER
A45. 28
TWO WORDS
STD_NUM
.TEST
YOU&ME

Begins with a digit


. Not first character
Contains a blank

Contains an illegal character

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:
MOV CX,5 ; initialize counter
An example of an assembler directive:
MAIN
PROC
6

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

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

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
SMALL
MEDIUM
COMPACT
LARGE
HUGE

Description
code in 1 segment
data in 1 segment
code > 1 segment
data in 1 segment
code in 1 segment
data > 1 segment
code > 1 segment
data > 1 segment
no array larger than 64k bytes
code > 1 segment
data > 1 segment
arrays may be larger than 64k bytes

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)

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
Example:
.STACK

size

; where size is an optional number that specifies


; the stack area size in bytes.

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.

Program Structure - Data Segment


A programs 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
MSG

DW 2
DB this is a message

Program Structure - Code Segment


The code segment contains a programs 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.

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

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

You might also like