Cunoaște curs Intuit, instrucțiunea de procesor de sistem

3.3.3. comandă logică

Comenzile Logic funcționează pe operanzi logice (la nivel de bit) de operare, adică să nu ia în considerare codurile operanzi ca un număr, și un set de biți individuali. Acest lucru este diferit de instrucțiunile aritmetice. Echipa puzzle efectuați următoarele operații:

  • logic, logic SAU. modulo 2 (XOR);
  • logice, aritmetice și decalaje ciclice;
  • verificarea biți și operanzi;
  • setarea și de compensare biți (steaguri) din registrul de stare procesorului (PSW).

operații logice comenzi permit un bit pentru a calcula funcțiile logice de bază ale celor doi operanzi de intrare. În plus, operație (AND) este utilizată pentru a forța biții de curățare predeterminate (așa cum se utilizează unul dintre operanzi în care codul de mască în care biții de curățare care necesită, setat la zero). Operarea SAU (OR) este utilizat pentru a forța biți predeterminate (ca unul dintre operanzi este utilizat în care codul masca în care biții care necesită instalare într-o unitate este egală cu unitatea). Operațiunea „SAU exclusiv“ (XOR) este utilizat pentru inversarea biților predeterminate (ca unul dintre operanzi din această mască de cod este utilizat, în care biții să fie o inversiune, setat la unu). Comenzile necesită două operanzi de intrare și o formă de ieșire operand.

Comenzile de schimbare permit mutat-bit cod operand spre dreapta (spre LSB) sau la stânga (MSBs). Tipul de deplasare (logica, aritmetica, sau ciclic) determină ce va fi noua valoare a MSB (forfecare dreapta) sau LSB (la deplasare stânga) și, de asemenea, determină dacă undeva stocat valoarea anterioară MSB (forfecare stânga) sau LSB (forfecare dreapta). De exemplu, atunci când o schimbare logică la dreapta, în cea mai semnificativă cifră a codului operanzi este setat la zero, iar LSB este înregistrată ca pavilion de transport în registrul de stare a procesorului. O deplasare spre dreapta atunci când valoarea aritmetică a mai semnificativ bit este stocat neschimbat (zero sau unu), LSB este de asemenea înregistrată ca un steag de transport.

Deplasările Cyclic permite biți deplasate circular (sensul acelor de ceasornic atunci când deplasarea dreapta sau invers acelor de ceasornic la stânga deplasare) codul operand. În acest caz, inelul de forfecare poate sau nu poate include steagul transporta. Bitul de transport de pavilion (dacă este utilizat) se înregistrează atunci când valoarea de sus biți trecerea ciclică la stânga și bitul cel mai puțin semnificativ al trecerii ciclice la dreapta. Prin urmare, valoarea de transfer de pavilion de biți pentru a fi rescris LSB la stânga atunci când trecerea ciclică în MSB la o deplasare ciclică spre dreapta.

De exemplu, Fig. 3.12 prezintă acțiunile realizate de drept deplasare.

Comenzi și verificare biți operanzilor sunt proiectate pentru a seta sau biți clare ale registrului de stat procesorului în funcție de valoarea biților selectate sau toate operandului în general. Comenzile de ieșire operanzi nu formează. Verificați comanda operand (TST) verifică toate codul operanzi, în general, pentru egalitate la zero și semnul (valoarea cel mai semnificativ bit), este nevoie de un singur operand de intrare. test de biți de comandă (BIT) verifică numai biți individuali, pentru a selecta care codul masca este folosit ca al doilea operand. În biți masca de cod Operandul de bază testabile trebuie să îndeplinească deversărilor individuale.


Fig. 3.12. trece la echipa de dreapta.

În cele din urmă, instrucțiunile de instalare și biții de curățare a registrului de stare procesor (de exemplu, steaguri) vă permit să setați sau să eliminați orice pavilion, care este foarte convenabil. Fiecare pavilion corespunde, de obicei, la două echipe, una din care aceasta stabilește la unul, iar celălalt este resetat la zero. De exemplu, pavilion C (Carry on) transferul se va întâlni echipa CLC (curățare) și SEC sau STC (setare).

3.3.4. echipa de tranziție

