V bob Assembler tilida dasturlash


Download 0.51 Mb.
Pdf ko'rish
bet3/5
Sana22.04.2023
Hajmi0.51 Mb.
#1382060
1   2   3   4   5
Bog'liq
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 
xn
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

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.
13­rasm.
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:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling