Toshtemirov muxammadi
Download 0,79 Mb.
|
Mustaqil Topshiriq 6
- Bu sahifa navigatsiya:
- TOSHTEMIROV MUXAMMADI
- 3-masala.
- 5-masala.
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGYALARI VA KOMMUNIKATSIYALARINI RIVOLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI “KOMPYUTER INJINIRINGI” FAKULTETI “DASTURIY INJINIRINGI” YO’NALISHI 210-GURUH TALABASI TOSHTEMIROV MUXAMMADINING “DASTURLASH USLUBLARI VA PARADIGMALARI” FANIDAN 6 - MUSTAQIL ISHI
%include"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 C++ tilida #include using namespace std; int main() { int x=100; cout<< (x>0)?x:0 ; return 0; }
%include "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 Bu yerda: mov eax,[x]- x o’zgaruvchini eax registriga taminlanayapti, cmp eax,0 – eax regitridagi qiymatni 0 bilan solishtiryapmiz, jge s -agar x<0 sharti bajarilsa, s ga o’tadi. neg eax – eax registridagi qiymatni teskarisiga almashtiradi.Demak, shunday xulosa qilishimiz mumkinki, bu dastur taqqoslash natijasini teskari ishorasi bilan chop etadi. 3-masala. Quyida C++ tilida dastur qismi berilgan. Shu dastur qismiga mos assembler dastur kodini keltiring (20%). C++ tilida short int a=10; int b=20,c; c=a+b Assambler tilida short int a=10; int b=20,c; c=a+b
%include "nasm-io.inc" section .bss a resd 4 b db 2 c db 4 section .text global _main _main: chop_et 'Ikkita son kiririting:' qabul_qil '%i %i',a,b mov eax,[a] ;; eax=a mov ecx,[c] ;; ecx=c mov ebx,[b] ;; ebx=b add ecx,[b] ;; ecx=ecx+b add ecx,[a] ;; ecx=ecx+a chop_et 'Natija: %i+%i=%i %i',[a],[b],c,ecx ret
Bu jadvalda 32 bitli registr keltirilgan. Ko’rib turganimizdek, u 3 qismga bo’lingan: Yuqori, quyi va default holati bosh bo’lga eax, ebx, ecx hamda edx registrlar mavjut. Biz yuqoridagi registrlardan 2 baytli registr sifatida foydalanishimiz mumkin. 5-masala. Berilgan uchta butun son ichidan eng kattasini aniqlovchi dastur tuzilsin (20%). #include using namespace std; int main() { int x, a, b; cin>>a>>b>>x; if(a>=b && a>=x) cout<
else
if(b>=a && b>=x) cout<
if(x>=a && x>=b) cout< Download 0,79 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling