تعريف داده ها در سگمنت داده صورت می گيرد که با راهنمای .data شروع می شود.
ثابت ها
يک ثابت واقعی ثابتی است که مقدارش صريحا ذکر شده است. ثابت های واقعی نمايش آنچه هستند که معمولا برای مقدار دنيای واقعی انتظار داريم. ماکرو اسمبلر دارای انواع مختلفی از ثابت های صحيح، حقيقی، رشته و غيره است.
مثال.
123
3.14159
"Literal String Constant"
0FABCh
'A'
يک ثابت عددی مقداری است که می تواند در مبنای 2، 10 يا 16 نوشته شود. برای مشخص کردن مبنای عدد از پسوندهای جدول زير استفاده می شود. اگر مبنا صريحا ذکر نشود پيش فرض مبنای 10 است.
مبنا | پسوند |
---|---|
Binary | B يا b |
decimal | D يا d يا T يا t |
hexadecimal | H يا h |
ثابت های رشته ای درون گيومه (") يا تک گيومه (') قرار می گيرند.
مثال. ثابت های عددی.
0F000h
12345d
0110010100b
مثال. ثابت های رشته ای.
"This is a string"
'So is this'
'Doesn''t this look weird?'
"Doesn't this look weird?"
"Microsoft claims ""Our software is very fast."" Do you believe them?"
'Microsoft claims "Our software is very fast." Do you believe them?'
ثابت نامدار (named constant) نام سمبليکی است که نشانگر مقدار ثابتی طی فرآيند اسمبلی است. ثابت ها به صورت کلی زير تعريف می شوند:
ConstantName EQU Value
ConstantName = Value
ConstantName نام ثابت است و Value مقداری است که به ثابت اختصاص داده می شود.
مثال.
One equ 1
Minus1 equ -1
TryAgain equ 'Y'
String equ "Hello there"
Num = 16
Size = Count * Element
نکته. علامت مساوی تنها برای مقدارهای عددی بکار می رود.
متغيرها
متغيرها را در هر سگمنتی می توان تعريف کرد اما اکثر برنامه نويسان همه آنها را در سگمنت داده تعريف می کنند. هر متغير به فرم کلی زير تعريف می شود:
VariableName Type InitialValue|?
Type نوع متغير را مشخص می کند که می تواند يکی از نوع های جدول زير باشد. نوع هائی که اغلب مورد استفاده قرار می گيرند DB و DW هستند. InitialValue مقداراوليه متغير است. اگر نخواهيم مقدار اوليه بدهيم علامت سوال (?) می گذاريم.
تعداد بايت | نوع |
---|---|
1 | byte/sbyte/db |
2 | word/sword/dw |
4 | dword/sdword/dd |
8 | qword/dq |
10 | tbyte/dt |
مثال.
num db 25h
sum dd ?
ANum db -4
مثال. محل های پشت سر هم که دارای يک نوع هستند آرايه ناميده می شود. رشته ها توسط راهنمای db اعلان می شوند.
X dw 040Ch,10b,-13,0
Y db 'This is an array'
Z dd 10, 13, 'A','B','C'
مثال. برای تعريف يک متغير آرايه از راهنمای dup استفاده می شود.
Memory db 30 dup('$')
BigAry dw 100 dup(?)