Kompyuter injiniringi fakulteti «Dasturiy injiniring»


Download 2.48 Mb.
bet2/2
Sana02.12.2023
Hajmi2.48 Mb.
#1779859
1   2
Bog'liq
XK696JsVW74wRJP0Riz0E6urgGMEmEEr

nishon:
buyruq_1
...
buyruq_n
Bu yerda buyruq_1 ning foydali manziliga nishon ko’rsatkichi olib kelinadi. Dasturning xohlagan yeridan tarmoqlash buyruqlariga shu foydali manzilni, ya’ni nishon nomini bergan holda buyruq_1 ni bajarishga o’tishimiz mumkin.

Topshiriq
1. Butun turdagi a,b,c ( 0≤a,b,c≤255 ) o’zgaruvchilari berilgan. Ularning yig’indisini hisoblovchi dastur tuzilsin.

Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

1 2 3
255 255 255

6
765



Dastur kodi





Dastur natijasi:

2. Butun turdagi a,b,c (0≤a,b,c≤216-1) o’zgaruvchilari berilgan. S=a+b-c ifodaning qiymatini hisoblovchi dastur tuzilsin.

Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

1 2 3
255 7255 255

0
7255



Dastur kodi:



Dastur natijasi:

3. Butun turdagi a,b (0≤a,b≤28-1) o’zgaruvchilari berilgan. Bu o’zgaruvchilarning qiymatlarini o’zaro almashtiruvchi dastur tuzilsin. Dastur kodi saqlanadigan fayl swap.asm deb nomlansin. (20%).

Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

a=3
b=4

a=4
b=3



Dastur kodi:



Dastur natijasi:



4. Butun turdagi a,b (0≤a,b≤28-1) o’zgaruvchilari berilgan. Yordamchi
o’zgaruvchi kiritish usulidan foydalanmasdan faqat qo’shish va ayirish amallari yordamida bu o’zgaruvchilarning qiymatlarini o’zaro almashtiruvchi dastur tuzilsin. Dastur kodi saqlanadigan fayl swap2.asm deb nomlansin.

Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

a=3
b=4

a=4
b=3

Dastur kodi:





Dastur natijasi:



5. Butun turdagi a,b,c (0≤a,b,c≤232-1) o’zgaruvchilari berilgan. S=a-(b+c) ifodaning qiymatini hisoblovchi dastur tuzilsin.

Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

1 2 3
255 7255 255

-4
-7255

Dastur kodi:



Dastur natijasi:



6-masala. Quyida assembler tilida berilgan dastur kodini C++ tiliga o’giring.
%include"d:\nasm-io.inc"
section .bss
x resd 1
section .data
y dd 100
a dd 0
b dd 1
section .text
global _main
_main:
mov eax,[y]
cmp eax,0
jle aa
chop_et '%i',[b]
jmp tamom
aa: chop_et '%i',[a]
tamom:
ret



Dastur 100<=0 ni tekshiradi. Va shartni qanoatlantirmagani uchun b ni ekranga chiqaradi:



7-masala.Quyida assembler tilida berilgan kodni ishlash natijaisni ko’rsating. Bu dastur qanday masalani hal etadi?
%include "d:\nasm-io.inc"
section .bss
x resd 1
section .text
global _main
_main:
qabul_qil '%i',x
mov eax,[x]
cmp eax,0
jge s
neg eax
chop_et '%i',eax
jmp tamom
s: chop_et '%i',eax
tamom:
ret

Dastur natijasi:
Bu dastur sonni manfiy emaslikka tekshiradi. Agar son manfiy bo’lsa u bu sonning neg ya’ni musbat qiymatini, aks holda o’zini qaytaradi:

8-masala. Quyida C++ tilida dastur qismi berilgan. Shu dastur qismiga mos assembler dastur kodini keltiring.
short int a=10;
int b=20,c;
c=a+b

Dastur kodi:





Dastur natijasi:



9-masala. Ushbu chizmani izohlab bering.