instrucțiunile de ramură sunt proiectate pentru organizarea de tot felul de bucle, ramificare. apeluri subrutina, etc. că este, se rup secvența punerii în aplicare a programului. Aceste comenzi sunt scrise în contorul programului registr- valoare nouă și poate provoca astfel o tranziție la procesorul următor nu este pe ordinea echipei și orice altă echipă în memoria de program. Unele echipe de tranziție oferă o recuparare în continuare înapoi la punctul din care a fost făcut tranziția, altele nu prevăd acest lucru. În cazul în care este prevăzută restituirea, setările curente sunt stocate în stiva procesorului. În cazul în care restituirea nu este furnizată, setările procesor curente nu sunt salvate.

comandă de tranziție fără întoarcere sunt împărțite în două grupe:

  • salturi necondiționate echipei;
  • o instrucțiune de ramură condiționată.

În notarea acestor echipe a folosit cuvântul Branch (ramificare) și Salt (salt).

Instrucțiuni de ramură condițională cauza tranziției nu este întotdeauna, dar numai în cazul în care condițiile specificate. În condiții, cum ar fi valorile de pavilion în registrul de stare procesorul de obicei acționează (PSW). Aceasta este starea de tranziție este rezultatul operației anterioare, modificați valoarea steaguri. Numărul total de astfel de condiții de tranziție poate fi de la 4 la 16. Câteva exemple de o instrucțiune ramură condițională:

  • sari în cazul în egală cu zero;
  • Salt în cazul în care nu este zero;
  • sari în cazul în care există o depășire;
  • sari în cazul în care nu există nici o depășire;
  • sari dacă este mai mare decât zero;
  • Salt în cazul în care mai mică sau egală cu zero.

În cazul în care starea de tranziție este îndeplinită, apoi trece pentru a încărca contorul de program în valoare nouă registr-. În cazul în care condiția de tranziție nu este îndeplinită, contorul de program este pur și simplu incrementat și selectează procesor și execută următoarea comandă în ordine.

În mod specific pentru a testa condițiile de tranziție se aplică instrucțiuni comparație (CMP), care precede o instrucțiune ramură condițională (sau chiar mai mult de o instrucțiune ramură condițională). Dar steaguri pot fi setate și orice alte instrucțiuni, pentru comanda de transfer de date exemplu, orice aritmetică sau logică de comandă. Rețineți că steagurile echipei de tranziție în sine nu se schimbă, că doar vă permite de a pune mai multe pasaje de comenzi, una după alta.

Schimbul de mai multe echipe de tranziții condiționate și necondiționate permite procesorului să efectueze algoritmii de ramificare de orice complexitate. De exemplu, Fig. 3.13 arată programul de ramificare în două ramuri, urmat de compus, și Fig. 3.14 - ramificare în trei ramuri, urmate de compus.

Echipa de tranziție cu revenire în continuare la punctul din care sa făcut trecerea aplicată pentru a efectua rutine. adică programe de sprijin. Aceste comenzi sunt, de asemenea, numite comenzi de apel subrutina (nume comun - APEL). Utilizarea subrutine pentru a simplifica structura de bază a programului, pentru a face mai logic, flexibil, ușor de scris și de depanare. În același timp, trebuie să ne amintim că utilizarea pe scară largă a subrutine. ca regulă, ea mărește durata de funcționare a programului.


Fig. 3.13. Punerea în aplicare a ramificare în două ramuri.


Fig. 3.14. Punerea în aplicare a ramificare în trei ramuri.

comenzi de întrerupere, în multe cazuri, sunt mult mai convenabil decât de obicei echipa de tranziție să se întoarcă. Forma de întrerupere masă vector poate fi o dată și apoi se referă la ea după cum este necesar. Numărul de întrerupere corespunde subrutina. adică, un număr de funcții, o subrutină. Prin urmare, întreruperea echipa este mult mai probabil să fie incluse în comenzile procesor de sistem decât echipa de tranziție convențională pentru a reveni.

Pentru a reveni la subrutina. cauzată de întreruperea echipei, echipa a folosit revenirea de întrerupere (IRET sau RTI). Această comandă preia valoarea stivă stocată în acesta, și instrucțiuni de stare procesor contra registru (PSW).

Rețineți că unele procesoare sunt oferite, de asemenea, echipa întrerupe condiționale, cum ar fi comenzi de întrerupere a supraplin.

Desigur, în această secțiune am considerat doar comenzile de bază comune procesoare. În special, procesor poate fi, și multe alte comenzi care nu aparțin grupurilor enumerate de comenzi. Dar este necesar să le studieze după ce ați selectat tipul de procesor, care este potrivit pentru sarcinile acestui sistem cu microprocesor.