ثابت ها در زبان اسمبلی
NASM دستورالعمل های مختلفی را به منظور تعریف ثابت ها در زبان اسمبلی فراهم می کند. در این بخش به بررسی چند مورد از این دستورالعمل ها که در زیر مشاهده می کنید، می پردازیم.
- EQU
- %assign
- %define
دستور EQU
دستورالعمل EQU به منظور تعریف ثابت در زبان اسمبلی مورد استفاده قرار می گیرد. در زیر سینتکس مربوط به دستور EQU را مشاهده می کنید:
CONSTANT_NAME EQU expression
برای مثال:
TOTAL_STUDENTS equ 50
نحوه استفاده از ثابت بالا در برنامه:
mov ecx, TOTAL_STUDENTS cmp eax, TOTAL_STUDENTS
همچنین می توانید ثوابت را به صورت زیر نیز تعریف کنید:
LENGTH equ 20 WIDTH equ 10 AREA equ length * width
در کد فوق مقدار ثابت AREA برابر با ۲۰۰ خواهد بود.
مثال
مثال زیر نحوه استفاده از دستور EQU را نشان می دهد:
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
امتحان کنید
زمانی که کد بالا توسط کامپایلر اسمبلی و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Hello, programmers! Welcome to the world of, Linux assembly programming!
دستور %assign
دستور %assign برای تعریف ثوابت عددی مورد استفاده قرار می گیرد (مانند دستور EQU). این دستور امکان تعریف دوباره ثابت را فراهم می کند. برای نمونه اگر TOTAL را به صورت زیر تعریف کنیم:
%assign TOTAL 10
بعدا می توانید آن را به صورت زیر دوباره تعریف کنید:
%assign TOTAL 20
دستور %define
این دستور امکان تعریف ثابت های عددی و رشته ای را در زبان اسمبلی فراهم می کند و شبیه به دستور #define در زبان برنامه نویسی C می باشد. برای نمونه، به منظور تعریف ثابت PTR به صورت زیر عمل کنید:
%define PTR [EBP+4]
نوشته ثابت ها در زبان اسمبلی – آموزش Assembly اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.