Comenzile de mișcare de date

Toate echipele sunt împărțite în grupuri în funcție de o funcție funcțională: transfer de date; prelucrarea datelor; gestionarea programelor; I / O și comenzi speciale.







Descriind sistemul de comandă folosind mnemonice, este extrem de important să se ia în considerare capacitățile unei anumite limbi pentru formarea abrevierilor admise. Desigur, cei care întâlnesc întâi microprocesoarele și programarea lor doresc ca toate abrevierile mnemonice să fie făcute pe baza limbii lor materne, și nu a celor străine. Dar, de exemplu, cum să scurtezi comenzile ENTER și OUT (similar INPUT și OUTPUT)? În limba engleză vor fi înregistrate IN-OUT, ᴛ.ᴇ. imediat destul de scurt, și diferă atât de mult încât pot fi reduse la o singură literă (I / O). În versiunea rusă, reducerea, din păcate, este complet imposibilă.

Cuvântul CONCLUSION (EXIT) este deosebit de ghinionist, deoarece în comenzile de comandă aritmetică și de program există abrevieri care diferă doar într-o singură literă, de exemplu EXCEPȚIA, EXECUTA, CALL etc.

Dar motivul principal pentru utilizarea pe scară largă a limbii engleze pentru abrevieri mnemonice de instrucțiuni mașină asociate cu prezența a software-ului finit al unui anumit microprocesor, precum și posibilitatea de utilizare a software-ului pregătit pentru alte sisteme, cum ar fi mini-computere.

Problema utilizării codurilor mnemonice în limba engleză este mai simplă decât pare la prima vedere. Este important de remarcat faptul că crearea programului nu trebuie să învețe o limbă străină, să știe destul de câțiva termeni sunt la fel de comune în cele mai multe echipe de microprocesoare și microcomputere. Descriind sistemul de comenzi în viitor, vom adera la următoarea comandă.

În operația de transfer de date, conținutul sursei rămâne neschimbat, iar conținutul inițial al receptorului este înlocuit de rezultatul operației.

În mnemonica comenzii, simbolurile RON, în care se află receptorul și sursa, sunt indicate cu virgulă între ele. De exemplu, MOV C, B înseamnă "transferarea conținutului registrului B în C"; conținutul registrului B rămâne neschimbat. Când comanda este tradusă în cod obiect, simbolurile registrelor se înlocuiesc cu numerele lor binare. Toate registrele de uz general, memoria și bateria au numere permanente.







Comanda de transfer de date este cea mai "bogată" în ceea ce privește numărul de opțiuni diferite. Dacă sortați toate combinațiile posibile de registre din zona operandului, 64 de poziții vor fi utilizate în lista instrucțiunilor mașinii. Este adevărat că, deși toate pot fi folosite, unele dintre ele vor fi în esență inutile. De exemplu, comanda MOV A, A comandă trimiterea conținutului bateriei înapoi la baterie.

Evident, atunci când se utilizează comenzi de mișcare, toate datele necesare trebuie plasate anterior în registrele corespunzătoare. Pentru aceasta, comenzile pentru transferarea conținutului locației de memorie în registrele interne se aplică aceluiași grup. În mod obișnuit, aceste operații sunt efectuate prin comenzi de încărcare. Acțiunile opuse, ᴛ.ᴇ. transferarea conținutului registrului intern în memorie se numește comenzi de memorare sau stocare de date.

Cu reprezentare directă, este posibilă numai încărcarea datelor.

Comenzi pentru încărcarea memoriei pointerului și stocarea datelor. Pentru a încărca valorile inițiale în comanda trehbaytnuyu indicii interne de memorie (inițializarea) utilizat cu vedere directă LXIrp operanzi unde Rp indică registrul pereche BC, DE, HL sau pointer SP-stivă pointer stivă. De exemplu, H 0900 LHL mijloacele plasate în registrul 00 numărul L și registrul N - numărul 09, prin urmare, într-o pereche de registru încarcă un pointer la celula de memorie 0900.

Interregister schimbă echipe. Caracteristicile microprocesorului КР.580ИК80A sunt instrucțiuni de un octet pentru transferul operanților pe 16 biți. Există o comandă specială XCHG (scurt pentru cuvântul englez Exshange), care schimbă conținutul registrelor DE și HL:

(H) ↔ (D). (L) ↔ (E).

În unele cazuri, o instrucțiune specială un octet XTHL (schimb HL) este foarte convenabilă:

(L) ↔ ([SP]). (H) ↔ ([SP + 1]),

efectuează schimbul de conținut al registrelor HL și cele două celule superioare ale stivei, adică cele din urmă încărcate în stiva de date. Conținutul pointerului stack nu se modifică atunci când se execută comanda XTHL. Apropo, comanda XTHL este cea mai lungă din sistemul de comandă al microprocesorului KR.580IK80A, necesită 18 cicluri de ceas de mașină.

Operațiuni de stivuire. Pentru a seta pointerul de stivă la valoarea inițială, utilizați comanda LXI SP menționată mai sus. Datorită unei astfel de instalări, orice zonă de memorie RAM a sistemului microprocesor ar trebui folosită ca o stivă.

Pentru ca stiva să funcționeze corect, comenzile PUSH și POP trebuie să fie asociate. Respectarea acestui principiu, să se stabilească în totalitate pe programmista͵ ca procedurile de încărcare și recuperarea stiva din stiva sunt executate de un microprocesor, nu în mod automat, ci numai prin comenzi în program.







Trimiteți-le prietenilor: