Lectie despre: Assembly 102 de Tr nightowl Inregistrat de: Ker. adtrace Editat de: Ker. adtrace Data: 2002.12.04 Copyright: Acest Class/Log este proprietatea Cyberarmy (www.cyberarmy.net) ************************************************************** Acest log a fost editat de catre Universitate Cyberarmy. Liniile de text cu oamenii care intra si ies de pe canal,schimbarile de nick au fost sterse. Cateva linii care nu apartineau de lectie au fost sterse ************************************************************** Bun venit tuturor la Assembly 102 :) Daca nu ati verificat log-urile de la prima letie, va recomand sa vizitati http://cauniversity.org/class_logs/ASM101.txt hey asta e replica mea Profesorul de azi este Tr nightowl de la CAU Ei bine...nu mi-a lasat prea multe de spus cele doua lucruri de care ne vom ocupa astazi sunt sisteme de numerotare si anume Hexazecimal si de asemenea arhitectura calculatorului Hexazecimal pentru cei care nu stiu ce este, e baza 16 ceea ce inseamna ca in loc sa fie de la 0 la 9 este 0 - F pe coloana unitatilor Hexazecimal, la care ii voi spune pe scurt hex de acum inainte este incurcat la inceput, dar este o parte importanta a programarii in assembly majoritatea matematicii facute in assembly va fi in Hex si asta inseamna ca va trebui sa va familiarizati cu el in scurta vreme vom face adunarea si scaderea in Hex dar mai intai sa invatam sa numaram in hex incepe la fel ca si zecimal 0, 1, 2, 3, 4, etc pana la noua apoi in loc sa incepem o noua coloana ca in Zecimal mergem mai departe la literele care au fost imprumutate de primii utilizatori de hex a (10), b (11), c (12) d (13) e (14) si f (15) relativ simplu ce urmeaza dupa 15? 10 in hex 10 este egal cu zecimalul 10 zecimalul 16 ma scuzati stiu ca pun in incurcatura pe cel putin unul dintre voi asa ca am sa ma opresc pentru intrebari si sa vedem daca nu putem sa mai indreptam putin lucrurile daca doriti sa puneti o intrebare daca ar fi baza 40 s-ar folosi si literele "mari" si "mici"? ok intrebarea lui shabs este buna literele sunt simpli substituenti pentru numere putem folosi orice vrem in locul acelor numere chiar sa inventam noi simboluri asa ca cine stie, poate ca ar folosi tot alfabetul ... chewy: credeam ca hex era de la 0 - 15 chewy: si f ar fi 15 chewy este 0 - 15 pe o coloana ar putea fi folositor sa scoateti in evidenta ca un numar hex de doua cifre este exact 8 bits sau un byte cqa si in zecimal unde avem coloanel unitatilor, zecilor, sutelor si in hex le avem asa ca odata ajunsi la F sau 15 ne mutam pe urmatoarea coloana si inlocuim F-u cu un 0 exact ca si in zecimal si o sa avem unu in coloana zecimalelor si 0 in coloana unitatilor sau 10 :) a inteles toata lumea acum? este ca si cum ai folosi un pseudomin pentru numere ... mai mari ca 9 exact acum o sa trecem mai departe la adunare si scadere acest lucru imi va fi greu sa-l demonstrez asa ca am sa fac o lista de 3 sau 4 sume si voi veti putea lucra la ele iar apoi vom afla rezultatele ok... f + 1 = ? c + 2 = ? 3f + 2c ... f - 3 = 1f - 10 = 3f - 2c = ... dati drumu la aste de3 ce nu folosim un convertor de baze pentru probleme? cine ar calcula multe chestii hex in cap? sunt perfect de acord cu folosirea unui calculator pentru operatiile hex mai complicate Dar tot trebuie sa intelegeti cum functioneaza ... am sa las sistemul de numerotare aicea si am sa trec la arhitectura calculatoarelor altfel vom depasi cu mult timpul daca cineva inca nu a inteles hex voi fi bucuros sa mai petrec ceva timp cu el la sfarsit acum sunt destul de sigur ca toti cunosc componentele de baza ale calculatorului va puteti gasi tastatura sau nu ati fi aicea asa ca nu am sa va insult inteligenta si am sa sar peste cateva lucruri care ar trebui sa le stiti deja o sa aruncam o privire rapida asupra registrilor de care ma voi ocupa in detaliu tot mai tarziu iar apoi vom vorbi despre intrerperi ca o cale de a interactiona cu calculatorul hardware Registri...(inregistrari) ce pot sa spun sunt chestii ciudate registri generali de baza ax, bx, cx, dx, etc fiecare are o sarcina specifica ex cx este folosit ca un contor si dx este folosit mai ales pentru date exista bineinteles si registri mai complicati, despre care nu vom vorbi acum (->linx) De aceea C din cx = C de la counter si la fel pentru D din dx = D de la data? notivul pentru care vreau sa cunoasteti acesti patru registri pana in acest moment este pentru ca joaca un rol in a putea accesa partea hardware a computerului prin apelul INT ceva de genul acela linx... trebuie de asemenea sa stiti ca fiecare din acesti patru registri poate fi impartit in doua ax = al & ah care semnifica partea de sus si partrea de jos "high" "low" a registrilor acum cand folosim o apelare INT calculatorul verifica valorile din fiecare registru (care trebuie sa il verifice) and si le foloseste pentru a interpreta ce se va intampla exista mii de posibilitati de apelari INT si nu este nici o sansa ca eu sa le stiu pe toate, si mai putin sa le explic dar exista o speranta un om pe nume ralph brown a creat o lista cu toate apelurile INT cunoscute si puteti gasi o copie Man_at_Arms: ? ma scuzati www.ctyme.com/rbrown.htm cele doua la care ar trebui sa va uitati in special ar trebui sa fie INT 10 care sunt apelurile la bios si INT 21 care sunt apelurile la DOS deschideti pagina acum am facut asta si am mers la lista de intreruperi si am dat click pe 10 si am mers in jos pana am vazut VIDEO - SET CURSOR POSITION si am dat click pe ea si a aparut exact ceea ce trebuie sa scriu in fiecare registru ca sa il fac sa seteze pozitia observatie: daca nu este specificat ce trebuie in registru atunci puneti-l la 0 sau lasati-l singur ... voi raspunde din nou la intrebari ar rebui sa puteti lua programul care vi l-am dat saptamana trecuta si sa il modificati sa apeleze alte functii DOS sau BIOS Deci daca inteleg corect, pui instructiunile in registri dupa care le executa? asa e complectezi registri cu: 1. Functia specifica pe care o vrei 2. Datele folosite de acea functie Daca aveti intrebari va rog sa le adresati lui adtrace altfel vom incheia intrebari cineva? au plecat toti sa se joace cu INT-urile stiam ca nu trebuia sa le dau siteu :P nah okvom incheia atunci oh oh inca un lucru prima sarcina va fi afisata cu log-ul v-am dat cam tot ce va trebuie pentru a putea duce la capat sarcina dar ce lipseste va fi adaugat mai tarziu cu asta cred ca am terminat pot sa intreb de ce ati facut chestiile de baza acum si nu data trecuta? JagWire > am vrut sa le dau o idee despre limbaj de altfel introducere nu s-a potrivit cu cele doua lucruri car le-am facut astazi