Mustaqil bajarish uchun topshiriqlar
Quyida keltirilgan masalalar uchun assembler dasturlash tilida dastur yozing.
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
|
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
|
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
|
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
|
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
|
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
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
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
9-masala. Ushbu chizmani izohlab bering.
10-masala. Berilgan uchta butun son ichidan eng kattasini aniqlovchi dastur tuzilsin.
Dostları ilə paylaş: |