Tietokonej„rjestelm„t 1989 Teht„vi„ 1. Kirjoita seuraavia Pascal-rakenteita vastaavat assembler- ohjelman p„tk„t: s:=0; FOR i:=n1 TO n2 DO s:=s+i; s:=0; FOR i:=1 TO n DO s:=s+1; s:=0; i:=1; WHILE i<=n DO BEGIN s:=s+i; i:=i+2; END; s:=0; i:=1; REPEAT s:=s+i; i:=i+2; UNTIL s>16*i; 2. Kirjoita rekursiivinen assembler-aliohjelma TULO, joka laskee tulon AX*BX kaavasta TULO(AX,BX) = TULO(AX-1,BX) + BX , AX>0 TULO(AX,BX) = 0 , AX=0 Aliohjelma palauttaa tulon rekisteriss„ AX. 3. Kirjoita loppuun seuraava assembler-aliohjelma: ;--------------------------- lajittele -------------------- lajittele PROC NEAR ; ; Aliohjelmalla lajitellaan paikasta DS:SI alkava ; tavuvektori nousevaan j„rjestykseen ; ; Input: DS:SI - vektorin alkuosoite ; CX - alkioiden lukum„„r„ ; Output: DS:[SI] - lajiteltu vektori ; Muuttuu: liput,DS:[SI] ; Kutsuu: etsi_suurin ; ; Algoritmi: ; 1. etsit„„n osoittimen kohdasta alkavan osavektorin suurin alkio ; 2. vaihdetaan suurin osoittimen kohdalla olevan kanssa ; 3. siirret„„n osoitinta eteenp„in ; 4. mik„li ei vektorin lopussa, jatketaan 1:st„ ; ; Rekistereiden k„ytt”: