|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Sumar al limbajului de asamblare | ||||||
|
||||||
//////////////////////////////////// j6k19kt Modurile de adresare ale operanzilor //////////////////////////////////// Vom discuta acum citeva lucruri legate de adresarea operanzilor. AAAAAAAAAAAAAAAAAAAAAAAAAAA Operanzii imediati sint date constante continute in instructiune, de lungime mov ax, 5 mov ax, 41h mov dx, OFFSET HelloMessage mov ax, my_data ; unde my_data este un segment anterior definit In primele doua exemple este evident ca, operanzii fiind constante, se foloseste adresare imediata. In cel de-al treilea exemplu, operandul imediat este OFFSET HelloMessage deoarece acesta reprezinta deplasamentul variabilei HelloMessage fata de inceputul segmentului de date in care rezida, fiind astfel o valoare (constanta) cunoscuta de asamblor in momentul asamblarii. In ultimul exemplu, operandul imediat este my_data, care identifica adresa de inceput a unui segment de date. * Adresarea la registri *AAAAAAAAAAAAAAAAAAAAAAAAAAA Acest tip de adresare se refera la operanzi in registri generali; ei pot fi operanzi sursa, destinatie ori amindoua. Practic, operandul unei instructiuni este continutul unui registru specificat in instructiunea respectiva. Exemple: mov ax, 0b800h ;(operand destinatie adica ax) mov ds, ax ;(ambii operanzi) inc bx ;(bx) cmp ah,'A' ;(operandul destinatie adica ah) Observatie:AAAAAAAAAAAAAA Modurile de adresare la care ne vom referi de aici incolo sunt pentru adresarea memoriei; este vorba de situatii in care, pentru accesul operanzilor aflati in memorie este nevoie de un transfer prin magistrala. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Adresa-efectiva a operandului (adica deplasamentul fata de inceputul zonei segment in care se gaseste acesta ) poate fi luata din unul din registrii de baza sau de index prezenti in instructiune ( bx, bp, si sau di). Exemplu: mov ah,ds:abxi Operandul sursa este adresat indirect prin registrul bx; continutul acestui registru va contine deplasamentul zonei de memorie de un octet fata de inceputul segmentului. Observatie: Folosire: Impartire cu semn a acumulatorului cu sursa. Daca operandul sursa este un octet, citul este plasat in AL, iar restul in AH. Daca operandul sursa este un cuvint, citul este in AX, iar restul in DX. Domeniul valorilor citului este cuprins intre -127...+127 pentru sursa octet, si -32767...+32767 pentru sursa cuvint.In cazul in care citul este pozitiv si depaseste valoarea maxima, ori este negativ si depaseste valoarea minima, se generaza o intrerupere de tip 0, iar restul si citul au valori nedefinite. Instructiunea CBW: Convert Byte to WordFolosire: CBW Converteste octetul din AL la valoare pe un cuvint in AX cu extensie de semn. Instructiunea CWD: Convert Word to Double-word Instructiuni de transfer Instructiunea MOVFolosire: MOV destinatie,sursa Transfera un octet sau un cuvint de memorie din operandul sursa in operandul destinatie. Exemple: mov ds, ax; continutul registrului ax va fi transferat in registrul ds mov ah, 9h ; ah va contine octetul cu valoarea 9h Instructiunea PUSH: Pune un cuvint in stiva Folosire: Decrementeaza continutul registrului SP cu doi si apoi transfera un cuvint din operandul sursa in noul virf al stivei, referit de SP Folosire: Transfera cuvintul din top-ul stivei (SS:SP) la locatia referita de EqFqGqHqIqÿÿKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZqaq\qiq^q_q`qaqÿÿ ÿÿ fqgqhqiqmq nqoqvq ir yqzqAq|qSqIqq€qq‚qƒq„q…q†q‡qÿÿ‰qŠq‹qŒqqqqq‘q’qÿÿ ÿÿ qiq¢q£q¤q¥q¦q§qÿÿ ÿÿIqAqAqAqÇqÈqÉqÊqËqIqIqIqÿÿÐqÑqÒqÓqÔqÕqÖq×qØqÙqÚqÛqÜqÝqÞqßqaqaqaqaqaqaqaqçqèqéqêqëqiqiqÿÿiqðqñqÿÿ tori modificati: AF OF PF SF ZF Scade (operatie fara semn) un 1 din "destinatie". Instructiunea NEG: Complement fata de 2 Folosire: "destinatie" in "destinatie" (practic, schimba semnul numarului). Daca numarul este -128 sau -32768, atunci el nu este schimbat, ci este setat pe 1 indicatorul OF. Instructiunea CMP: CoMPare Folosire: Instructiunea MUL: Inmultire fara semn Folosire: Inmulteste continutul registrului acumulator cu "sursa". Daca "sursa" este valoare pe un byte, atunci este folosit AL, iar rezultatul este plasat in AX. Daca "sursa" este valoare pe un cuvint, atunci sursa este inmultita cu AX, iar rezultatul este plasat in DX si AX. Indicatorii CF si OF sunt pozitionati daca partea cea mai semnificativa a rezultatului este diferita de 0 (AH pentru operand sursa pe un octet, DX pentru operand sursa cuvint). Instructiunea IMUL: Inmultire cu semn Folosire: Realizeaza inmultirea cu semn a registrului acumulator cu "sursa". Folosire: Impartire cu semn a acumulatorului cu sursa. Daca operandul sursa este un octet, citul este plasat in AL, iar restul in AH. Daca operandul sursa este un cuvint, citul este in AX, iar restul in DX. Domeniul valorilor citului este cuprins intre -127...+127 pentru sursa octet, si -32767...+32767 pentru sursa cuvint.In cazul in care citul este pozitiv si depaseste valoarea maxima, ori este negativ si depaseste valoarea minima, se generaza o intrerupere de tip 0, iar restul si citul au valori nedefinite. Instructiunea CBW: Convert Byte to WordFolosire: CBW Converteste octetul din AL la valoare pe un cuvint in AX cu extensie de semn. Instructiunea CWD: Convert Word to Double-word Instructiuni de transfer Instructiunea MOVFolosire: MOV destinatie,sursa Transfera un octet sau un cuvint de memorie din operandul sursa in operandul destinatie. Exemple: mov ds, ax; continutul registrului ax va fi transferat in registrul ds mov ah, 9h ; ah va contine octetul cu valoarea 9h Instructiunea PUSH: Pune un cuvint in stiva Folosire: Decrementeaza continutul registrului SP cu doi si apoi transfera un cuvint din operandul sursa in noul virf al stivei, referit de SP Folosire: Transfera cuvintul din top-ul stivei (SS:SP) la locatia referita de ////////////////////// Instructiuni aritmetice Instructiunile aritmetice efectueaza operatii aritmetice de baza asupra operanzilor - numere pe 8 sau 16 biti, cu semn sau fara semn.Instructiunile aritmetice afecteaza indicatorii de stare dupa cum urmeaza: 1. Seteaza CF daca rezultatul operatiei fara semn este in afara domeniului, Folosire: ADD destinatie, sursa Aduna "sursa" la "destinatie" si inlocuieste continutul original al operandului "destinatie" cu rezultatul adunarii. Amindoi operanzii sunt numere binare, pe 8 sau 16 biti. Instructiunea ADC: Aduna cu "Carry" Folosire: ADC destinatie,sursa Aduna "sursa" la "destinatie" si inlocuieste continutul original al operandului "destinatie" cu rezultatul adunarii. Daca dupa adunare CF este 1, se aduna un 1 la destinatie. Instructiunea INC: Incrementare Folosire: INC destinatie Aduna un 1 la "destinatie", considerat numar binar fara semn. Instructiunea SUB: Scadere (Subtract) Folosire: SUB destinatie, sursa Sursa este scazuta din destinatie, iar rezultatul este pastrat in destinatie. Instructiunea SBB: SuBtract with Borrow Folosire: SBB destinatie, sursa Scade sursa din destinatie; daca CF este setat pe 1, scade un 1 si plaseaza rezultatul in "destinatie". Instructiunea DEC: Decrement Folosire: DEC destinatie Scade (operatie fara semn) un 1 din "destinatie". Instructiunea NEG: Complement fata de 2 Folosire: NEG destinatie Scade "destinatie" din 0 si salveaza complementul fata de 2 al lui Instructiunea CMP: CoMPare Folosire: CMP destinatie,sursa Scade "sursa" din "destinatie" si actualizeaza indicatorii dar nu salveaza rezultatul. De obicei, in urma acestei instructiuni sunt verificate valorile indicatorilor pentru conditii. Instructiunea MUL: Inmultire fara semn Folosire: MUL sursa Inmulteste continutul registrului acumulator cu "sursa". Daca "sursa" este valoare pe un byte, atunci este folosit AL, iar rezultatul este plasat in AX. Daca "sursa" este valoare pe un cuvint, atunci sursa este inmultita cu AX, iar rezultatul este plasat in DX si AX. Indicatorii CF si OF sunt pozitionati daca partea cea mai semnificativa a rezultatului este diferita de 0 (AH pentru operand sursa pe un octet, DX pentru operand sursa cuvint). Instructiunea IMUL: Inmultire cu semn Folosire: IMUL sursa Realizeaza inmultirea cu semn a registrului acumulator cu "sursa". Instructiunea DIV: Divide Folosire: DIV sursa Impartire fara semn a acumulatorului si a extensiei sale cu sursa. Instructiunea IDIV: Impartire intreaga cu semn Folosire: IDIV sursa Impartire cu semn a acumulatorului cu sursa. Daca operandul sursa este un octet, citul este plasat in AL, iar restul in AH. Daca operandul sursa este un cuvint, citul este in AX, iar restul in DX. Domeniul valorilor citului este cuprins intre -127...+127 pentru sursa octet, si -32767...+32767 pentru sursa cuvint.In cazul in care citul este pozitiv si depaseste valoarea maxima, ori este negativ si depaseste valoarea minima, se generaza o intrerupere de tip 0, iar restul si citul au valori nedefinite. Instructiunea CBW: Convert Byte to Word Folosire: CBW Converteste octetul din AL la valoare pe un cuvint in AX cu extensie de semn. Instructiunea CWD: Convert Word to Double-word Folosire: CWD Extinde semnul cuvintului din AX formind un dublu cuvint cu partea cea mai semnificativa in DX iar cea mai putin semnificativa in AX. Instructiuni de transfer Instructiunea MOV Folosire: MOV destinatie,sursa Transfera un octet sau un cuvint de memorie din operandul sursa in operandul destinatie. Exemple: mov ds, ax; continutul registrului ax va fi transferat in registrul ds mov ah, 9h ; ah va contine octetul cu valoarea 9h Instructiunea PUSH: Pune un cuvint in stiva Folosire: PUSH sursa Decrementeaza continutul registrului SP cu doi si apoi transfera un cuvint din operandul sursa in noul virf al stivei, referit de SP Instructiunea POP: Extrage un cuvint din stiva. Folosire: POP destinatie Transfera cuvintul din top-ul stivei (SS:SP) la locatia referita de Instructiunea XCHG: Exchange (schimba) Folosire: XCHG destinatie, sursa Schimba continutul intre "destinatie" si "sursa". Operanzii pot fi registri sau memorie; registrii segment nu pot fi oeranzi ai acestei insructiuni. Instructiunea IN: Primeste octet sau cuvint de la un port specificat. Folosire: IN acumulator, port Este citit un octet sau un cuvint de la "port" si este plasat in
AL, sau AX respectiv. Daca numarul portului este in domeniul 0-255, operandul Instructiunea OUT: Faciliteaza iesirea datelor la porturi Folosire: OUT port, acumulator Transfera un octet din AL, ori un cuvint din AX la portul specificat. Instructiunea LEA: Incarca adresa efectiva (Load Effective Address) Folosire: LEA destinatie, sursa Transfera deplasamentul din adresa operandului "sursa" in operandul Instructiunea LDS: Incarca pointer folosind DS Folosire: LDS destinatie, sursa Incarca o adresa logica de memorie (pe 32 de biti) din memorie Instructiunea LES: Incarca pointer folosind ES Folosire: LES destinatie, sursa Incarca o adresa logica de memorie (pe 32 de biti) din memorie Instructiunea LAHF: Incarca registrul AH din "flag-uri" Folosire: LAHF Copie indicatorii SF, ZF, AF, PF si CF in bitii 7, 6, 4, 2, 0 respectiv, ai registrului AH. Continutul bitilor 5, 3 si 1 este nedefinit. Instructiunea SAHF: Restaureaza indicatorii din AH Folosire: SAHF Transfera bitii 7, 6, 4, 2 si 0 ai registrului AH in indicatorii SF, Instructiunea PUSHF: Folosire: PUSHF Tansfera registrul indicatorilor de stare si control in stiva. Instructiunea POPF Folosire: POPF Transfera cuvintul din top-ul stivei in registrul indicatorilor de stare si control, dupa care incrementeaza SP cu 2. Instructiuni logice Instructiunea NOT: NOT logicFolosire: NOT destinatie Realizeaza complementul operandului "destinatie" in baza 2 (bitii 1 devin 0, iar bitii 0 devin 1). Rezultatul este in "destinatie". Instructiunea AND: SI logic Folosire: AND destinatie, sursa Realizeaza operatia "si logic" (daca bitii de pe aceeasi pozitie in cei doi operanzi sunt setati, atunci bitul corespunzator in rezultat va fi setat) intre cei doi operanzi, rezultatul fiind in "destinatie". Instructiunea OR: SAU logic Folosire: OR destinatie,sursa Realizeaza operatia "sau logic" a celor doi operanzi (orice bit setat pe 1 in unul din operanzi va fi setat pe 1 in rezultat) si returneaza rezultatul in "destinatie". Instructiunea XOR: SAU exclusiv Folosire: XOR destinatie,sursa Realizeaza operatia "sau exclusiv" intre cei doi operanzi (bitii setati in rezultat sunt cei care corespund pozitiilor in operanzi ce contin valori diferite ) si returneaza rezultatul in "destinatie". Instructiunea TEST: Testeaza "sablon" Folosire: TEST destinatie,sursa Realizeaza "si logic" intre cei doi operanzi, actualizeaza indicatorii, dar nu returneaza rezultatul. Instructiuni de deplasare Instructiunile SHL/SAL: Translare (Shift) la stinga Folosire: SAL destinatie, nr Transleaza operandul "destinatie" la stinga cu numar de biti dat
de Instructiunea SHR: Shift la dreapta Folosire: SHR destinatie, nr Shifteaza operandul destinatie la dreapta cu "nr" pozitii, zerorizind pozitiile shiftate. Carry Flag tine ultimul bit shiftat. Cu shift la dreapta putem realiza foarte usor o impartire la putere a lui 2 a operandului destinatie. Instructiunea SAR: Shift Aritmetic la dreapta Folosire: SAR destinatie, nr Shifteaza destinatia la dreapta cu un numar de pozitii dat de "nr".
Folosire: ROL destinatie, nr Roteste bitii operandului destinatie la stinga de "nr" ori, astfel incit bitii scosi la stinga sunt reintrodusi in pozitiile din dreapta. CF va tine ultimul bit shiftat la stinga. Instructiunea ROR: Roteste la dreapta Folosire: ROR destinatie, nr Similar cu ROL, dar pentru pozitiile din dreapta. Instructiunea RCL: Rotire la stinga prin CF Folosire: RCL destinatie,nr Instructiunea RCR: Rotire la dreapta prin CF Folosire: RCR destinatie,nr Similar cu RCL, dar pentru pozitiile din dreapta. Instructiuni pe siruri Un sir este o seventa de octeti in memorie. Operatiile pe siruri(realizate de instructiunile mai jos descrise) vizeaza lucrul pe asemenea secvente de octeti, de exemplu mutarea unui sir dintr-o zona a memoriei in alta, compararea a doua siruri, etc. Instructiunile pe siruri pot fi precedate de prefixe de repetare, peritind prelucrarea rapida a sirurilor lungi. O instructiune pe siruri poate avea operand sursa, operand destinatie sau ambii. Implicit, sirul sursa se considera a fi in segmentul de date curent (adresat de DS) iar sirul destinatie - in extrasegmentul curent de date (adresat de ES). Registrul SI (registrul sursa index) este folosit pentru a contine deplasamentul cu care adresam elementul curent al sirului sursa, iar DI (registru destinatie index) contine deplasamentul elementului curent al sirului destinatie. Evident, inainte de executia unei instructinuni pe siruri, trebuie cunoscut tipul de date din siruri (octeti sau cuvinte). Registrii index trebuiesc initializati inainte de executie. In timpul executiei, functie de setarea indicatorului de directie DF, registrii de index se autoincrementeaza (DF=0) sau se autodecrementeaza (DF=1) cu 1 daca datele sunt octeti, sau cu 2 daca datele sunt cuvinte. Instructiunile pe siruri pot fi precedate de prefixe de repetare (REP, REPE, etc.). In acest caz, numarul de repetari ale unei instructiuni este dat de continutul registrului CX. Dupa fiecare repetare a instructiunii, CX este decrementat, iar la CX=0 se preda controlul instructiunii urmatoare. Instructiunile REP/REPE/REPZ/REPNE/REPNZ: Repeta o operatie pe siruri Aceste instructiuni sunt folosite ca prefixe in operatii cu siruri. Instructiunea REP este folosita impreuna cu instructiunile MOVS si STOS. Observatie: Instructiunile MOVS, MOVSB, MOVSW: Muta elementul curent al unui sir Folosire: MOVS destinatie,sursa Instructiunea MOVS copie un octet sau un cuvint de la locatia adresata de DS:SI (chiar daca operanzii sunt specificati) la locatia adresata de ES:DI
si actualizeaza SI si DI functie de lungimea datei copiate, astfel incit sa
adreseze urmatorul element al sirului. Instructiunile CMPS, CMPSB, CMPSW: Compara elementele curente a doua siruri Compara elementul adresat de ES:DI cu cel adresat de DS:SI (prin scadere, dar nu modifica operanzii) si actualizeaza indicatorii si registrii
index (ca sa adreseze urmatorul element). Utilizate impreuna cu prefixele de
repetare, pot fi executate pina la implinirea unei anumite conditii. Instructiunile SCAS, SCASB, SCASW: SCAn String Folosire: SCAS sir_destinatie Compara valoarea adresata de ES:DI cu continutul registrului acumulator. In fapt, se scade din AL (sau AX) valoarea adresata de ES:DI Instructiunile LODS, LODSB, LODSW: LOad String Folosire: LODS sursa Transfera un element al sirului sursa adresat de DS:SI (octet sau cuvint) in acumulator (in AL pentru octet sau in AX pentru cuvint) si actualizeaza SI pentru adresarea urmatorului element in sir. Instructiunile STOS, STOSB, STOSW: STOre String Folosire: STOS destinatie Transfera un octet sau un cuvint din acumulator la locatia adresata de ES:DI si actualizeaza DI pentru adresarea urmatorului element in sir. Instructiuni de salt Instructiunile de salt modifica valoarea continutului registrului de instructiuni IP, eventual a registrului segment de cod CS, intrerupind executia secventiala a instructiunilor. In urma acestor modificari, programul isi continua executia de la instructiunea incarcata la adresa CS:IP.Instructiuni de salt neconditionat Instructiunea CALL Folosire: CALL nume_procedura Instructiunea CALL este folosita pentru apelul unei proceduri cu numele "nume_procedura". Inainte de a se preda controlul procedurii apelate, se salveaya pe stiva informatii privitoare la adresa din segmentul de cod la care se va preda controlul dupa terminarea executiei procedurii. Corespunzator celor doua tipuri de proceduri, NEAR si FAR, asamblorul genereaza doua tipuri de CALL: intrasegment si intersegment respectiv. In cazul unui CALL intrasegment, la executie este plasat (mai corect, salvat) in stiva continutul registrului IP, iar IP este incarcat cu deplasamentul in segmentul de cod al locatiei in care incep instructiunile componente ale procedurii. In cazul unui CALL intersegment, pe linga salvarea registrului IP, are loc operatia similara si pentru registrul CS iar registrii CS si IP sunt incarcati astfel incit sa pointeze la adresa la care incep instructiunile procedurii. Instructiunile RET, RETF, RETN Folosire: RET nrBytes Instructiunea RET se afla (tipic) in corpul unei proceduri si transfera controlul din procedura la instructiunea ce urmeaza instructiunii
Instructiunea JMP: JuMP Folosire: JMP eticheta Transfera controlul la locatia data de "eticheta". Implicit, domeniul
saltului este intre -32768 - 32767 octeti relativ la instructiunea care urmeaza lui JMP. Salturile NEAR si SHORT cauzeaza actualizarea lui IP, iar cele FAR actualizeaza CS si IP (fara salvari in stiva). Instructiuni de salt conditionat Mnemonica Salt daca... Conditie testata JA Jump if Above CF=0 and ZF=0 Observatii: - conditiile sunt exprimate in limba engleza, pentru a reflecta de unde vin abrevierile pentru mnemonici; de asemenea, sunt cuprinse informatii despre conditii in care se iau in considerare numere cu semn Instructiunea INT: INTerrupt Folosire: INT num Initiaza executarea unei intreruperi; incarca registrul indicatorilor de stare si control in stiva, zerorizeaza TF si IF, salveaza CS si IP in stiva si apoi incarca CS:IP cu valorile gasite in tabela vectorilor de intrerupere. Instructiunea INTO: INTerrupt on Overflow Folosire: INTO Daca indicatorul OF (Overflow Flag) este 1, atunci aceasta instructiune genereaza un INT 4 care determina executia instructiunilor care incep la adresa 0000:0010. Instructiunea IRET: Interrupt RETurn Folosire: IRET Aceasta instructiune se gaseste in corpul de definitie al unei intreruperi. Returneaza controlul programului in punctul de dupa instructiunea care a chemat intreruperea, restaurind IP, CS si registrul indicatorilor de stare si control din stiva. Executia programului continua de la punctul dat de CS:IP nou incarcati. Instructiuni pentru controlul iteratiilor Instructiunile din aceasta clasa permit conducerea si controlul buclelor in programe. Fiecare din aceste instructiuni are forma generala"mnemonica eticheta", unde "eticheta" precede instructiunea la care se preda controlul daca CX este diferit de 0. Instructiunea la care se preda controlul trebuie sa fie in domeniul -128 la +127 octeti fata de cea care urmeaza instructiunea ce controleaza iteratia. La fiecare executie a unei instructiuni din aceasta clasa, registrul CX se decrementeaza. De obicei, aceste instructiuni sunt folosite in combinatie cu instructiunile pe siruri. Instructiunea LOOP: Decrement CX and Loop if CX Not Zero Folosire: LOOP eticheta Decremeteaza CX cu 1; daca CX nu este 0, transfera controlul la instructiunea precedata de "eticheta". Instructiunea la care se preda controlul trebuie sa fie in domeniul -128 la +127 octeti fata de cea care urmeaza instructiunea LOOP. Instructiunile LOOPE/LOOPZ - LOOP while Equal / LOOP while Zero Folosire: LOOPE eticheta Decremeteaza CX cu 1; daca CX nu este 0 si ZF este 1, transfera controlul la instructiunea precedata de "eticheta". Instructiunea la care se preda controlul trebuie sa fie in domeniul -128 la +127 octeti fata de cea care urmeaza instructiunea de buclare. Instructiunile LOOPNZ/LOOPNE - LOOP while Not Zero / LOOP while Not Equal Folosire: LOOPNZ eticheta Decrementeaza CX cu 1; daca CX nu este 0 si ZF este 0, transfera controlul la instructiunea precedata de "eticheta". Instructiunea la care se preda controlul trebuie sa fie in domeniul -128 la +127 octeti fata de cea care urmeaza instructiunea de buclare. Insructiuni pentru lucrul cu indicatorii de stare si control Instructiunea CLC - CLear Carry Folosire: CLC In urma acestei instructiuni indicatorul CF (Carry Flag) ia valoarea 0. Instructiunea CLD - CLear Direction Flag Folosire: CLD In urma acestei instructiuni, indicatorul DF (Direction Flag) ia valoarea 0 (astfel incit, in orice instructiune cu siruri registri DI si SI se vor auto-incrementa). Instructiunea CLI - CLear Interrupt Flag Folosire: CLI Dezactiveaza intreruperile hardware mascabile, prin setarea flagului Instructiunea CMC - CoMplement Carry flag Folosire: CMC Inverseaza valoarea lui CF. Instructiunea STC - SeT Carry flag Folosire: STC Seeaza CF pe 1. Instructiunea STD - SeT Direction flag Folosire: STD Seteaza DF pe 1, astfel incit in instructiunile pe siruri DI si SI se vor auto-decrementa. Instructiunea STI - Set Interrupt Flag (Enable Interrupts) Folosire: STI Seteaza IF la 1, validind recunoasterea tuturor intreruperilor hardware. |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|