V bob Assembler tilida dasturlash
Download 0.51 Mb. Pdf ko'rish
|
10-amaliy
X
To'liq nomi O'lchami B Byte 1 bayt W Word 2 bayt D Double word 4 bayt Q Quad 8 bayt O Octal 8 bayt (IEEE 1 ) T Ten 10 bayt Qoidasi: nishon_nomi resx n Bu yerda nishon_nomi bu dasturchi o'zgaruvchiga beradigan nom, RESX - o'zgaruvchi o'lchami, n - natural son bo'lib, nechta X kattaligida joy ajratilishi kerakligini ko'rsatadi, ya'ni x∗n bayt joy ajratiladi. O'quvchiga yanada tushunarli bo'lishi uchun shuni eslatib o'tamizki, masalan, xotiradan bir bayt joy ajratsangiz u yerda 0 dan 2 8 gacha, ya'ni 255 sonigacha bo'lgan sonlarni sig'dira olasiz. Misollar: x resb 1 Bir bayt joy ajratib uning manzilini x o'zgaruvchisida (nishonida) saqlaymiz. y resb 2 y o'zgaruvchisi uchun ikki bayt joy ajratamiz, ya'ni u yerda 0 dan 2 16 -1 gacha bo'lgan sonlarni sig'dira olamiz. y2 resw 1 y2 o'zgaruvchisining o'lchami bu yerda y bilan teng. x, y va y2 o'zgaruvchilarida harfli va sonli qiymatlarni saqlashingiz mumkin. Shuni aytish lozimki, bitta harf yoki bitta belgi uchun bir bayt joy kerak bo'ladi. kasr resq 1 ;; o'nli kasr son uchun 8 bayt ajratiladi q2 reso 2 ;; q2 uchun 8 baytdan 16 bayt ajratiladi 1 IEEE (Institute of Electrical and Electronic Engineers – Elektr va Elektron Muhandislar Instituti) tomonidan ishlab chiqilgan usul bo'yicha kasr sonlarni xotirada saqlashda kerak bo'ladigan o'lcham. 47 katta_kasr rest 1 ;; katta_kasr uchun 10 bayt ajratiladi Eslatma : Assembler tilida nuqta verguldan (;) so'ng o'sha qator oxirigacha bo'lgan yozuvlar izoh deb tushuniladi va ularning dasturga hech qanday aloqasi yo'q. Ikkinchi usulda e'lon qilinganida o'zgaruvchilar dasturning .data bo'limida yoziladi. Bunda biz DX direktivasidan foydalanamiz. X harfi RESX dagi kabi ma'noga ega. Qoidasi: nishon_nomi dx boshlang'ich_qiymat Bu yerda oldingi usuldan farqli o'laroq o'zgaruvchiga boshlang'ich_qiymat ham o'zlashtiriladi. Misollar: son db 0 son o'zgaruvchisiga bir bayt joy ajratamiz va u yerga 0 sonini yozamiz. eng_katta_2_baytli_son dw 65535 Bu yerda o'zgaruvchi nomining o'zi unda nima saqlanayotgani haqida ma'lumot berib turibdi. Boshlang'ich qiymat ikki baytga sig'ishi mumkin bo'lgan eng katta ishorasiz son bo'lib, u (1111111111111111) 2 soniga teng. Eslatma : Agarda boshlang'ich qiymat 65535 dan hatto bittaga katta bo'lsa ham u eng_katta_2_baytli_son o'zgaruvchisiga sig'maydi va NASM kompilyatori dasturni yig'ish davomida xato yuz bergani haqida xabar beradi. Chunki biz o'zgaruvchini e'lon qilganimizda uni ikki baytdan iborat ekanligini DW direktivasi orqali kompilyatorga aytgan edik. a dd 789 ;; to'rt bayt ajratiladi. b dq 5.2244e+14 ;; qo'sh aniqlikdagi kasr son. c dt 5.2244e+14 ;; kengaytirilgan aniqlikdagi kasr son. Agar ikki yoki undan ko'p qiymatlar bo'lsa, ularni vergul orqali berish mumkin. Bu holda har bir qiymat uchun ketma-ket ravishda X orqali ko'rsatilgan kattalikda joy ajratiladi. Masalan: X1 dd 85, 96 4 baytdan 2 marta joy ajratiladi va birinchisiga 85, ikkinchisiga 96 yoziladi. X1 ga qaysi birining manzili yoziladi degan savol tug'iladi. Gap shundaki, manzillar bu yerda faqat 4 soniga farq qiladigan ikkita ketma-ket son bo'ladi va birinchisi X1 ga yoziladi. Bu 13-rasmda tushunarli aks etgan. 13rasm. 48 O'zgaruvchilarda belgili (harfli) yoki qatorli qiymatlarni ham saqlash mumkin. Belgili va qatorli qiymatlar nishon nomlari va assembler buyruqlaridan farqlanishi uchun qo'shtirnoqlar ichida yoziladi. Ma'lumot uchun shuni aytib o'tish kerak-ki, IISC (Institude of International Download 0.51 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling