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.