Steaguri - informatică, programare

În cele din urmă, PC-ul are un steaguri de registru special. Flag - acest bit având valoarea 1 ( „flag este setat“), în cazul în care o anumită condiție este îndeplinită, iar valoarea 0 ( „reset flag“) în alt mod. PC-ul folosit

9 folosește steaguri, fiecare dintre ele atribuit un anumit nume (ZF, CF, etc). Toate acestea sunt asamblate în steaguri de registru (fiecare pavilion - este unul dintre biții registrului, o parte din ea evacuări nu este utilizat):

Unele steaguri sunt numite steaguri de condiții; acestea sunt schimbate automat atunci când execută comenzi și a remedia aceste sau alte proprietăți ale rezultatului lor (de exemplu, dacă este zero). Alte steaguri sunt numite steaguri ale statelor; modifica programul și influențează comportamentul procesorului suplimentar (de exemplu, întreruperile de blocare).

CF (pavilion transport) - carry flag. Ia valoarea 1 în cazul în care unitatea plus număr întreg de acolo, fără a transfera „sparge“ în grila de biți, sau în cazul în care acesta a fost mai puțin de o secundă prin scăderea primelor numere fără semn ale acestora. Schimbarea comenzilor CF este stocată biți, iese din grila de descărcare. CF stabilește, de asemenea, oferă o comandă de multiplicare.

DE (pavilion preaplin) - pavilion preaplin. Setați la 1, în cazul în care adunarea sau scăderea numerelor întregi cu semn avansat modulo rezultat care depășește valoarea admisă (mantisă depășire a avut loc și „urcat“ în bitul de semn).

ZF (flag zero) - pavilion este zero. Acesta este setat la 1 dacă rezultatul echipei a fost egal cu 0.

SF (pavilion semn) - pavilion semn. Setați la 1, în cazul în care operațiunile cu numere semnate avansat negativ.

PF (pavilion paritate) - pavilion paritate. Este egal cu 1 dacă rezultatul unei alte echipe are un număr par de unități binare. Acesta ghidează, de obicei, numai atunci când operațiunile de intrare-ieșire.

AF (auxiliar de pavilion transporta) - pavilion suplimentar carry. Ea surprinde caracteristicile operațiunilor numărul BCD.

IF (pavilion de întrerupere) - întrerupe pavilion. Dacă IF = 0 procesor nu mai răspunde la întrerupe-l primește, când IF = 1 întrerupe de blocare este eliberat.

TF (flag trap) - trace pavilion. Când TF = 1 după fiecare procesor de comandă nu întrerupe (numărul 1), decât o puteți utiliza pentru depanarea programului de urmărire sale.

1.2. RAPORTAREA. operații aritmetice

Numerele hexazecimale sunt scrise cu litera H la sfârșitul binar

Numărul - cu litera b (cum a fost adoptat în MASM).

1.2.1 Reprezentarea numerelor întregi.

În general, în conformitate cu numărul întreg poate lua orice număr de octeți, dar sistemul de comandă PC-ul suportă numai numărul de octeți în dimensiune și sprijină parțial podeaua și numărul de cuvânt dublu. Este aceste formate și vor fi luate în considerare.

PC-ul este diferența dintre numere întregi fără semn (non-negativ) și cu un semn. Acest lucru se datorează faptului că celulele de aceeași dimensiune, vă puteți imagina o gamă mai mare de numere fără semn decât numere semnate non-negativ, iar dacă știți dinainte că o valoare numerică este non-negativ, este mai profitabil să-l considere ca un nesemnate, mai degrabă decât ca un punct de reper.

numere întregi fără semn.

Aceste numere pot fi reprezentate ca bytes, cuvinte sau cuvinte duble - în funcție de mărimea lor. Într-un octet reprezintă numere întregi de la 0 la 255 (= 2 ^ 8-1), sub formă de cuvinte - numere întregi de la 0 la 65535 (= 2 ^ 16-1), sub forma unui cuvânt dublu - numere întregi de la 0 la 4294967295 ( = 2 ^ 32-1). Numerele sunt scrise în sistem binar, luând toți biții celulei. De exemplu, numărul 130 este scris ca un 10000010b octet (82H).

Numerele mărimea cuvântului sunt stocate în memorie în „inversat“ formă mladschie (dreapta) numărul 8-biți sunt plasate în primul octet al cuvântului, și superioare 8 biți - al doilea octet (sistem de 16-Ary: două figuri drepte - în primul octet, cele două cifrele din stânga - în al doilea octet). De exemplu, numărul 130 (= 0082h) sub forma cuvintelor stocate în memorie, după cum urmează:
-----------
| 82 | 00 |
-----------
(Rețineți, totuși, că numerele sunt stocate în registre în formă normală:
-----------
AX | 00 | 82 |
-----------
AH AL)

„Inversat“ este utilizat reprezentare și atunci când este depozitat în dublu cuvânt de memorie întreg: într-un prim octet inferioare 8 biți sunt plasați numerele în al doilea octet - 8 biți anteriori, etc. De exemplu, 12345678h număr este stocat în memorie după cum urmează:

