Osnovi programiranja i programski jezici

Osnovi programiranja i programski jezici Osnovi programiranja i programski jezici

carstvolokvanja.com
from carstvolokvanja.com More from this publisher
06.04.2015 Views

Na slici 164C je adresa kod segmenta, a ovaj broj će odrediti operativni sistem, kod drugog računara neki drugi broj će biti ispisan. Adresa lokacije u kod segmentu je 0100h, ovo znači da početak programa nije od nulte lokacije. Memorija od 0000h do 00FFh je zauzeta, tu su neki parametri sistema. Posle adrese 0100h je sledeća adresa na slici 0102h, zato, što prva instrukcija mov ah,02 zahteva dva bajta, prvi bajt je kod operacije (mov), a drugi bajt je jednobajtni operand (02). Slučajno, u ovom programu sve operacije su dvobajtne. Na adresi 164C:0108 CTRL C je naredba asembleru, da nema više instrukcija i treba da vrati komandu u DEBUG. Posle unošenja programa i pojave ‘-’ PROMPT-a DEBUG je spreman da prihvata sledeću komandu, a to je u ovom slućaju (slika 2.) ‘g’, odnosno go, naradba, da DEBUG izvrši program. Zadatak programa je bio štampanje broja 1. Nakon štampe DEBUG šalje poruku korisniku: ‘Program terminated normally’, znači uspešno je završen program. Programer mora obezbediti pravilan izlazak iz programa, da Multiprogramski rad: Način rada bi DEBUG mogao korektno da nastavi rad. U jednog računarskog sistema, kod suprotnom, računar će nekontrolisano raditi, i koga centralna jedinica naizgled najverovatnije se blokirati. Istina, da kod istovremeno obrađuje više procesa. Windows multitasking (multiprogramski) operativnog sistema DOS režim je samo jedan task (zadatak), pa jednostavno kod greške u DOS-u Windows će normalno nastaviti rad dalje. Ako imamo program u operativnoj memoriji i želimo ga analizirati naići ćemo na poteškoće, jer čitanje programa u mašinskom kodu je praktično nemoguće. U ovom slučaju program disasembler vrati mašinski kod u mnemonički program, šalje na ekran listing (listu) programa. Aktiviranje disasemblera u DEBUG programskom paketu je sa ‘u’ naredbom. Na slici 3 je disasembliran naš prvi program. Pošto se ne zna kraj programa, disasembler izlista jedan ekran, a ako je program kraći, posle zadnje instrukcije pojaviće se deo memorije sa mnemoničkim kodovima, koje instrukcije nisu elementi programa (na slici 15 se to ne vidi). Ti podaci mogu biti delovi prethodnih programa. Slika 15.: Rezultat disasembliranja programa prvi U programu programske linije imaju sledeća značenja: ASCII (American Standard Code for Information Interchange): Skraćenica za američki standardni kod za razmenu informacije. Ovaj sedmobitni kod uspostavlja jednoznačnu vezu između slova, cifara, specijalnih i kontrolnih znakova, sa jedne strane, i kombinacije binarnih brojeva dužine sedam bitova, sa druge strane. U ASCII-kodu je moguće kodiranje 128 različitih znakova. • mov ah,02 upisivanje broja 02 u značajniji bajt akumulatora ax, 78

• mov dl,31 upisivanje ASCII koda broja 1 u manje značajniji deo dx registara, • int 21 aktiviranje ugrađene rutine operativnog sistema za ispisivanje jednog karaktera na ekran, ako je prethodno komanda 02 upisana u ah i ako je ASCII kod karaktera upisan u dl registar. • int 20 aktiviranje ugrađene rutine operativnog sistema, koja rutina će obezbediti ispravno vraćanje upravljanja u onaj program, odakle je pozvan potprogram (u ovom slučaju program je pozvan iz DEBUG-a). ‘d’ komanda DEBUG-a izlista deo sadržaja operativne memorije u heksadecimalnom i ASCII obliku. Ako ćemo izlistati naš program, onda od tih podataka samo prvih osam bajtova pripadaju našem programu, ostali podaci nemaju nikakav značaj za nas. Kod ASCII vrednosti ‘...1.!’ broj 1 je kod našeg broja 1, koji smo mi upisali u dl registar. ‘.’ (tačka) će se pojaviti u slučaju, ako kod nema odgovarajući karakter, na primer ako je instrukcija ekrana (povrat kolica, novi red itd.). U Tabeli 12. su ASCII kodovi. Ako iskoristimo i bit D7 za kodiranje, onda praktično još 128 kodova možemo definisati. U ovoj drugoj tabeli su specijalni karakteri, slova drugih (neengleskih) jezika itd. Tabela 12: ASCII kodovi 000 001 010 011 100 101 110 111 0000 NUL DLE blank 0 @ P ’ p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EDT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB ‘ 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l | 1101 CR GS - = M ] m } 1110 SO RS . > N ^ n ~ 1111 SI US / ? O _ o DEL ‘r’ komanda DEBUG-a je za ispisivanje sadržaja registara procesora i indikatorskih bitova (zastavica). ‘p’ komanda DEBUG-a je za izvršenje programa korak po korak, nasuprot komande g, a istovremeno realizuje i ‘r’ komandu. Ako je zadatak štampanje slova ‘A’, onda ne moramo ponovo pisati program, odnosno kompletno upisati u operativnu memoriju, nego sa u naredbom (disasembler) 79

