Comanda buclă

"Salt relativ în afara intervalului" (depășirea limitelor de tranziție)

Pentru a testa comanda LOOP, se recomandă să schimbați programul corespunzător, să îl asamblați, să îl conectați și să îl convertiți într-un fișier COM. Pentru a urmări toate ciclurile, utilizați instrumentul DEBUG pentru depanare. Atunci când valoarea registrului CX scade la zero, conținutul registrelor AX, BX și DX va fi hexazecimal corespunzător. 000B, 0042 și 0400. Pentru a ieși din depanator, introduceți comanda Q.







Toate subiectele din această secțiune:

Comanda interrupt INT
Anterior, am tratat programe în care datele au fost definite în operanții de comenzi (date directe) sau inițializate în câmpuri specifice ale programului. Numărul de aplicații practice

Curățarea ecranului
Interogările și comenzile rămân pe ecran până când sunt deplasate ca rezultat al derulării ("defilare") sau rescrise în același loc prin alte cereri sau comenzi. Când începe programul

Utilizați returul căruciorului, sfârșitul liniei și caracterele de file pentru afișare
O modalitate de a obține o afișare mai eficientă este de a utiliza caractere de control pentru retur de călătorie, feed line și fila: Decimal ASCII Hexadecimal

Atribut octet
Byte-ul atributului în modul text (non-grafic) determină caracteristicile fiecărui simbol afișat. Atributul octet are următoarele 8 biți: Textul de fond Atribut: BL R G B I R G B

Efect de selecție
Text de fundal RGB RGB Nu este afișat (negru pe negru) 000 000 Underscore (nu pentru culoare) 000 001 Normal (alb pe negru) 000 111 Inversat

Cod ASCII avansat
Codurile ASCII de la 128 la 255 (80-FF) reprezintă un număr de simboluri speciale, utile în formarea interogărilor, meniurilor, icoanelor speciale cu atribute ale ecranului. De exemplu, utilizând următoarele

Tastele funcționale
Tastatura are trei tipuri principale de chei: 1. Taste simbolice (alfanumerice): litere de la a la z, numere de la 0 la 9, simboluri%, $, # și așa mai departe. 2. Funcțional

Codurile de scanare
Tastatura are două taste pentru simboluri precum *, + și -. Prin apăsarea "asterisc", de exemplu, se stabilește codul pentru simbolul 2A din registrul AL și unul dintre cele două coduri de scanare din registrul AH, în funcție de

Mod text
Modul text este conceput pentru calcule convenționale, cu ieșirea literelor și numerelor de pe ecran. Acest mod este același pentru alb-negru (BW) și pentru monitoare color, cu excepția faptului că monitoarele color nu sunt

Byte atribut
Modul text permite utilizarea unui octet de atribut. Culoarea de pe ecran este salvată până când o altă comandă o schimbă. Pentru a seta culoarea, puteți folosi comanda INT 10H

Formatul de codificare
Comenzile de bază de asamblare format de codificare are următoarea formă: [etichetă] comanda [operanzi (s)] Eticheta (dacă este cazul), comanda și operandul (dacă este disponibilă) pazdelyayutsya

orientări
Assembler are un număr de operatori care vă permit să gestionați procesul de asamblare și formare a unei liste. Acești operatori sunt numiți pseudo-comenzi sau directive. Sunt valabile

Directivă
La începutul programului, puteți specifica numărul de linii imprimate pe o pagină și numărul maxim de caractere de pe o singură linie. În acest scop, se aplică directiva PAGE. Următoarea directivă

Directiva TITLE
Pentru a imprima titlul (titlul) programului în partea de sus a fiecărei pagini de înregistrare, dictarea TITLE este utilizată în următorul format: Text TITLE Recomandat ca text

Directiva SEGMENT
Toate programele de asamblare conțin cel puțin un segment - un segment de cod. Unele programe folosesc un segment pentru memoria de stivă și un segment de date pentru definirea datelor. Ascembler

uniune
Acest element determină dacă acest segment este fuzionat cu alte segmente în procesul de construire după asamblare. Sunt posibile următoarele tipuri de asociații: STACK, COMMON, PUBLIC, AT expression și M







Directiva PROC
Segmentul de cod conține comenzile executabile ale programului. În plus, acest segment include și una sau mai multe proceduri definite de directiva PROC. Segment care conține numai o singură procedură