ax, al va eax registrlari x86 arxitekturasida umumiy maqsadli registrlardir. Balta registr 16 bitli registr bo'lib, uni ikkita 8 bitli registrga bo'lish mumkin: al va ah. eax registr 32 bitli registr bo'lib, uni ikkita 16 bitli registrga bo'lish mumkin: ax va bx.
Barcha registridan operatsiyalar natijalarini saqlash uchun, al va ah registrlari esa mos ravishda bolta registrining past va yuqori baytlarini saqlash uchun ishlatiladi. eax registridan qo'shish, ayirish, ko'paytirish va bo'lish kabi 32 bitli qiymatlarni qaytaruvchi amallar natijalarini saqlash uchun foydalaniladi.
Assembler dasturlashda, registr xotirasi (registry) va RAM xotirasi (Random Access Memory) o'rnatilgan ma'lumotlarni saqlash va amalga oshirishda foydalaniladigan ikkala turdagi xotiralar hisoblanadi. Ularning foydalanish tartibi va xususiyatlari quyidagicha:
Registr xotirasi (registry):
Registr xotirasi, kompyuterning tizimiga tegishli mahsulotdagi o'zgaruvchilarni saqlash uchun ishlatiladi. Bu xotira turining xususiyatlari quyidagicha:
Tezlik: Registr xotirasi kompyuter tizimining o'zida joylashgan, shuning uchun o'qish va yozish tezligi RAM xotirasidan tezroq bo'ladi. Bu tizimning faoliyatini tezlashtiradi.
Miqdori: Registr xotirasi tizimning ichida joylashgan ma'lumotlarni saqlash uchun xususiy joy miqdorini ta'minlaydi. Tizimga bog'liq o'zgaruvchilar soniga va turiiga qarab belgilangan.
Maxsuslik: Har bir registrga tizimda alohida o'zgaruvchi yoki axborot segmenti bog'liq bo'lishi mumkin. Bu registr xotiralarida mahsulotlarning maxsusliklari va ishlash tartiblari belgilanadi.
RAM xotirasi (Random Access Memory):
RAM xotirasi, dastur tomonidan amalga oshiriladigan buyruqlar va ma'lumotlarni saqlash uchun foydalaniladi. Bu xotira turining xususiyatlari quyidagicha
Ketrinlik: RAM xotirasi dastur va ma'lumotlarni saqlash uchun o'rtacha vaqt limitini beradi. Ular dastur ishlash vaqti davomida yadda qoladi, lekin tizimni qayta ishga tushirish orqali ma'lumotlar o'chib ketadi.
Tezlik: RAM xotirasi, dasturlar va ma'lumotlar uchun tezkor o'qish va yozish imkonini beradi. Uning o'qish va yozish tezligi kompyuterning boshqa xususiyatlari bilan bog'liq bo'lib, dasturlarni tez bajarishga yordam beradi.
Miqdori: RAM xotirasining miqdori kompyuter tizmining konfiguratsiyasiga bog'liq bo'ladi. RAM miqdori kompyuterning ishlash tezligini va ma'lumotlarni saqlash imkoniyatini ta'minlayadi
Aslida, registr xotirasi tizimning ochiq ishlash paytida foydalaniladi, shuning uchun uning miqdori o'zgarishi juda qisqa bo'ladi. RAM xotirasi esa katta miqdorda ma'lumotlarni saqlash uchun ishlatiladi, ammo uning tezliklari registr xotirasiga nisbatan qisqa bo'ladi. Assembler dasturlashda, registr xotirasi o'zgaruvchilar, to'plamlar, buyruqlar va boshqa dasturiy elementlarni saqlash uchun foydalaniladi, RAM xotirasi esa dastur va ma'lumotlar to'plamlarini saqlash uchun ishlatiladi. Ular dasturlarni tashqi xotiradan o'qish va saqlash imkonini beradi va dasturlarni to'g'ri bajarish va amalga oshirishda muhim rol o'ynaydilar.

10-masala. Berilgan uchta butun son ichidan eng kattasini aniqlovchi dastur tuzilsin.





Dastur natijasi:

Download 2.48 Mb.

Do'stlaringiz bilan baham:
1   2




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