آموزش انواع داده ها در زبان اسمبلی Assembly

  • شنبه ۲۱ آذر ۱۳۹۴
  • بازدید ۲,۷۴۶ نفر

تصویر kind-data-in-assembly-12574 آموزش انواع داده ها در زبان اسمبلی Assembly

آموزش انواع داده ها در زبان اسمبلی Assembly

در این بخش از آموزش زبان اسمبلی برای شما کاربران عزیز آموزش انواع داده ها در زبان اسمبلی Assembly را آماده کرده ایم که می توانید در ادامه آن را مشاهده کنید.

در برخی مواقع نیاز است در زبان اسمبلی مقداری را در جای ذخیره کنید و بعدا از آن استفاده کنید در چنین مواقعی باید در قسمت سگمنت داده متغیری تعریف کنید تا این مقدار در آن متغیر قرار بگیرد. این مقادیر ممکن است رشته ای یا عددی باشند. ثابت های عددی می توانند در مبنای 2 یا مبنای 8 یا مبنای 10 و یا مبنای 16 تعریف شوند. در حالت پیش فرض عددهای نوشته شده، در مبنای 10 درنظر گرفته می شوند ولی اگر بخواهید در مبناهای دیگر این اعداد را بنویسید برای مبنای 2 از حرف b برای مبنای 8 از حرف o یا q و برای مبنای 16 از حرف h استفاده می کنیم.

توضیحات بیشتر آموزش انواع داده ها در زبان اسمبلی Assembly را در ادامه مطلب می توانید مشاهده کنید.

در زبان اسمبلی 3 نوع داده DB,DW,DD می توانیم تعریف کنیم که در ادامه به توضیحات هر کدام از این انواع داده ها در زبان اسمبلی می پردازیم.

تعریف داده با دستور DB:

شناسه   DB     مقدار

دستور DB یا Define Byte برای تعریف داده های 1 بایتی مورد استفاده قرار می گیرد. مقادیری که این نوع داده می تواند به خود بگیرد به این صورت است که اگر عدد بدون علامت باشد بین 0 تا 255 خواهد بود. اعداد منفی 128- تا 1- نیز در یک بایت ذخیره می شوند، اما به اعداد منفی 255- تا 129- یک کلمه اختصاص می یابد ولی بایت باارزش آن نادیده گرفته خواهد شد. در دستور DB در زبان اسمبلی می توان مقادیر کاراکتری و رشته ای را نیز تعریف کرد که برای این منظور می توان از علامت نقل قول یکانی یا علامت نقل قول دوتایی استفاده کرد. به دستورات زیر توجه کنید.

P1   db   0                   ;value is 0

P2   db     -1280           ;value is 80

P3   db   255                ;value is FF

P4   db     +91              ;value is 5B

P5  db     01111101B     ;value is 7D

P6   db       1,5,2            ;value is   1 , 5 , 2

P7  db     ‘a’                  ;value is 61

P8  db     “ab”               ;value is 61 , 62

تعریف داده با دستور DW:

شناسه   DW     مقدار

دستور DW یا Define Word برای تعریف داده های یک کلمه ای یا همان 2 بایتی مورد استفاده قرار می گیرد. مقادیری که این نوع داده می تواند به خود بگیرد به این صورت است که اگر عدد بدون علامت باشد بین 0 تا 65535 خواهد بود. اعداد منفی 32768- تا 1- نیز در یک کلمه ذخیره می شوند، اما به اعداد منفی 65535- تا 32769- چهار بایت اختصاص می یابد ولی دو بایت باارزش آن نادیده گرفته خواهد شد. در دستور DW در زبان اسمبلی می توان مقادیر کاراکتری و رشته ای را نیز تعریف کرد که در این صورت کاراکتر مورد نظر در بایت کم ارزش قرار می گیرد و بایت با ارزش آن 0 خواهد شد برای رشته ها هم رشته مورد نظر حتما باید دو کاراکتر باشد. به دستورات زیر توجه کنید.

W1   dw   -32768              ;value is 8000

W2   dw     65535             ;value is FFFF

W3   dw   -10000              ;value is D8F0

W4   dw     400                ;value is 190

W5  dw     ‘a’                    ;value is 0061

W6  dw     “ab”                  ;value is 6261

تعریف داده با دستور DD:

شناسه   DD     مقدار

دستور DD یا Define Double word برای تعریف داده های 4 بایتی مورد استفاده قرار می گیرد. مقادیری که این نوع داده می تواند به خود بگیرد بین 0 تا 0FFFFFFH خواهد بود. به دستورات زیر توجه کنید.

D1   dd   2147483     ;value is C49B

مثال کاملی از آموزش انواع داده ها در زبان اسمبلی:

stkseg segment stack

     db 32 dup(“stack”)

stkseg ends

dataseg segment para ‘data’

P1   db   0                  ;value is 0

P2   db   -128              ;value is 80

P3   db   255               ;value is FF

P4   db   +91               ;value is 5B

P5   db   01111101B     ;value is 7D

P6   db   1,5,2             ;value is   1 , 5 , 2

P7   db   ‘a’                 ;value is 61

P8   db   “ab”              ;value is 61 , 62

W1   dw   -32768        ;value is 8000

W2   dw   65535         ;value is FFFF

W3   dw   -10000        ;value is D8F0

W4   dw   400            ;value is 190

W5   dw   ‘a’              ;value is 0061

W6   dw   “ab”           ;value is 6261

D1   dd   2147483      ;value is C49B

dataseg ends

codeseg segment para ‘code’

   main proc far

       assume ds:dataseg,cs:codeseg,ss:stkseg

   main endp

codeseg ends

   end main

 

ثبت نظر
ریفریش کنید!
نظرات کاربران (۱ مورد)
  1. تصویر آواتار کاربر 0
    وحید شنبه , 31 تیر

    عالی بود . زنده باد اسمبلی