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
|