Directiva END
Directiva ENDS completează segmentul, iar directiva ENDP completează procedura. Directiva END, la rândul său, completează întregul program: Directive Operand END [procedure_name

Memorie și registre
Luați în considerare utilizarea numelor în comenzi, numele în paranteze pătrate și numere. În următoarele exemple, presupuneți că WORDA definește un cuvânt în memorie: MOV AX, BX; Redirecționați conținutul

Inițializarea programului
Există două tipuri principale de programe de boot: EXE și COM. Luați în considerare cerințele pentru programele EXE. DOS are patru cerințe pentru inițializarea programului EXE de asamblare:

Pregătirea programului pentru execuție
După intrarea în programul sursă, trebuie să faceți doi pași de bază înainte ca programul să poată fi executat. În primul rând, trebuie să asamblați programul și să efectuați aspectul.

Asamblarea programului
Pentru a realiza programul inițial de asamblare, trebuie mai întâi să îl asamblați și apoi să îl conectați. Pe discheta cu pachetul de asamblare există două versiuni ale asamblării. ASM.EXE

Programarea planului
Dacă nu există erori în procesul de asamblare, atunci următorul pas este aspectul modulului de obiect. Fișierul cu numele de program. OBJ conține numai codul mașinii în formă hexazecimală. așa

Executarea programului
După asamblarea și conectarea programului, puteți (în sfârșit!) Efectuați-l. În cazul în care fișierul EXE este pe unitatea C, îl puteți executa utilizând comanda: C: nume program.EXE sau C: și

Fișier de referință
În timpul traducerii, asamblatorul creează o tabelă de identificare (CRF), care poate fi reprezentată ca o listă a referințelor încrucișate la etichete, identificatori și variabile în n

Definiția command length
Această problemă poate fi rezolvată într-un mod semnificativ diferit pentru diferite limbi. În limbile unor asamblori, comanda mnemonics determină în mod unic formatul și lungimea sa (S / 390, toate procesoarele RISC). În asta

Unele structuri de date ale primei treceri
Tabela de comandă conține o linie pentru fiecare instrucțiune a mașinii mnemonice. Mai jos este un exemplu de structură a unui astfel de tabel pentru cazul simplu în care mnemonicii determină în mod unic formatul și lungimea com

Structura tabelelor de asamblare
Structura meselor de asamblare este aleasă astfel încât să asigure viteza maximă de căutare în acestea. Tabelele de comenzi și directive reprezintă o bază de date permanentă. Ei umple unul

Asamblare single și multi-pass
Am arătat că în asamblorul de două treceri de pe prima trecere, numele sunt definite, iar pe al doilea - generarea de coduri. Este posibil să se construiască un singur asamblare Pass? Dificultatea este asta

Comanda JMP
Majoritatea programelor conțin o serie de cicluri în care se repetă mai multe comenzi până când se atinge o anumită cerință și diferite verificări care determină care dintre următoarele acțiuni ar trebui efectuate

Tranziție necondiționată
Ciclu JMP: LOOP Salt condițional: J nnn (mai mare decât, mai puțin decât egal) Procedură de apel: CALL

OF (Flag de supraîncărcare) - semnalizatorul de supraîncărcare
Corectează o depășire aritmetică, adică o transportare a biților de vârf (semnat) în cadrul operațiunilor aritmetice semnate. Ca exemplu: comanda CMP compară doi operanzi și un AIR

Datele semnat și nesemnate
Având în vedere scopul comenzilor ramurii condiționale, este necesar să se clarifice natura utilizării lor. Tipurile de date asupra cărora se efectuează operații aritmetice și operații de comparație determină care

Segmentul de stive
Mai jos, vor fi luate în considerare numai două comenzi care utilizează stivă, acestea fiind comenzile PUSH de la începutul segmentului de cod care se întorc la DOS când programul EXE se termină. Firește pentru

Schimbarea literelor mici cu majuscule
Există mai multe motive pentru conversiile între litere mici și majuscule. De exemplu, puteți obține un fișier de date creat pe un computer care funcționează numai cu majuscule.

Comenzile Shift și Shift
Instrucțiunile de schimbare și de schimbare ciclică, care fac parte din capacitățile logice ale computerului, au următoarele proprietăți: u Procesează un octet sau cuvânt;

Comenzi de comutare
La executarea comenzilor de schimbare, pavilionul CF conține întotdeauna valoarea ultimului bit extins. Următoarele comenzi de deplasare sunt disponibile: SHR; Schimbare dreapta (nesemnată)

Comenzile de comutare a ciclului
Schimbarea ciclică este o operație de schimbare, în care bitul extras ocupă descărcarea descărcată. Următoarele comenzi de schimbare ciclică sunt disponibile: ROR; Schimbarea ciclică B

Organizarea programelor
Mai jos sunt recomandările principale pentru scrierea programelor de asamblare: 1. Imaginați-vă clar sarcina pe care ar trebui să o rezolve programul. 2. Faceți o schiță a sarcinii în termeni generali și

Intersectarea apelurilor
Exemplele programelor considerate anterior constau într-o singură etapă de asamblare. Cu toate acestea, este posibil să se execute un modul software format din mai multe programe asamblate. În acest caz

Aspectul programelor C și Assembler
Dificultatea de a descrie relația dintre programele C și programele de asamblare este că versiunile diferite ale limbajului C au acorduri de comunicare diferite și pentru informații mai precise trebuie să le folosiți

Executarea programului COM
Spre deosebire de un fișier EXE, fișierul COM nu conține un antet pe disc. Deoarece organizarea fișierului COM este mult mai simplă, pentru DOS este necesar să se "cunoască" numai că tipul fișierului este COM. Încărcat în na







Articole similare

Trimiteți-le prietenilor: