An assembly language program consists of statements. The syntax of
an assembly language program statement obeys the following rules:
| Only one statement is written per line
|
| Each statement is either an instruction or an assembler directive
|
| Each instruction has an opcode and possibly one or more operands
|
| An opcode is known as a mnemonic
|
| Each mnemonic represents a single machine instruction
|
| Operands provide the data to work with.
|
Program Statement:
The general format for an assembly language program statement is as follows:
Name mnemonic operand(destination), operand(source) ; comment
Name Field:
This field is used for:
| instruction label: if present, a label must be followed by a colon (:)
|
| procedure names
|
| variable names.
|
Examples of Name Fields |
here: MOV AX,0867H ; Statement line with a label field
JNC here ; Statement with opcode and one operand
INT 03H
SUM PROC NEAR ; Procedure definition
| | | |
Operation Field:
| This field consists of a symbolic operation code, known as opcode
|
| The opcode describes the operation’s function
|
| Symbolic opcodes are translated into machine language opcode.
|
Operand Field:
This field specifies data to be acted on. It may have one, two or no operands at all.
Examples of instructions with different operand fields |
NOP ; Instruction with no operand field
INC AX ; Instruction with one operand field
ADD AX, 2 ; Instruction with two operand field
| | |
Comment Field:
| A semicolon marks the beginning of a comment
|
| A semicolon in the beginning of a line makes it all a comment line
|
| Good programming practice dictates the use of a comment on almost every line.
|
Key rules for the use of comments:
| Do not say something that is obvious
|
| Put instruction in context of program
|
Examples of good and bad Comments |
MOV CX, 0 ; Move 0 to CX. (This is not a good comment.)
MOV CX, 0 ; CX counts terms, initially set to 0. (This is a good comment.)
| |
Assembler Directives:
Pseudoinstructions or assembler directives are
instructions that are directed to the assembler.
Assembler directives affect the generated machine code, but are not translated
directly into machine code.
Directives can be used to declare variables, constants, segments, macros,
and procedures as well as supporting conditional assembly.
In general, a directive:
| contains pseudo-operation code,
|
| tells the assembler to do a specific thing, and
|
| is not translated into machine code.
|