Cum să înveți limba engleză
În timpul nostru, orice persoană ar trebui să cunoască limba engleză. Și mai mult un programator. Deoarece o mulțime de documentație există numai în limba engleză. Un profesionist nu poate aștepta ca cineva să-i traducă documentația. Trebuie să fie capabil să obțină rapid informațiile corecte și să le folosească, indiferent de limba în care se vorbește - în limba engleză sau în limba rusă. Link-uri către cursuri în limba engleză.
Comanda TEST efectuează o logică AND între toți biții celor doi operanzi. Rezultatul nu este scris nicăieri, comanda afectează numai drapelele (adică primul operand nu este schimbat). sintaxa:
NUMĂRUL DE TESTARE1, NUMBER2
În funcție de rezultat, steagurile ZF, SF, PF pot fi modificate. Instrucțiunea TEST întârzie întotdeauna steagurile OF și CF.
NUM1 poate fi una dintre următoarele:
- Zona de memorie (MEM)
- Scopul general al înregistrării (REG)
NUM1 poate fi una dintre următoarele:
- Zona de memorie (MEM)
- Scopul general al înregistrării (REG)
- Valoare imediată (IMM)
Având în vedere constrângerile descrise mai sus, combinațiile NUMBER1-NUMBER2 pot fi:
Tabelul de adevăr pentru logica AND este dat aici.
Așa cum ați putea ghici, comenzile AND și TEST execută în esență aceeași operație - operația logică AND.
Dar de ce aveți nevoie de două echipe și când este mai bine să utilizați AND și când - TEST?
Desigur, există diferențe. Pe cel deja menționat: echipa și scrie rezultatul logic și funcționarea pe primul operand, o comandă de testare nu va înregistra rezultatul, ci doar modifică steaguri (în funcție de rezultat).
Dacă comanda AND este cea mai des utilizată pentru resetarea anumitor biți ai unui număr, comanda TEST este de obicei folosită pentru a testa biții și împreună cu instrucțiunile de ramură condiționată.
În plus, utilizând instrucțiunea TEST, puteți determina starea mai multor biți dintr-un număr simultan.
Să presupunem că vrem să știm dacă biții zero și trei ai unui număr din registrul AL sunt reinițializați. Apoi puteți folosi o astfel de comandă cu o mască de biți. unde sunt setați biții 3 și 0:
TEST AL, 00001001b
Și acum câteva exemple care arată modul în care funcționează acest cod.
Aceasta înseamnă că stegul zero ZF va fi setat numai dacă ambii biți (0 și 3) sunt șterși.
Aici verificăm dacă numărul din registrul AX este par ial sau ciudat. Și în funcție de rezultat, trecem la această sau pe etichetă.
Instrucțiuni JNZ și JZ vor fi studiate o altă dată. Dar, pe scurt, JZ efectuează o tranziție dacă rezultatul este zero și JNZ efectuează o tranziție dacă rezultatul nu este zero.