Programul pentru conversia unui număr zecimal în; sisteme binare și hexazecimale; rădăcină

Informații generale despre ASSEMBLER

Mijloacele care asigură funcționarea facilităților pentru calculatoare sunt împărțite în două părți: hardware și software.

Hardware-ul include dispozitive precum:

Toate dispozitivele de mai sus sunt construite pe circuite integrate (IC).

Circuitul integrat este un produs microelectronic care efectuează anumite funcții de conversie având o densitate mare de ambalare a elementelor și componentelor conectate electric și reprezintă un singur întreg din punct de vedere al cerințelor de acceptare și de funcționare.

Exemple de IP sunt circuitele dispozitivelor digitale: registre, totalizatoare, jumătăți de sume, contoare, encodere, decodoare etc.

Partea programului include: un set de programe și reguli cu toată documentația aferentă, permițându-vă să utilizați un computer pentru a rezolva diferite probleme.

Programul este o secvență completă de instrucțiuni de mașină sau operatori de limbaj de programare care determină secvența de acțiuni pentru rezolvarea unei anumite sarcini.

Informații generale despre limba asamblorului

Limbajul simbolic al asamblorului vă permite să eliminați în mare măsură dezavantajele programării în limba mașinii.

Principalul său avantaj este că în limba asamblorului toate elementele programului sunt reprezentate într-o formă simbolică. Conversia numelor simbolice de comenzi în codurile lor binare sunt atribuite la un program special - un asamblor, care eliberează programatorul de munca obositoare și elimină erorile inevitabile în acest caz.

Numele simbolice sunt introduse atunci când programarea în limbaj de asamblare, de obicei, reflectă semantica programului și comenzi o abreviere - funcția lor principală. De exemplu: PARAM - parametru, TABLE - tabel, MASK - mască, ADD - adunare, SUB - scădere, etc. etc. Aceste nume sunt ușor de amintit de către programator.

Pentru programarea în limbaj de asamblare trebuie să dispună de instrumente sofisticate decât atunci când programarea în limbaj mașină: avem nevoie de sisteme bazate pe micro de calcul - calculatoare, sau un PC cu un set de dispozitive periferice (tastatura alfanumerică, afișare caracter, o unitate de dischetă și o imprimantă). precum și programarea rezidentă sau inter-sistem pentru tipurile necesare de microprocesoare. Limbajul de asamblare vă permite să scrieți și să depanați în mod eficient programe mult mai complexe decât limbajul mașinii (până la 1 - 4 KB).

limbaje de asamblare sunt orientate spre mașină, t. e. În funcție de limba mașinii și structura microprocesorului corespunzător, deoarece fiecare comandă microprocesor este atribuit un anumit nume simbolic.

limbajele de asamblare oferă o creștere semnificativă a productivității programator în comparație cu limba mașinii, și în același timp să păstreze capacitatea de a folosi toate produsele software și hardware disponibile resursele CPU. Acest lucru permite programatorilor calificați să scrie programe care rulează într-un timp mai scurt și să preia mai puțină memorie decât programele create într-un limbaj de nivel înalt.

În acest sens, aproape toate programele pentru controlul dispozitivelor de intrare / ieșire (drivere) sunt scrise în limbajul de asamblare, în ciuda prezenței unei game largi de limbi de nivel înalt.

Cu ajutorul limbajului de asamblare, programatorul poate seta următorii parametri:

numele mnemonic (simbolic) al fiecărei comenzi a limbajului calculatorului microprocesorului;

Formatul standard pentru liniile programului descris în asamblare;

Format pentru specificarea constantelor de caractere și a constantelor de tip integer în diferite sisteme de numere;

pseudo-comenzi care controlează procesul de asamblare (traducere) a programului.

În limbajul de asamblare, programul este scris pe linie, adică pentru fiecare comandă este alocată o linie.

Pentru microcomputerele construite pe baza celor mai frecvente tipuri de microprocesoare, pot exista câteva versiuni ale limbajului asamblor, însă distribuția practică are de obicei una - este așa-numitul limbaj de asamblare standard. În viitor, vom lua în considerare limbile de asamblare standard.

Fiecare linie scrisă în limba de asamblare a programului conține patru câmpuri:

În câmpul de etichetare, fiecare etichetă trebuie definită o singură dată, dar referințele la ea pot fi utilizate de câte ori este necesar. În caz contrar, asamblatorul va emite un mesaj de diagnosticare cu privire la eticheta definită în mod repetat.

Câmpul CODE conține numele simbolic al comenzii sau pseudo comanda care este executată. Mnemonicul majorității echipelor este o abreviere pentru propozițiile în limba engleză care caracterizează funcția lor principală.

MOV (MOVE) - înainte, înainte

ADD (ADDITION)

SUB (SUBSTRACT) - scădere

LDA (LOAD DIRECT

ACCUMULATOR) - descărcare directă

INR (baterie INSCREMENT

REGISTER) - înregistrare increment

REGISTER) decrementarea registrului

