program asm_inline; {9. Sa se scrie un program Pascal care: - citeste un sir de Śntregi; - apeleaza o functie scrisa in limbaj de asamblare, care tipareste sirul citit (apelind pentru aceasta o procedura scrisa in Pascal) si intoarce ca rezultat sirul format din caracterele care au codurile ASCII date de elementele sirului de Śntregi, daca sŚnt valori Śntre 0 si 255; daca un element al sirului de Śntregi nu se Śncadreaza in limitele cerute, caracterul corespunzator acestor valori va fi "."; - tipareste sirul Śntors ca valoare de functie.} type sir=array[1..50] of integer; var a:sir; n,i:integer; s:string; procedure tipareste(n:integer; a:sir); var i:integer; begin for i:=1 to n do write(a[i],' '); end; function fctasm(n:integer; a:sir):string; begin asm push n push ss lea bx,a push bx call tipareste push ds push ss pop ds lea si,a mov cx,n cld les di,@result mov ax,n mov byte ptr es:[di],al inc di @iar: lodsw cmp ax,0 jl @punct cmp ax,255 jg @punct mov byte ptr es:[di],al inc di jmp @loop @punct: mov byte ptr es:[di],'.' inc di @loop: loop @iar pop ds end; end; begin readln(n); for i:=1 to n do readln(a[i]); s:=fctasm(n,a); writeln(s); end.