NASM'da o'zgaruvchilar

NASM bu linux assembler compilyatori. Biz bu maqolada o'zgaruvchilar haqida gaplashamiza. Qani ketdik.

NASMda section .bss va section .data degan qismlar mavjud. Bu qismlarda biz o'zgaruvchilarni e'lon qilishimiz mumkin, yani insalizatsiya qilinmagan va inisalizatsiya qilingan o'zgaruvchilar.

Hamma tillar kabi nasmda xam o'zgaruvchilarni o'zini o'lchami mavjud.
b — bayt (8 bit (1 bayt))
w — word (2 bayt)
d — double word (4 bayt)
q — quad word (8 bayt)
t — ten bite (10 bayt)


section .bss da o'zgaruvchilar e'lon qilishning umumiy quyidagicha. (X) ning o'rnida yuqorida ko'rsatilgan b,w,d,q,t lar qo'yiladi.
O'zgaruvchilarni e'lon qilish umumiy ko'rinishi quyidagicha.

var_name rexX size

Masalan:
x rexb 2 ; //bu erda x uzgaruvchisi uchun 2 bayt joy ajratiladi.
w rew 1 ; // w uzgaruvchisiga 2 bayt joy
bla resd 2 ; //bla uzgaruvchisiga 8 bayt
ql resq 2 ; //ql uzgaruvchisiga 16 bayt
ts rest 2 ; //ts uzgaruvchisiga 20 bayt

shu tariqa o'zgaruvchilar e'lon qilinadi section .bss da

section .data da inisalizatsiya qilingan o'zgaruvchilar e'lon qilinadi.
O'zgaruvchilar quyidagi ko'rinishda e'lon qilinadi.
var_name dX qiymat
X ning o'rnida b,w,d,q,t lar bo'ladi.
Masalan:
salom db "Salom Dunyo",0 ; //bu erda salom uzgaruvchisi uchun 12 bayt joy ajratiladi, har bir harf uchun 1 bayt. 0 esa qator tugaganligini bildiradi.
xy db 15 ; //xy da 15 soni turibdi
z dw 356 ; //z = 356
bc dd F8h ; //bc = F8h (yani 248)
ql dq F3BC64h ; //ql = F3BC64h
tn dt E3C48FA89h ;// tn = E3C48FA89h


Quyidagilar noto'g'ri hisoblanadi.
x db 300; chunki 1 baytga max 255 soni ketadi

Eski OpenNet.Uz satidan.

Нет комментариев