Cu alte cuvinte, primul cuvânt al cuvântului dublu sunt plasate inferior (dreapta) de 16 biți și al doilea cuvânt - superioare 16 biți, în fiecare dintre cele două cuvinte, la rândul său folosește „inversat“ reprezentare.

Această reprezentare neobișnuită a numerelor se datorează faptului că primele modele ale PC-ului, la un moment dat poate fi citit din memorie doar un singur octet, și că toate operațiile aritmetice pe numere multivalentă începe cu acțiunile cifrele mai mici, astfel încât memoria, în primul rând, este necesar să se citească cifre mai puțin semnificative, în cazul în care imediat nu puteți conta toate numerele. Cu aceasta în minte, în primul computer și a început să plaseze cifre mai mici ale numărului din fața tsiframmi senior, dar de dragul continuității reprezentării numerelor se păstrează în următoarele modele de PC-uri.

Desigur, punctul de vedere „cu susul în jos“ este incomod pentru oameni, dar atunci când utilizați limbajul de asamblare acest inconvenient nu se simte: în MASM toate numerele stocate într-o formă neîntoarsă normală (vezi mai jos.).

Întregi.

Aceste numere sunt, de asemenea, prezentate sub formă de bytes, cuvinte, sau cuvinte duble. Într-un număr de octeți scrise -128-127, un număr de cuvinte de la -32768 la 32767, și sub formă de cuvinte duble - numerele de la -2147483648 la 2147483647. Numerele înregistrate în codul suplimentar: un număr non-negativ este scris ca la fel ca număr fără semn (adică, în codul înainte), precum și un număr negativ -x (x> 0) este reprezentat de un număr întreg fără semn 2 ^ 8-x (pentru bytes), 2 ^ 16-x (pentru cuvinte) sau 2 ^ 32-x (pentru cuvinte duble). De exemplu, codul suplimentar este numărul de octeți -6 Fah (= 256-6), cuvânt sau dublu cuvânt FFFAh FFFFFFFAh. Când acest 10000000b octet (= 80h) este tratată ca -128, și nu ca 128 (cuvânt 8000h înțeles ca -32 678), astfel încât extremitatea stângă codul suplimentar de biți joacă întotdeauna rolul de semn: pentru numere întregi nenegative este 0 pentru negativ - 1.

Semnul de mărimea cuvântului și dublu cuvânt stocat în memorie în forma „inversat“ (bitul de semn este ultimul octet al celulei). Dar MASM aceste numere fără semn ca, scrisă în formă normală.

Uneori, numărul de octeți necesar să se extindă la cuvântul, și anume, aveți nevoie pentru a obține cel mai mare număr același, dar mărimea cuvântului. Există două modalități prin această extindere - nesemnate și semnate. În orice caz, numărul inițial de octeți se încadrează în al doilea octet (la „rollover“) al cuvântului, dar primul octet este completat în moduri diferite: extinderea nesemnate înregistrat la zero biți (12H -> 0012h), precum și extinderea semnului în primul octet de zero-uri este scris în cazul în care numărul de octeți a fost non-negativ și opt cele binare, înregistrate în alt mod (81h -> FF81h). Cu alte cuvinte, în extinderea cu semnul în primul octet al cuvântului este copiat, bitul de semn al octetului.

În mod similar, există o extindere a numărului de cuvinte până la dublu cuvânt.

Informații despre „LIMBA Macroassembler IBM PC»

ca numele macro. secventa de comenzi numite „organism macro“ Ca urmare a acestei linii se află. Definiția se termină cu șirul de pseudo END. Dacă macro este definit, atunci utilizarea numelui macro respectiv ca un cod mnemonic în program este echivalentă cu utilizarea secvenței de comandă corespunzătoare. În cazul în care repetă.

Steaguri - informatică, programare
Steaguri - informatică, programare
Steaguri - informatică, programare

Steaguri - informatică, programare
Steaguri - informatică, programare

ciclurile CPU, tіlki dacă vіn pratsyuє în primіschennyam rezhimі. Metoyu vikonannya danoї kursovoї robotul Je otrimannya practic navichok robotului programuvannya movoyu asemblera. Pіdsumkom vikonannya kursovoї Je rozrobka algoritm de control al robotului pe o matrice parnіst danih scho zberіgaєtsya în deyakіy oblastі pam'yatі i incalzirea movі asemblera, algoritmul Yaky realіzuє Danian. 1. Zagalny rozdіl Nadіynіst.

Depozitarea codul mașină al programului în memoria ROM (poate fi omisă) Acum vom vedea o diagramă bloc a programului nostru, adică, acțiunile comandate ;. Fondurile programului număr zecimal în număr, sistem binar și hexazecimal; .MODEL numărul mic .STACK 64 .data; segmentul de date; ____________________________________________________________________ ; conversie Tabelul „Figura - cod ASCII“.