حتما با ثابتها در زبانهائی مثل پاسکال آشنائی دارید . بعنوان مثال با جمله Const MaxLen=1024; ، ثابتی بنام MaxLen تعریف شده و مقدار آن برابر ۱۰۲۴ قرار قرار میگیرد . پس از آن کامپایلر در هرجا که MaxLen را مشاهده کند عدد ۱۰۲۴ را بجای آن قرار میدهد . در زبان اسمبلی برای تعریف یک ثابت از معرفه EQU به شکل زیر استفاده میکنیم: مقدار EQU نام ثابت مثلا : MaxLen EQU 1024 به این ترتیب اسمبلر همیشه بجای MaxLen عدد ۱۰۲۴ را قرار میدهد . بهمین دلیل ثابتهای برنامه را باید قبل از جمله CODE. بنویسیم . مثال : . MODEL SMALL SECTORS EQU 18 SIDES EQU 2 . CODE : : به این خاطر ثابتها را قبل از CODE. تعریف میکنیم که در برنامه کامپایل شده اثری از نام ثابت نبوده بلکه مقدار هر ثابت در جای لازم قرار گرفته است . مثال : . MODEL SMALL BELL EQU 7 . CODE ORG 100H MOV AH/0EH MOV AL/BELL INT 10H INT 20H END متغیرها از متغیرها برای نگهداری موقتی داده ها استفاده میکنیم . مثلا در زبان پاسکال میتوانیم با عبارت Var یک متغیر تعریف کنیم مثل Var Buffer:Byte; و در زبان سی مثل unsigned char Buffer; . متغیرها در زبان اسمبلی باید حتما در داخل قطعه داده (DS) تعریف بشوند و در برنامه های COM. هم از آنجائی که قطعه داده ها و کد یکی است میتوانیم در قطعه کد نیز تعریف کنیم . برای تعریف یک متغیر باید بعد از نام آن یکی از عبارات ..DB/DW/DD/ را بیاوریم . DB مشخصه نوع بایت ،DW مشخصه نوع Word (دوبایتی ) و DD مشخصه نوع (Double Word) 4 بایتی است . مثلا : . CODE SIZE DW 1024 BELL DB 7 در این مثال Size یک متغیر دو بایتی بوده و مقدار اولیه ان ۱۰۲۴ است و BELL نیز یک متغیر تک بایتی با مقدار ۷ میباشد . اگر نمیخواهیم به متغیر مقدار اولیه بدهیم ، میتوانیم از علامت (?) بجای مقدار استفاده کنیم مانند : maxlen dw? برای تعریف یک رشته کاراکتری از معرفه DB استفاده کرده و محتوای رشته را داخل (”) یا (”") قرار میدهیم . مثلا : MSG DB “ASSEMBLY / A QUICK LOOK ! “ در این مثال MSG یک متغیر کاراکتری است . در اسمبلی میتوانیم از کد اسکی کاراکتر ها نیز استفاده کنیم . مثلا اگر در تعریف DB بخواهیم کدهای اسکی ۱۳و ۱۰ را به MSG اضافه کنیم میتوانیم با کاما این کار را انجام دهیم : MSG DB “ASSEMBLY / A QUICK LOOK ! “/13/10 یا : MSG DB “ASSEMBLY / A QUICK LOOK ! “/0Ah/0Dh یا حتی : MSG DB “ASSEMBLY / A QUICK LOOK ! “/0Ah/0Dh/’$’ این ترکیبها همه یک رشته کاراکتری معرفی میکنند . برای تعریف آرایه ها نیز از روشی مشابه و به شکل زیر استفاده میکنیم : (مقدار اولیه )DUP تعداد عناصر DB/DW/DD نام متغیر مانند: که ارایه ای یک کیلوبایتی تعریف کرده و همه عناصر آن را با ۰ پر میکند. اگر نخواهیم مقدار اولیه ای در نظر گرفته شود از ? استفاده میکنیم . مانند: BUFFER DB 1024 DUP (? ) و برای تعریف یک آرایه حرفی باید با یک حرف یا عبارت آن را پر کنیم : BUFFER DB 1024 DUP(”A(” و حتی : گفتیم که متغیرها همیشه (در برنامه های COM.) در قطعه کد و بعد از CODE. نوشته میشوند ، بنا براین اسمبلر همیشه سعی خواهد کرد که آنها را بصورت یک کدماشین قابل اجرا تفسیر کند. به همین دلیل همیشه بایک دستور JMP از روی آنها پرش میکنیم . مثال : . MODEL SMALL RDISK EQU 2 . CODE ORG1 100H START : JMP MAIN BUFFER DB 512 DUP(0 ) MSG DB “DISK DUP.”/13/10/’$’ MAIN : مجموعه کدهای اجرایی برنامه ; : END START همانطور که میبینید با دستور JMP MAIN از قسمت تعریف داده ها پرش کرده ایم . BUFFER DB 1024 DUP(”STACK(” BUFFER DB 1024 DUP (0)