Directives are instructions to the assembler, specifying an action to be taken during the assembly process. One important use of directives is declaring or reserving memory variables. In addition, directives are used to break up the program into sections. The operation name of a MAL directive always begins with a period (".").
Usually, a .data section only contains data directives
and a .text section only contains machine instructions.
A MAL program can have multiple .data and
.text sections.
An assembler groups all of the .data sections together in
memory and groups all of the .text sections together in a
different place in memory.
| Directive | Operand Syntax | Meaning |
|---|---|---|
| .globl | label { , label }* | Declare labels to be global |
| .data | none | Start a data declaration section |
| .text | none | Start an instruction section |
| .byte | character [ : non-negative integer ] | Declare a character or byte variable |
| .word | integer [ : non-negative integer ] | Declare a C int variable |
| .float | real number [ : non-negative integer ] | Declare a C float variable |
| .double | real number [ : non-negative integer ] | Declare a C double variable |
| .asciiz | string | Declare a string variable |
| .space | non-negative integer | Reserve memory space |
Some simulators require that the main label be declared as
global in order for the program to start executing at the correct
address.
This is not needed if the main label is at the beginning of
the first text segment.
The first operand for .byte, .word, or
.float specifies the initial value for the variable.
The second operand specifies the number of repetitions.
The second operand is optional.
The operand for .space specifies the number of bytes
reserved.
Directives are instructions to the assembler, specifying an action to be taken during the assembly process. One important use of directives is declaring or reserving memory variables. In addition, directives are used to break up the program into sections. The operation name of a MAL directive always begins with a period (".").
Usually, a .data section only contains data directives
and a .text section only contains machine instructions.
A MAL program can have multiple .data and
.text sections.
An assembler groups all of the .data sections together in
memory and groups all of the .text sections together in a
different place in memory.
| Directive | Operand Syntax | Meaning |
|---|---|---|
| .globl | label { , label }* | Declare labels to be global |
| .data | none | Start a data declaration section |
| .text | none | Start an instruction section |
| .word | integer [ : non-negative integer ] | Declare a C int variable |
| .asciiz | string | Declare a string variable |
Some simulators require that the main label be declared as
global in order for the program to start executing at the correct
address.
This is not needed if the main label is at the beginning of
the first text segment.
The braces and asterisk are not part of the assembly language code.
They are markup notation indicating that the contents inside the braces
can be repeated 0 or more times.
This means that the operands for the .globl directive can
be a list of labels separated by commas.
The first operand for .word specifies the initial value for
the variable.
The second operand specifies the number of repetitions.
The brackets are not part of the assembly language code.
They only indicate that the second operand is optional.