Mustaqil ish fan: Dasturlash uslublari va paradigmalar


Download 0.86 Mb.
bet2/3
Sana08.11.2020
Hajmi0.86 Mb.
#142666
1   2   3
Bog'liq
Baxritdinov 210 6


________________________________________________

MUSTAQIL ISHLASH UCHUN TOPSHIRIQLAR

1-masala. Quyida assembler tilida berilgan dastur kodini C++ tiliga o’giring(20%).

%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

2-masala.Quyida assembler tilida berilgan kodni ishlash natijaisni ko’rsating. Bu dastur qanday masalani hal etadi? (20%).

%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

3-masala. Quyida C++ tilida dastur qismi berilgan. Shu dastur qismiga mos assembler dastur kodini keltiring (20%).

short int a=10;

int b=20,c;

c=a+b

4-masala. Ushbu chizmani izohlab bering (20%).



5-masala. Berilgan uchta butun son ichidan eng kattasini aniqlovchi dastur tuzilsin (20%).

Javoblar:





#include

using namespace std;

int main()

{

int x=100;



cout<< (x>0)?x:0 ;

return 0;

}

2)

%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)

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




Download 0.86 Mb.

Do'stlaringiz bilan baham:
1   2   3




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