PDA

View Full Version : سوال: دستورات resX



jeson_park
پنج شنبه 16 بهمن 1393, 09:48 صبح
با سلام
چند وقت پیش کدی رو توی اینترنت دیدم که دستورات زیر توش بود



a: resw 1
b: resd 1
c: resb 1
d: resd 1
e: resb 6
.................................
section .bss
aBss: resw 1

pStru: resd 1

zBss: resd 1

خواستم بدونم کاربردش چیه؟

xman_1365_x
شنبه 18 بهمن 1393, 11:16 صبح
برای تعریف داده های که مقدار دهی اولیه نشده باشه در NASM استفاده میشه، چون NASM از گرامر MASM پشتیبانی نمیکنه (DB ? یا DW ?)

مثلا دستور resb 64 ، 64 بایت در سگمنتی داده هایی که مقدار دهی اولیه نشده براتون در نظر میگیره
این شبه دستورات شامل موارد زیر میشه
RESB, RESW, RESD, RESQ, REST, RESDQ
که حرف آخری نشون دهنده اینه که از چه نوعی داده رو رزرو کنه - بایت ، کلمه و...
و عددی هم که جلوش میاد تعدادی که میخواین از این نوع در رزرو کنه، اولشم یه برچسب میاد که به آدرس شروعش اشاره میکنه
موفق باشی

xman_1365_x
شنبه 18 بهمن 1393, 11:24 صبح
راستی اگر منظورتون از کاربرد چرایی تعریف داده که مقدار دهی اولیه شده یا نشده رو هم بخوای بدونی
داده هایی که شما مقدار دهی اولیه میکنی اون مقادیر روی فایل خروجی نهایی اضافه میشه ولی داده هایی که مقداردهی اولیه نشده اینطور نیست(مثلا یه آرایه 10000 بایتی باعث میشه فایل نهایی 1000 بایت حجمش بیشتر باشه)، و زمان اجرا در حافظه هم داده هایی که مقدار دهی اولیه نشده هر مقداری که از قبل در حافظه وجود داشته باشه حفظ میکنه و یا بسته به کامپایلر یا اسمبلر بعضی ها خودشون با صفر یا مقادیر دیگه مقدار دهی اولیه هم میشه(البته میشه این فلگ رو تغییر داد)
موفق باشی