home *** CD-ROM | disk | FTP | other *** search
/ ftp.nwt.com/pub/s3/ / NWT_Psion3.tar / NWT_Psion3 / developer / 8086.dbf (.txt) next >
Psion Database  |  1997-03-07  |  7KB  |  249 lines

  1. OPLDatabaseFile
  2. LOC::A:\WDR\BJ10SXFX.WDR
  3. }j!F"
  4. m8 = memory address
  5. 2@    Mnamonic:
  6. Description:
  7. Flags:
  8. Instruction:
  9. Notes:_
  10. FLAGS:
  11. Overflow, Direction, Interrupt
  12. Trap, Sign, Zero
  13. Auxiliary, Parity, Carry
  14. ? = Undefined after op.$* = Changed to reflect result of op.
  15. 0 = Always cleared
  16. 1 = Always set
  17. )ptr16:16 = A far pointer (segment:offset)
  18. rel8 = 8 bit relative address%r8 = AL, CL, DL, BL, AH, CH, DH or BH$r16 = AX, CX, DX, BX, SP, BP, SI, DI
  19. r = r8 or r16(imm8=signed number between -128 and +127-imm16=signed number between -32768 and +32767
  20. imm = imm8 or imm165m8 = memory addressed by DS:SI or ES:DI in string ops6m16 = memory addressed by DS:SI or ES:DI in string ops
  21. r/m = register or memory
  22. Sreg = ES, CS, SS or DS
  23. Ascii adjust after addition
  24. O? S? Z? A* P? C?
  25. AAARUsed after ADD, leaves byte result in AL. To convert to ASCII usa OR AL,30H after.7
  26. ASCII adjust before division
  27. O? S* Z* A? P* C?
  28. ASCII adjust AX after multiply
  29. O? S* Z* A? P* C?
  30. ASCII adjust after subtraction
  31. O? S? Z? A* P? C*
  32. Add with carry
  33. O* S* Z* A* P* C*
  34. ADC r/m,r/imm
  35. ADC r,r/m2
  36. O* S* Z* A* P* C*
  37. ADD r/m,r/imm
  38. ADD r,r/m6
  39. Logical AND
  40. O0 S*Z*A?P*C0
  41. AND r/m,r/imm
  42. AND r,r/m:
  43. Call procedure
  44. None CALL r/m16/rel16/ptr16:16/m16:16M
  45. Convert byte to word
  46. CBW*Extends sign bit of AL into all bits of AH
  47. Clear carry flag
  48. Clear direction flag
  49. CLD&Causes string opps to inc. index regs. 
  50. Clear interrupt flag
  51. Complement carry flag
  52. Compare two operands
  53. O*S*Z*A*P*C*
  54. CMP r/m,r/imm
  55. CMP r,r/m
  56. Uses SUB on both operands
  57. CMPS, CMPSB, CMPSW
  58. Compare string operands
  59. O*S*Z*A*P*C*"CMPS ( [SI], ES:[DI] )
  60. CMPSB
  61. CMPSW:Other compares DS:[SI], ES:[DI]. Subtracting is [SI]-[DI].!Normally used after REPE or REPNEI
  62. Convert word to doubleword
  63. CWD AX into DX:AX same system as CBW6
  64. DAA Decimal adjust AL after addition
  65. O?S*Z*A*P*C*
  66. DAS#Decimal adjust AL after subtraction
  67. O?S*Z*A*P*C*
  68. Decrement by 1
  69. O*S*Z*A*P*
  70. DEC r/m!To set the Carry flag use SUB x,1.
  71. Stops instruction execution
  72. Signed divide
  73. O?S?Z?A?P?C?
  74. IDIV r/m/Signed divide of AX by r/m : AL = QUO, AH = REM2Signed divide of DX:AX by r/m : AX = QUO, AX = REMq
  75. Signed multiply
  76. O*S?Z?A?P?C*
  77. IMUL r/m
  78. AX = AL * r/m
  79. DX:AX = AX * r/m&CF and OF are the sign-extend of AL/AX(
  80. Input from port
  81. IN AL/AX,imm/DXH
  82. Increment by 1
  83. O*S*Z*A*P*
  84. INC r/m!To set the Carry flag use ADD x,1{
  85. INT / INTO
  86. Call to interrupt procedure
  87. I0 T0
  88. INTimm
  89. INT3=interrupt to debugger!INTO = INT4 if overflow flag is 1D
  90. Interrupt return
  91. O*D*I*T*S*Z*A*P*C*
  92. Return from interrupt
  93. vJA,JAE,JB,JBE,JC,JCXZ,JE,JG,JGE,JL,JLE,JNA,JNAE,JNB,JNBE,JNC,JNE,JNG,JNGE,JNL,JNLE,JNO,JNP,JNS,JNZ,JO,JP,JPE,JPO,JS,JZ
  94. Jump if condition met
  95. Jcc rel82To make far jumps use the opposite jump over a JMP JA - Jump if Above (CF=0 & ZF=0)#JAE - Jump if Above or Equal (CF=0)
  96. JB - Jump if Below (CF=1)+JBE - Jump if Below or Equal (CF=1 or ZF=1)
  97. JC - Jump if Carry
  98. JCXZ - Jump if CX register = 0
  99. JE - Jump if Equal (ZF=1)%JG - Jump if Greater (ZF=0 and SF=OF)&JGE - Jump if Greater or Equal (SF=OF)
  100. JL - Jump if Less (SF<>OF)-JLE - Jump if Less or Equal (ZF=1 and SF<>OF)&JNA - Jump if Not Above (CF=1 or ZF=1)(JNAE - Jump if Not Above or Equal (CF=1)
  101. JNB - Jump if Not Below (CF=0)1JNBE - Jump if Not Below or Equal (CF=0 and ZF=0)
  102. JNC - Jump if Not Carry
  103. JNE - Jump if Not Equal (ZF=0)*JNG - Jump if Not Greater (ZF=1 or SF<>OF),JNGE - Jump if Not Greater or Equal (SF<>OF)
  104. JNL - Jump if Not Less (SF=OF)1JNLE - Jump if Not Less or Equal (ZF=0 and SF=OF)
  105. JNO - Jump if Not Overflow
  106. JNP - Jump if Not Parity
  107. JNS - Jump if Not Sign
  108. JNZ - Jump if Not Zero
  109. JO - Jump if Overflow
  110. JP - Jump if Parity JPE - Jump if Parity Even (PF=1)
  111. JPO - Jump if Parity Odd (PF=0)
  112. JS - Jump if Sign
  113. JZ - Jump if Zero#
  114. JMP rel/r/m/ptr16:16
  115. Loads flags into AH register
  116. 7 = Sign
  117. 6 = Zero
  118. 5 = Indeterminate
  119. 4 = Auxiliary
  120. 3 = Indeterminate
  121. 2 = Parity
  122. 1 = Indeterminate    0 = Carry_
  123. LDS, LES
  124. Load full pointer
  125. LDS/LES r,m16:16-Loads DS:rx or ES:rx with pointer from memory0
  126. Load Effective Address offset
  127. LEA rx,m*
  128. Assert LOCK# signal prefix
  129. LOCKh
  130. LODS, LODSB, LODSW
  131. Load string operand
  132. LODS m ( [SI] )
  133. LODSB
  134. LODSW
  135. Load [SI] or DS:[SI] into AL/AX
  136. "LOOP, LOOPE, LOOPZ, LOOPNE, LOOPNZ
  137. Loop control with CX counter
  138. LOOP rel8
  139. LOOPcc rel8
  140. DEC CX; jump short if CX=0
  141. In the case of LOOPcc
  142. ZF=0 (NE and NZ)
  143. ZF=1 (E and Z)
  144. MOV    Move data
  145. NoneWMOV r/m,r/imm
  146. MOV r,r/m/imm
  147. MOV Sreg,r/m16
  148. MOV r/m16,Sreg
  149. MOV AL/AX,moff
  150. MOV moff,AL/AX moff = byte/word at (seg:offset)"registers can also be segment regs
  151. MOVS, MOVSB, MOVSW
  152. Move data from string to string
  153. None(MOVS m,m ( [SI] to ES:[DI] ]
  154. MOVSB
  155. MOVSW1Moves byte/word from [SI] or DS:[SI] into ES:[DI]
  156. MUL#Unsigned multiplication of AL or AX
  157. O*S?Z?A?P?C*
  158. MUL r/m
  159. AX = AL * r/m or
  160. DX:AX = AX * r/m)CF and OF are cleared if AH or DX is zero3
  161. Two's compliment negation
  162. O*S*Z*A*P*C*
  163. NEG r/m_
  164. No operation
  165. Same as XCHG AX,AX1single byte opcode uses 3 t-states (clock cycles)+
  166. One's compliment negation
  167. NOT r/m;
  168. Logical inclusive OR
  169. O0S*Z*A?P*C0
  170. OR r/m,r/imm
  171. OR r,r/m)
  172. Output to port
  173. OUT imm/DX,AL/AXW
  174. Pop a word from the stack
  175. POP m/r/Sreg (Only words)
  176. Use RET instead of POP CS@
  177. POPF"Pop from stack into FLAGS register
  178. O*D*I*T*S*Z*A*P*C*
  179. POPFA
  180. Push operand onto the stack
  181. PUSH m/r/Sreg (only words)4
  182. PUSHF"Push FLAGS register onto the stack
  183. PUSHF
  184. RCL, RCR, ROL, ROR
  185. Rotate with or without CF
  186. O*C*;RCL r/m,imm/CL
  187. RCR r/m,imm/CL
  188. ROL r/m,imm/CL
  189. ROR r/m,imm/CL.RCL and RCR rotate 9 or 17 bits (including CF)%ROL and ROR rotates only 8 or 16 bitsQ
  190. REP, REPE, REPZ, REPNE, REPNZ!Repeat following string operation
  191. Z*3REP MOVS
  192. REP STOS
  193. REPE/REPNE  CMPS
  194. REPE/REPNE  SCAS
  195. REPZ = REPE and REPNZ = REPNE*1. Check CX, if zero goto next instruction
  196. 2. Perform string op once&3. Decriment CX, no flags are modifiedE4. Check ZF for SCAS or CMPS, exit if REPE and ZF=0 or REPNE and ZF=1    5. Goto 1Q
  197. Return from procedure
  198. RET imm16#RET imm POPs imm bytes of the stack>
  199. Store AH into Flags
  200. S*Z*A*P*C*
  201. SF ZF x AF x PF x CF
  202. SAL, SAR, SHL, SHR
  203. Shift instructions
  204. O*S*Z*A?P*C*;SAL r/m,imm/CL
  205. SAR r/m,imm/CL
  206. SHL r/m,imm/CL
  207. SHR r/m,imm/CL SAL = SHL, MSB goes to CF, LSB=0ISAR and SHR, LSB -> CF, with SAR the MSB is unchanged, with SHR the MSB=0I
  208. Integer subtraction with borrow
  209. O*S*Z*A*P*C*
  210. SBB r/m,r/imm
  211. SBB r,r/mc
  212. SCAS, SCASB, SCASW
  213. Compare string data
  214. O*S*Z*A*P*C*
  215. SCAS m
  216. SCASB
  217. SCASW
  218. Compares AL/AX with ES:[DX]
  219. Set Carry Flag
  220. Set Direction Flag
  221. STD&Causes string opps to dec. index regs.%
  222. Set Interrupt enable Flag
  223. STOS, STOSB, STOSW
  224. Store string data
  225. STOS m
  226. STOSB
  227. STOSW
  228. Stores AL/AX in ES:[DI]=
  229. Integer subtraction
  230. O*S*Z*A*P*C*
  231. SUB r/m,imm/r
  232. SUB r,r/mS
  233. Logical compare
  234. O0S*Z*A?P*C0
  235. TEST r/m,r/imm!Uses logical AND on both operands7
  236. WAIT'Wait until BUSY# pin is inactive (high)
  237. WAITG
  238. XCHG&Exchange memory/register with register
  239. XCHG r/m,r
  240. XCHG r,r/mc
  241. XLAT, XLATB
  242. Table look-up translation
  243. XLAT m8
  244. XLATB)Set AL to memory byte DS:[BX+unsigned AL]>
  245. Logical Exclusive OR
  246. O0S*Z*A?P*C0
  247. XOR r/m,r/imm
  248. XOR r,r/m
  249.