Instrukcje procesorów 8086-Pentium

Dryobates

Podstawowe skróty stosowane w spisie:

acc = Akumulator (AL, AX lub EAX, chyba, że dokładnie określono który)
reg = Dowolny rejestr ogólny
r8 = Dowolny 8-bitowy rejestr
r16 = Dowolny 16-bitowy rejestr ogólny
r32 = Dowolny 32-bitowy rejestr ogólny
imm = Dane natychmiastowe (stała umieszczona w instrukcji)
imm8 = 8-bitowe dane natychmiastowe
imm16 = 16-bitowe dane natychmiastowe
mem = Adres w pamięci
mem8 = Adres 8-bitowej danej
mem16 = Adres 16-bitowej danej
mem32 = Adres 32-bitowej danej
mem48 = Adres 48-bitowej danej
dest = 16/32-bitowe miejsce przeznaczenia
short = 8-bitowe miejsce przeznaczenia

Czasy wykonywania instrukcji:

n - liczba powtarzanych operacji
m - w skoku lub wywołaniu procedury:
286 - liczba bajtów w następnej instrukcji
386/486 - liczba komponentów: (każdy bajt kodu operacji) + 1 (jeżeli dane natychmiastowe) + 1 (jeżeli przesunięcie)

Kategorie parowalności w procesorach Pentium:

NP = nie parowalne
UV = parowalne zarówno w potoku U jak i V
PU = parowalne tylko w potoku U
PV = parowalne tylko w potoku V

8088/8086 Wyliczanie adresu efektywnego (EA)

OpisLiczba cykli zegara
Przesunięcie6
Rejestr bazowy (Base) lub indeksowy (Index) (BX,BP,SI,DI)5
Przesunięcie+(Baza lub Indeks) 9
Baza+Indeks (BP+DI,BX+SI)7
Baza+Indeks(BP+SI, BX+DI) 8
Baza+Indeks+Przesunięcie(BP+DI, BX+SI) 11
Baza+Indks+Przesunięcie (BP+SI+disp, BX+DI+disp) 12
  • dodaj 4 cykle dla słów w nieparzystych adresach
  • dodaj 2 cykle do nadpisania segmentu
  • 80188/80186 taktowanie różni się od tego z 8088/8086/80286

