Zad1
Uzupełnij, w mnemonice IA-32 lub AT&T (Intel x86), algorytm obliczający liczby dziesiętnej, reprezentowanej
przez kody ASCII kolejnych jej cyfr umieszczonych w N-bajtowej zmiennej LICZBA, zgodnie ze schematem.
X=(...((xn*10+xn-1)*10+xn-2)*10+...+x1)*10+x0.
Kod: Zaznacz cały
konflikt (etykieta) rozkaz Komentarz
xor ................................ ; wyzerowanie eax
mov ; podstawa 10 do ecx
mov ......... ; rozmiar argumentu N do esi
pocz: mul .............................. ; suma:=suma*10
mov ; kod ASCII kolejnej cyfry ze zmiennej LICZBA do rejestru bl
;
.............................................
add ; suma:=suma+kolejna cyfra
..............................
;
.............................................
j....... pocz ; (wybierz ..... spo ród warunków ge, gt, le, lt, eq, ne)
(2p) Program zwraca poprawn warto , je li 0 ≤ N≤ .............
Zad2
Uzupełnij, w mnemonice IA-32 lub AT&T (Intel x86), algorytm obliczający liczbę kombinacji k-elementowychw zbiorze n elementów (n ≥ k≥ 1), zgodnie z zależnością C(n,k)=[...[[n*(n–1)/2]*(n–2)/3]*(n–3)/4 ...]*(n–k+1)/k
Kod: Zaznacz cały
konflikt (etykieta) rozkaz komentarz
mov ........................... ; n do rejestru ecx
mov ........................... ; k do rejestru esi
mov ........................... ; pierwszy dzielnik (1) do ebx
mov ........................... ; pierwszy mno nik (n) do eax
¦
comb: dec ........................... ; kolejny czynnik (n–i) iloczynu
mul ........................... ; (edx:eax:=eax*ecx)
; kolejny dzielnik
.....................................
div ; (eax:=(edx:eax)/ebx, reszta w edx)
...........................
.......................................
j.......... comb ; (wybierz ..... spo ród warunków ge, gt, le, lt, eq, ne)
Jeśli n =–2 a k=1, to program zwraca wartość ..............................................
Zad 3
Uzupełnij, w mnemonice IA-32 lub AT&T (Intel x86), algorytm obliczający przybliżenie pierwiastka kwadratowego z 64-bitowej liczby naturalnej zgodnie ze schematem: (...(((ZMIENNA–1)|[?<0] –3) |[?<0] –5)|[?<0] –...) – (2n–1)|[!<0]
(z wykorzystaniem tożsamości 1+3+5+...+(2n–1) = \(\displaystyle{ n^{2}}\))
Kod: Zaznacz cały
konflikt (etykieta) rozkaz Komentarz
mov ........................ ; ; (ZMIENNA<2^64→ SQRT<2^32)
mov ........................ ; –1 do edx:eax
cykl: add ........................ ; oblicz w edx:eax następną nieparzystą
............................................. ;
sub : ZMIENNA – eax
............................................. ;
j.......... cykl ; (wybierz warunek spo ród: ge, gt, le, lt, eq, ne)
shr ................................... ; przesu w prawo obliczon warto 2n+1
rrc ....................................
Wynik programu jest w rejestrze /rejestrach ..............................................
Jeśli ZMIENNA<0, to program zwraca wartość ..............................................
proszę o pomoc