Na slici 164C je adresa kod segmenta, a ovaj broj će odrediti operativni sistem, kod<br />

drugog računara neki drugi broj će biti ispisan. Adresa lokacije u kod segmentu je<br />

0100h, ovo znači da početak programa nije od nulte lokacije. Memorija od 0000h do<br />

00FFh je zauzeta, tu su neki parametri sistema. Posle adrese 0100h je sledeća adresa<br />

na slici 0102h, zato, što prva instrukcija mov ah,02 zahteva dva bajta, prvi bajt je kod<br />

operacije (mov), a drugi bajt je jednobajtni operand (02). Slučajno, u ovom programu<br />

sve operacije su dvobajtne. Na adresi 164C:0108 CTRL C je naredba asembleru, da<br />

nema više instrukcija i treba da vrati komandu u DEBUG.<br />

Posle unošenja programa i pojave ‘-’ PROMPT-a DEBUG je spreman da prihvata<br />

sledeću komandu, a to je u ovom slućaju (slika 2.) ‘g’, odnosno go, naradba, da<br />

DEBUG izvrši program. Zadatak programa je bio štampanje broja 1. Nakon štampe<br />

DEBUG šalje poruku korisniku:<br />

‘Program terminated normally’,<br />

znači uspešno je završen program. Programer<br />

mora obezbediti pravilan izlazak iz programa, da Multi<strong>programski</strong> rad: Način rada<br />

bi DEBUG mogao korektno da nastavi rad. U jednog računarskog sistema, kod<br />

suprotnom, računar će nekontrolisano raditi, i koga centralna jedinica naizgled<br />

najverovatnije se blokirati. Istina, da kod istovremeno obrađuje više procesa.<br />

Windows multitasking (multi<strong>programski</strong>)<br />

operativnog sistema DOS režim je samo jedan task (zadatak), pa jednostavno kod<br />

greške u DOS-u Windows će normalno nastaviti rad dalje.<br />

Ako imamo program u operativnoj memoriji i želimo ga analizirati naići ćemo na<br />

poteškoće, jer čitanje programa u mašinskom kodu je praktično nemoguće. U ovom<br />

slučaju program disasembler vrati mašinski kod u mnemonički program, šalje na<br />

ekran listing (listu) programa. Aktiviranje disasemblera u DEBUG programskom<br />

paketu je sa ‘u’ naredbom. Na slici 3 je disasembliran naš prvi program. Pošto se ne<br />

zna kraj programa, disasembler izlista jedan ekran, a ako je program kraći, posle<br />

zadnje instrukcije pojaviće se deo memorije sa mnemoničkim kodovima, koje<br />

instrukcije nisu elementi programa (na slici 15 se to ne vidi). Ti podaci mogu biti<br />

delovi prethodnih programa.<br />

Slika 15.: Rezultat disasembliranja<br />

programa prvi<br />

U programu programske linije imaju sledeća<br />

značenja:<br />

ASCII (American Standard Code<br />

for Information Interchange):<br />

Skraćenica za američki standardni<br />

kod za razmenu informacije. Ovaj<br />

sedmobitni kod uspostavlja<br />

jednoznačnu vezu između slova,<br />

cifara, specijalnih i kontrolnih<br />

znakova, sa jedne strane, i<br />

kombinacije binarnih brojeva dužine<br />

sedam bitova, sa druge strane. U<br />

ASCII-kodu je moguće kodiranje<br />

128 različitih znakova.<br />

• mov ah,02 upisivanje broja 02 u značajniji bajt akumulatora ax,<br />

78

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!