Instrukcje procesorów 8086-80486

  1. AAA - Ascii Adjust for Addition
  2. AAD - Ascii Adjust for Division
  3. AAM - Ascii Adjust for Multiplication
  4. AAS - Ascii Adjust for Subtraction
  5. ADC - Add With Carry
  6. ADD - Arithmetic Addition
  7. AND - Logical And
  8. ARPL - Adjusted Requested Privilege Level of Selector (286+ PM)
  9. BOUND - Array Index Bound Check (80188+)
  10. BSF - Bit Scan Forward (386+)
  11. BSR - Bit Scan Reverse (386+)
  12. BSWAP - Byte Swap (486+)
  13. BT - Bit Test (386+)
  14. BTC - Bit Test with Compliment (386+)
  15. BTR - Bit Test with Reset (386+)
  16. BTS - Bit Test and Set (386+)
  17. CALL - Procedure Call
  18. CBW - Convert Byte to Word
  19. CDQ - Convert Double to Quad (386+)
  20. CLC - Clear Carry
  21. CLD - Clear Direction Flag
  22. CLI - Clear Interrupt Flag (disable)
  23. CLTS - Clear Task Switched Flag (286+ privileged)
  24. CMC - Complement Carry Flag
  25. CMP - Compare
  26. CMPS - Compare String (Byte, Word or Doubleword)
  27. CMPXCHG - Compare and Exchange
  28. CWD - Convert Word to Doubleword
  29. CWDE - Convert Word to Extended Doubleword (386+)
  30. DAA - Decimal Adjust for Addition
  31. DAS - Decimal Adjust for Subtraction
  32. DEC - Decrement
  33. DIV - Divide
  34. ENTER - Make Stack Frame (80188+)
  35. ESC - Escape
  36. HLT - Halt CPU
  37. IDIV - Signed Integer Division
  38. IMUL - Signed Multiply
  39. IN - Input Byte or Word From Port
  40. INC - Increment
  41. INS - Input String from Port (80188+)
  42. INT - Interrupt
  43. INTO - Interrupt on Overflow
  44. INVD - Invalidate Cache (486+)
  45. INVLPG - Invalidate Translation Look-Aside Buffer Entry (486+)
  46. IRET/IRETD - Interrupt Return
  47. Jxx - Jump Instructions Table
  48. JCXZ/JECXZ - Jump if Register (E)CX is Zero
  49. JMP - Unconditional Jump
  50. LAHF - Load Register AH From Flags
  51. LAR - Load Access Rights (286+ protected)
  52. LDS - Load Pointer Using DS
  53. LEA - Load Effective Address
  54. LEAVE - Restore Stack for Procedure Exit (80188+)




  55. POP - Pop Word off Stack
  56. POPA/POPAD - Pop All Registers onto Stack (80188+)
  57. POPF/POPFD - Pop Flags off Stack
  58. PUSH - Push Word onto Stack
  59. PUSHA/PUSHAD - Push All Registers onto Stack (80188+)
  60. PUSHF/PUSHFD - Push Flags onto Stack
  61. RCL - Rotate Through Carry Left
  62. RCR - Rotate Through Carry Right
  63. REP - Repeat String Operation
  64. REPE/REPZ - Repeat Equal / Repeat Zero
  65. REPNE/REPNZ - Repeat Not Equal / Repeat Not Zero
  66. RET/RETF - Return From Procedure
  67. ROL - Rotate Left
  68. ROR - Rotate Right
  69. SAHF - Store AH Register into FLAGS
  70. SAL/SHL - Shift Arithmetic Left / Shift Logical Left
  71. SAR - Shift Arithmetic Right
  72. SBB - Subtract with Borrow/Carry
  73. SCAS - Scan String (Byte, Word or Doubleword)
  74. SETAE/SETNB - Set if Above or Equal / Set if Not Below (386+)
  75. SETB/SETNAE - Set if Below / Set if Not Above or Equal (386+)
  76. SETBE/SETNA - Set if Below or Equal / Set if Not Above (386+)
  77. SETE/SETZ - Set if Equal / Set if Zero (386+)
  78. SETNE/SETNZ - Set if Not Equal / Set if Not Zero (386+)
  79. SETL/SETNGE - Set if Less / Set if Not Greater or Equal (386+)
  80. SETGE/SETNL - Set if Greater or Equal / Set if Not Less (386+)
  81. SETLE/SETNG - Set if Less or Equal / Set if Not greater or Equal (386+)
  82. SETG/SETNLE - Set if Greater / Set if Not Less or Equal (386+)
  83. SETS - Set if Signed (386+)
  84. SETNS - Set if Not Signed (386+)
  85. SETC - Set if Carry (386+)
  86. SETNC - Set if Not Carry (386+)
  87. SETO - Set if Overflow (386+)
  88. SETNO - Set if Not Overflow (386+)
  89. SETP/SETPE - Set if Parity / Set if Parity Even (386+)
  90. SETNP/SETPO - Set if No Parity / Set if Parity Odd (386+)
  91. SGDT - Store Global Descriptor Table (286+ privileged)
  92. SIDT - Store Interrupt Descriptor Table (286+ privileged)
  93. SHL - Shift Logical Left
  94. SHR - Shift Logical Right
  95. SHLD/SHRD - Double Precision Shift (386+)
  96. SLDT - Store Local Descriptor Table (286+ privileged)
  97. SMSW - Store Machine Status Word (286+ privileged)
  98. STC - Set Carry
  99. STD - Set Direction Flag
  100. STI - Set Interrupt Flag (Enable Interrupts)
  101. STOS - Store String (Byte, Word or Doubleword)
  102. STR - Store Task Register (286+ privileged)
  103. SUB - Subtract
  104. TEST - Test For Bit Pattern
  105. VERR - Verify Read (286+ protected)
  106. VERW - Verify Write (286+ protected)
  107. WAIT/FWAIT - Event Wait
  108. WBINVD - Write-Back and Invalidate Cache (486+)
  109. XCHG - Exchange
  110. XLAT/XLATB - Translate
  111. XOR - Exclusive OR
Autorzy:

9 komentarzy

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

xender pc allows the users to transfer the file from one device to another device without using any external cables or Internet connection. It uses the Wi-Fi of your device to send the data wirelessly.

I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people.
google maps street view

I have read many other articles about the same topic, but your article convinced me! Thanks your share free game stop gift code generator

co znaczy "privileged"? konieczny CPL==0?

Jest to ważne źródło przy pisaniu OS.

Moze byc, ale szkoda, ze nie wszystko przetlumaczone na PL. Ale z drugiej strony dobrze, ze chociaz tyle ;)

Dry brawo jednak wkręcił Ci się assembler :)))
Szkoda że ja niemam czasu na pisanie programów w asm :((( Ale moje gratulacje :))

bardzo ladny spis - pogratulowac wytrwalosci w tworzeniu