duminică, 4 decembrie 2011

Instructiuni de transfer in limbajul de asamblare

Instructiunea MOV

Folosire: MOV destinatie,sursa

        Transfera un octet sau un cuvânt 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 cuvânt in stiva

Folosire:  PUSH sursa

        Decrementeaza continutul registrului SP cu doi si apoi transfera un cuvânt din operandul sursa in noul vârf al stivei, referit de SP (deci care are adresa SS:SP). Aceasta instructiune este folosita deseori pentru incarcarea parametrilor in stiva, inainte de apelul unei proceduri.

Instructiunea POP: Extrage un cuvânt din stiva.

Folosire:  POP destinatie

        Transfera cuvântul din top-ul stivei (SS:SP) la locatia referita de "destinatie", apoi incrementeaza SP cu 2 astfel incât sa pointeze la noul vârf al stivei.

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 operanzi ai acestei  insructiuni.

Instructiunea IN: Primeste octet sau cuvânt de la un port specificat.

Folosire: IN acumulator, port

          Este citit un octet sau un cuvânt de la "port" si este plasat in AL,  sau AX respectiv. Daca numarul portului este in domeniul 0-255, operandul  "port" poate fi specificat ca valoare imediata. Altfel, numarul de port trebuie  specificat in DX.

Instructiunea OUT: Faciliteaza iesirea datelor la porturi

Folosire: OUT port, acumulator

       Transfera un octet din AL, ori un cuvânt din AX la portul specificat. Daca numarul portului este in domeniul 0-255, operandul "port" poate fi  specificat ca valoare imediata. Altfel, numarul de port trebuie specificat in  DX.

Instructiunea LEA: Incarca adresa efectiva (Load Effective Address)

Folosire:  LEA destinatie, sursa

         Transfera deplasamentul din adresa operandului "sursa" in operandul
"destinatie", care trebuie sa fie un registru general.

Instructiunea LDS: Incarca pointer folosind DS

Folosire:  LDS destinatie, sursa


       Incarca o adresa logica de memorie (pe 32 de biti) din memorie  (operandul "sursa" se presupune a fi o variabila in memorie) in "destinatie", care trebuie sa fie registru general, si in registrul DS. Deplasamentul este  incarcat in registrul general specificat in "destinatie", iar segmentul este  incarcat in DS. Operandul "sursa" indica locatia in memorie la care se afla dublu cuvântul ce urmeaza a fi incarcat. Pntru a folosi aceasta instructiune cuvântul de la adresa de memorie mai mica trebuie sa contina deplasamentul, iar cel de la adresa mai mare trebuie sa contina adresa de segment.

Instructiunea LES: Incarca pointer folosind ES

Folosire:  LES destinatie, sursa

Incarca o adresa logica de memorie (pe 32 de biti) din memorie  (operandul "sursa" se presupune a fi o variabila in memorie) in "destinatie", care trebuie sa fie registru general, si in registrul ES. Deplasamentul este  incarcat in registrul general specificat in "destinatie", iar segmentul este  incarcat in ES. Operandul "sursa" indica locatia in memorie la care se afla
dublu cuvântul ce urmeaza a fi incarcat. Pntru a folosi aceasta instructiune cuvântul de la adresa de memorie mai mica trebuie sa contina deplasamentul, iar cel de la adresa mai mare trebuie sa contina adresa de segment.

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.  Indicatorii nu sunt afectati in urma acestei instructiuni.

Instructiunea SAHF: Restaureaza indicatorii din AH

Folosire:  SAHF

Transfera bitii 7, 6, 4, 2 si 0 ai registrului AH in indicatorii SF,  ZF, AF, PF si CF respectiv. 

Instructiunea PUSHF: 

Folosire:  PUSHF

Tansfera registrul indicatorilor de stare si control in stiva.

Instructiunea POPF:

Folosire:  POPF

Transfera cuvântul din top-ul stivei in registrul indicatorilor de 
stare si control, dupa care incrementeaza SP cu 2.

Niciun comentariu:

Trimiteți un comentariu