Mnemonicurile de comandă sunt cuvinte cheie de asamblare, iar dacă acestea nu sunt incluse în setul de mnemonice admise, atunci asamblătorul emite un mesaj despre comanda nevalidă.

Câmpul OPERAND este de obicei definit în funcție de câmpul codului de comandă. Poate conține unul sau mai mulți operanzi, separați prin virgule sau nu conțin operanzi pentru acele comenzi care funcționează pe registrele de lucru interne.

Operandul este o expresie care contine o denumire mnemonica, constante si operatori.

Cele mai simple operanzi conțin o mențiune mnemonică sau o constantă.

Ca denumire mnemonică, se pot utiliza identificatori interni ai registrelor de muncă, etichete și valoarea actuală a contorului de software.

Constantele pot fi reprezentate în diferite sisteme de numere.

În această lucrare, vom lua în considerare una dintre modalitățile de a converti numărul de la zecimale la binar și hexazecimal utilizând limba de asamblare. Înainte de a crea un program, vom examina în detaliu ce măsuri trebuie să luăm, cu alte cuvinte, să scriem un algoritm pentru rezolvarea problemei noastre. Pentru ca computerul să proceseze date, trebuie să introducă aceste date. astfel că primul pas în rezolvarea problemei va fi introducerea numărului. Al doilea pas în lucrare este ieșirea mesajului despre numărul introdus. După aceea, convertim numărul zecimal într-un sistem binar și extragem numărul în echivalent binar cu ecranul. Următorul pas este să convertiți numărul într-un echivalent hexazecimal și ultimul pas este o buclă care vă permite să continuați să introduceți un nou număr zecimal. Acum vom colecta toate elementele împreună:

1. Introduceți numărul de pe tastatură.

2. Ieșirea mesajului despre numărul introdus.

3. Traducerea numărului într-un echivalent binar.

4. Afișați numărul binar pe ecran.

5. Conversia unui număr într-un sistem hexazecimal.

6. Afișează un număr hexazecimal.

7. Ciclul (vom continua?) Dacă DA, atunci punctul 1, în caz contrar punctul 8

8. Ieșiți din program. Acesta este algoritmul programului în limba naturală.

etapele de dezvoltare a programelor de asamblare

1. Afirmația problemei. Include o descriere semnificativă a problemei și dezvoltarea algoritmului.

2. Elaborarea textului programului.

4. Compilarea sau asamblarea. Convertește un fișier text cu extensia *. ASM la obiect Fișierul care conține programul din codul mașinii cu extensia *. OBJ. De asemenea, în această etapă, poate fi creată o listă de programe. Fișier cu extensie *. LST. care conține informații de bază despre program, precum și un fișier de referință încrucișat cu extensia *. CRF. În această etapă, textul programului este sudat pentru erori. Asamblarea se face folosind programul de traduceri TASM. EXE (ASM EXE - în asamblare, MASM EXE - în macroasembler). TASM [opțiuni] *. ASM [. ] - comandă pentru a efectua traducerea. Dacă în comandă este specificată o virgulă, atunci fișierul Fișiere este plasat. Există două opțiuni în TASM: / ZI și / N. Acestea sunt numite: TASM.

5. Aspectul. În acest stadiu, se creează un program care poate fi mutat și orice zonă de memorie. Este salvat în fișierul cu extensia *. EXE sau * .COM. Pentru aceasta, utilizați TLINK. exe (pentru asamblatorul macro LINK.EXE). Există opțiuni: / T și / X.

6. Executarea și depanarea (DEBUG).

7. Introducerea codului mașinii în ROM (poate să lipsească) Acum ne vom uita la diagrama bloc a programului nostru, adică acțiunile comandate.

Mai jos, echipele au fost utilizate în program:

scăderea sub - binară. Conținutul celui de-al doilea operand este scos din primul operand

Mnemonics: sub<операнд 1>,<операнд 2>

Mnemonics: sună<имя процедуры>

ret - revenire la procedură

shr - deplasați logic spre dreapta

xor - exclusiv OR

Mnemonică: xor<операнд 1>,<операнд 2>

lea - descărcare EA

împinge - include pe stivă

Mnemonics: împinge<операнд>

pop - extras din stiva

Mnemonică: pop<операнд>

Mnemonics: mov<приемник>,<источник>

inc - crește cu 1

Mnemonics: inc<операнд>

dec - scade cu 1

Mnemonic: dec<операнд>

stosb - înaintează conexiunile registrului al sau ax la care indică registrul di

buclă - comanda pentru organizarea unei buclă cu un contor, de asemenea tranziții scurte (127b), comanda scade valoarea contra cx. fără a schimba orice steaguri, dacă conexiunea este cx> 0, atunci se efectuează un salt la eticheta specificată, în caz contrar se termină buclă.

.CODE - deschide segmentul de cod

.DATA - Deschide segmentul de date

.STACKN - definește stiva de segment (a); segmentele de închidere a segmentului nu sunt utilizate în acest caz; N - arată stivă (a) în octeți

Notă: atunci când se utilizează astfel de directive, registrul ds este inițializat după cum urmează: movax, @ data

presupun că în acest caz nu este folosit

Articole similare