Instrukcje procesorów rodziny 80x86 (M)

Dryobates

MOVMove Byte or Word
UżycieMOV dest, src
Modyfikowane flagiBrak
Kopiuje zawartość src do dest. Jeżeli dest=SS przerwania są wyłączane (za wyjątkiem wczesnych błędnych procesorów 808x). Niektóre procesory wyłączają przerwania, jeżeli dest jest którymkolwiek z rejestrów segmentowych.

Przykład:
mov ax, @data ;ładujemy segment danych do ax
mov ds, ax ;i ustawiamy go

 Liczba cykli zegaraRozmiar
Parametry808x286386486PentiumBajtów
reg, reg22211 UV2
mem, reg13+EA3211 UV2
reg, mem12+EA5411 UV2
mem, imm14+EA13311 UV*2
reg, imm42211 UV2
acc, mem145411 UV3
mem, acc143211 UV3
seg, r1622232-11 NP2
seg, m1612+EA5533-12 NP2
reg16, seg22231 NP2
mem16, seg13+EA3231 NP2
  • jeżeli specjalne rejestry 386 są użwane to wszystkie operandy są 32-bitowe
  • zestawienie nie uwzględnia operacji w trybie Protected oraz operacji na rejestrach specjalnych 386+ (control, debug, trap). Jeżeli brakuje Ci tego, to daj znać, a uzupełnię.
    • nieparowalne, jeżeli jest przesunięcie i natychmiastowe adresowanie na raz
      MOVSMove String (Byte or Word)
      UżycieMOVS dest, src
      MOVSB
      MOVSW
      MOVSD (386+)
      Modyfikowane flagiBrak

      Kopiuje dane spod adresu DS:SI (nawet, jeżeli podano operand) do ES:DI i zmienia SI i DI zależnie od rozmiaru operandu lub instrukcji. SI i DI są zwiększane, jeżeli DF=0 i zmniejszane gdy DF=. Używaj z prefiksem REP.

      Przykład:
      Lancuch db "Ala ma kota$"
      Kopia db 15 dup(?)
      ....
      push ds
      pop es ;zmienna docelowa w tym samym segmencie danych
      lea di, Kopia ;ładujemy indeks do łańcucha doktórego kopiujemy
      lea si, Lancuch ;ładujemy indeks do łańcucha z którego kopiujemy
      mov cx, 12 ;kopiujemy 12 znaków
      cld ;będziemy zwiększać indeksy
      rep movsb ;i kopiujemy po bajcie

       Liczba cykli zegaraRozmiar
      Parametry808x286386486PentiumBajtów
      movsb185774 NP1
      movsw265774 NP1
      movsd--774 NP1
      rep movsb9+17n5+4n7+4n12+3n*3+n NP2
      rep movsw9+25n5+4n7+4n12+3n*3+n NP

      2

      rep movsd--7 +4n12+3n*3+n NP2
  • = 5 jeżeli n=0, 13 jeżeli n=1
    (n = liczba bajtów, słów lub podwójnych słów)
    MOVSXMove with Sign Extend (386+)
    UżycieMOVSX dest,src
    Modyfikowane flagiBrak

    Kopije src do dest, rozszerzając znak.Rozmiar dest jest zawsze większy niż src.

    Przykład:
    mov al, FEh ;al = 1111 1110 b = -2 d
    movsx dx, al ; dx = 1111 1111 1111 1110 b = -2 d
    mov al, 0Eh ;al = 0000 1110 b = 15 d
    movsx dx, al ; dx = 0000 0000 0000 1110 b = 15 d

     Liczba cykli zegaraRozmiar
    Parametry808x286386486PentiumBajtów
    reg, reg--333 NP3
    reg, mem--633 NP3

    MOVZXMove with Zero Extend (386+)
    UżycieMOVZX dest,src
    Modyfikowane flagiBrak

    Kopiuje src do dest rozszerzając o 0. Rozmiar dest jest zawsze większy niż src.

    Przykład:
    mov al, FEh ;al = 1111 1110 b = -2 d
    movzx dx, al ; dx = 0000 0000 1111 1110 b = 254 d
    mov al, 0Eh ;al = 0000 1110 b = 15 d
    movzx dx, al ; dx = 0000 0000 0000 1110 b = 15 d

     Liczba cykli zegaraRozmiar
    Parametry808x286386486PentiumBajtów
    reg, reg--333 NP3
    reg, mem--633 NP3

    MULUnsigned Multiply
    UżycieMUL src
    Modyfikowane flagiCF OF (AF,PF,SF,ZF nieokreślone)

    Mnoży zawartość akumulatora (AL, AX lub EAX) przez src nie biorąc pod uwagę znaku (liczby w natrualnym kodzie binarnym NKB).

    Czynnik1Czynnik2 (rozmiar)Iloczyn
    ALByteAX
    AXWordDX:AX
    EAXDWordEDX:EAX

    Procesory 386+ używają algorytmu, który mnoży dowolną wartość z EAX tak samo szybko jak w rejestrach 8 czy 16 bitowych.

    Przykład:
    mov ax, 2F3h ; ax = 755 d
    mov cx, 0Eh ; cx = 15 d
    mul cx ;edx:eax = 11375 d = 2c3dh

     Liczba cykli zegaraRozmiar
    Parametry808x286386486Bajtów
    reg870-77139-1413-182
    reg16118-113219-2213-262
    reg32--9-3813-422-4
    mem8(76-83)+EA1612-1713-182-4
    mem16(124-139)+EA2412-2513-262-4
    mem32--12-2113-412-4

Autorzy:
Dryobates
LKS
Vogel
Wirek

7 komentarzy

It's nice to see that some people still understand how to write a quality post free gift code generator

tinder for pc app developed as the Multi-Platform application it does not have a language barrier, then the Tinder for PC has the ability to support nearly 30 languages. So it can be used in most of the countries without any issues.

Ta aplikacja jest bardzo przydatna dla nas podróżnych
router login

This means that it remains the most fully featured and complete app in its class.http://goldstar-tmz.ru/Warez/[...]f-by-the-sea-ost-torrent.html Fixed Music Tab Layout Problem Fixed Location Update Error Message.

Weźmy jako przykład podaną w tabeli instrukcję 'MUL' ... wynika z tego, że na procesorze 386
wykonuje się szybciej niż na 486 ???? - byłem przekonany, że powinno być odwrotnie ....

brakuje mi jedynie obok opcod'ów :)

ale macie leb :-)