ceainic Bloguri

Buclele și steaguri de ramificare înregistrare

Programul anterior se repetă de 25 de ori mai mare decât linia de ieșire de text de pe ecran. Aș putea scrie de 25 de ori unul și același cod. Dar ce se întâmplă dacă doriți să repetați programul de 10.000 de ori? Și dacă trebuie să-l repete până atunci, până când veți obține soluția potrivită? Pentru a face acest lucru, vom obține faza dorită a programului să fie repetat de mai multe ori. Acest exemplu se repetă aproape întregul program, dar nu este necesar. Acum voi da o schemă simplificată a acestui program, acesta va fi algoritm practic.







01 Goliți ecranul și setați dimensiunea 80x25
02 variabile X, Y preia poziția de text
Text 03 afișare în locația specificată
04 Creștere Y 1, X 3
05 Dacă Y nu a devenit încă 25D, apoi treceți la pasul 2. Dacă deveniți - programul este executat

Este important să înțelegeți că un pas algoritm - acest lucru nu este o linie în cod.

corelează nepărat fiecare linie a unui program real, cu prezentul algoritm. Când ați înțeles toate diferențele de o astfel de înregistrare de la codul de asamblare, veți înțelege cum să scrie programe. Acesta este cel mai simplu mod de a începe gândire pe Asma.

Pasul 5 presupune selectarea între ieșirea din program de executare sau de a reveni la pasul 2.

Pentru a oferi o gamă de procesor, cel mai bine este de a folosi steaguri registru special.

Într-adevăr, am explicat efectele celor două echipe ca și în cazul în care au ceva de spus unul altuia:

Echipele nu au proprietăți magice, și ei nu au nimic de-a face unul cu celălalt!

Tot ce pot face este de a schimba variabilele din memorie și CPU (registre există, desigur, comanda am mai specifice / O).

Comanda CMP compară cele două numere prin scăderea și în funcție de rezultatul modificărilor steagurile înregistrați biți.

Echipa jnz. JNE a doua scris (scris, după cum doriți). Această comandă efectuează un salt dacă pavilion de la sol. Despre aceste două echipe, voi scrie în detaliu după vorbesc despre dispozitiv înregistrare steaguri.

steaguri înregistrare

Dacă nu am uitat nimic, steagurile înregistrați va termina povestea mea despre registrele procesorului. Atunci când depanare alte programe CPU obișnuite se înregistrează pentru a studia nu este necesară. Debugger nu sunt afișate întotdeauna. Daca sunteti interesat, uita-te în manual.







Un dispozitiv fizic - este aceeași ca și celelalte registre (32 de biți).

Dar numirea - speciale. În acest caz, nu se poate pur și simplu scrie valoarea instrucțiunii MOV. El nici măcar nu are numele de tratament. El a schimbat în mod diferit. Și este semnificativ diferit de primul registru special - PEI (indicatorul de instrucțiuni al curentului).

PEI are un nume de tratament, și este o bucată de conținutul registrului, acesta este asemanarea cu registrele de uz general.

Dar steagurile înregistrați - stoca informații biți.

Ce vreau să spun prin „biți de informație“?

Inutil să spun, din punct de vedere calculator, orice bit de informație. Cu toate acestea, din punctul de vedere al programatorului, chiar și un nivel scăzut, există un număr care are sens să împartă, multiplica și de a efectua calcule complexe cu ei. Aceste numere întregi importante decât fiecare bit individual (notă).

Și există unele bytes, dintre care fiecare bit este un fenomen independent. Starea procesorului, rezultatul comparației și multe altele. Desigur, aceste bytes, de asemenea, poate arata ca un numar hexazecimal, dar este, dimpotrivă, întreaga formă nu are nici o semnificație clară.

steaguri înregistrare - este doar de 32 de biți, care sunt importante în mod individual.

Marinar, știi cum pavilion ocupat indică pista de la stația spațială?

Este o rușine acest lucru nu a știut. Învățați formatul spațiu, în caz contrar viața va frecati plafonul în sala de mese.

Cu excepția o pereche de biți de pavilion au fiecare numit de pavilion. Doar de buldozer. Ai putea avea să sune la semafor sau înregistrați.

Toate steagurile au nume. Vestea bună este că interesul nu este toate steagurile pentru noi. Voi vorbi despre ei unul câte unul.

El a citit o dată doar despre toată lumea și nu-mi amintesc nimic, dar atunci când scrieți programe asimileze rapid totul. 5-6 zile se uită în directorul, și apoi într-un fel amintit (că era necesar, ci mai degrabă 3 pavilion :)).

Astăzi voi vorbi despre cel mai important lucru pentru un programator de pavilion-biți.

ZF (Zero Flag - pavilion zero)

Și vorbesc despre asta, enumerând toate comenzile care arata schimbarea acestuia sau - este inutil, deoarece va fi jumătate din instrucțiunile de asamblare. pavilion zero este pornit atunci când variabila ca urmare a echipelor de acțiune (de multe ori imaginare) este setat la zero, și se stinge atunci când variabila nu este zero. Dar acest lucru, desigur, nu toate echipele (mov nu se schimba steagurile, aritmetică și alte echipe se schimbă steaguri.).

Cel mai interesant este faptul că steagul zero este comutată prin compararea variabilelor.

Vă voi spune că ZF face echipa CMP. nu vom comanda cmp descrie imediat pe deplin, deoarece aceasta poate schimba 6 steaguri. Și noi la început ei nu au nevoie.

Astăzi ne confruntăm cu un caz în care numai steagul ZF este important pentru noi.

Din limba engleză. compara cuvinte - compara