abc Asembler - elektronski priručnik
IX dio Konstante

Direktiva EQU

Direktiva EQU se koristi za definisanje konstanti. Sintaksa EQU direktive je sljedeća:

CONSTANT_NAME EQU expression

Na primjer,

TOTAL_STUDENTS     equ    50

Moguće je potom koristiti ovu konstantnu vrijednost u kodu, poput:

mov    ecx,   TOTAL_STUDENTS
cmp    eax,   TOTAL_STUDENTS

Operand EQU naredbe može biti izraz:

LENGTH   	equ   20
WIDTH      	equ   10
AREA        equ   length * width

Gore navedeni segment koda će definisati AREA kao 200.

Primjer
Sljedeći primjer ilustruje upotrebu EQU direktive:

SYS_EXIT    equ  1
SYS_WRITE   equ  4
STDIN       equ  0
STDOUT      equ  1
section     .text
       global _start 		;must be declared for using gcc
_start: 				;tell linker entry point
       mov  eax,  SYS_WRITE
       mov  ebx,  STDOUT
       mov  ecx,  msg1
       mov  edx,  len1
       int  0x80
       mov  eax,  SYS_WRITE
       mov  ebx,  STDOUT
       mov  ecx,  msg2
       mov  edx,  len2
       int  0x80

       mov  eax,  SYS_WRITE
       mov  ebx,  STDOUT
       mov  ecx,  msg3
       mov  edx,  len3
       int  0x80
       mov  eax, SYS_EXIT 	;system call number (sys_exit)
       int  0x80 		;call kernel

section       .data
msg1  db    'Hello, programmers!', 0xA, 0xD
len1  equ $  -  msg1
msg2  db   'Welcome to the world of,', 0xA, 0xD
len2  equ $  -  msg2
msg3  db   'Linux assembly programming! '
len3  equ $  -  msg3

Kada se gore navedeni kod kompajlira i izvrši, on će proizvesti sljedeći rezultat:

Hello, programmers!
Welcome to the world of,
Linux assembly programming!

Konstante    <    Index    >    Direktiva %assign