Category : Assembly Language Source Code
Archive   : OPCODE_A.ZIP
Filename : NDPCODES.TXT
8087/80287 NDP Coprocessor Opcodes PGS - Page 1
[Prefixed with 9B = WAIT for 8087]
| WT | OP AM xx xx | OP | Direct Memory References |
+----+-------------+----+----------------------------------+
| | D8 06 dl dh | 00 | FADD real_dword |
| | D8 0E dl dh | 01 | FMUL real_dword |
| | D8 16 dl dh | 02 | FCOM real_dword |
| | D8 1E dl dh | 03 | FCOMP real_dword |
| | D8 26 dl dh | 04 | FSUB real_dword |
| | D8 2E dl dh | 05 | FSUBR real_dword |
| | D8 36 dl dh | 06 | FDIV real_dword |
| | D8 3E dl dh | 07 | FDIVR real_dword |
+----+-------------+----+----------------------------------+
| | D9 06 dl dh | 08 | FLD real_dword |
| | D9 0E dl dh | 09 | ??? |
| | D9 16 dl dh | 0A | FST real_dword |
| | D9 1E dl dh | 0B | FSTP real_dword |
| 9B | D9 26 dl dh | 0C | FLDENV env_14_byte |
| 9B | D9 2E dl dh | 0D | FLDCW ctl_word |
| 9B | D9 36 dl dh | 0E | FSTENV env_14_byte |
| 9B | D9 3E dl dh | 0F | FSTCW ctl_word |
+----+-------------+----+----------------------------------+
| | DA 06 dl dh | 10 | FIADD int_dword |
| | DA 0E dl dh | 11 | FIMUL int_dword |
| | DA 16 dl dh | 12 | FICOM int_dword |
| | DA 1E dl dh | 13 | FICOMP int_dword |
| | DA 26 dl dh | 14 | FISUB int_dword |
| | DA 2E dl dh | 15 | FISUBR int_dword |
| | DA 36 dl dh | 16 | FIDIV int_dword |
| | DA 3E dl dh | 17 | FIDIVR int_dword |
+----+-------------+----+----------------------------------+
| | DB 06 dl dh | 18 | FILD int_dword |
| | DB 0E dl dh | 19 | ??? |
| | DB 16 dl dh | 1A | FIST int_dword |
| | DB 1E dl dh | 1B | FISTP int_dword |
| | DB 26 dl dh | 1C | ??? |
| | DB 2E dl dh | 1D | FLD real_tbyte |
| | DB 36 dl dh | 1E | ??? |
| | DB 3E dl dh | 1F | FSTP real_tbyte |
+----+-------------+----+----------------------------------+
| | DC 06 dl dh | 20 | FADD real_qword |
| | DC 0E dl dh | 21 | FMUL real_qword |
| | DC 16 dl dh | 22 | FCOM real_qword |
| | DC 1E dl dh | 23 | FCOMP real_qword |
| | DC 26 dl dh | 24 | FSUB real_qword |
| | DC 2E dl dh | 25 | FSUBR real_qword |
| | DC 36 dl dh | 26 | FDIV real_qword |
| | DC 3E dl dh | 27 | FDIVR real_qword |
+----+-------------+----+----------------------------------+
| | DD 06 dl dh | 28 | FLD real_qword |
| | DD 0E dl dh | 29 | ??? |
| | DD 16 dl dh | 2A | FST real_qword |
| | DD 1E dl dh | 2B | FSTP real_qword |
| 9B | DD 26 dl dh | 2C | FRSTOR sav_94_byte |
| | DD 2E dl dh | 2D | ??? |
| 9B | DD 36 dl dh | 2E | FSAVE sav_94_byte |
| 9B | DD 3E dl dh | 2F | FSTSW sta_word |
+----+-------------+----+----------------------------------+
8087/80287 NDP Coprocessor Opcodes PGS - Page 2
[Prefixed with 9B = WAIT for 8087]
| WT | OP AM xx xx | NDP| Direct Memory References |
+----+-------------+----+----------------------------------+
| | DE 06 dl dh | 30 | FIADD int_word |
| | DE 0E dl dh | 31 | FIMUL int_word |
| | DE 16 dl dh | 32 | FICOM int_word |
| | DE 1E dl dh | 33 | FICOMP int_word |
| | DE 26 dl dh | 34 | FISUB int_word |
| | DE 2E dl dh | 35 | FISUBR int_word |
| | DE 36 dl dh | 36 | FIDIV int_word |
| | DE 3E dl dh | 37 | FIDIVR int_word |
+----+-------------+----+----------------------------------+
| | DF 06 dl dh | 38 | FILD int_word |
| | DF 0E dl dh | 39 | ??? |
| | DF 16 dl dh | 3A | FIST int_word |
| | DF 1E dl dh | 3B | FISTP int_word |
| | DF 26 dl dh | 3C | FBLD bcd_tbyte |
| | DF 2E dl dh | 3D | FILD int_qword |
| | DF 36 dl dh | 3E | FBSTP bcd_tbyte |
| | DF 3E dl dh | 3F | FISTP int_qword |
+----+-------------+----+----------------------------------+
| | | | Indirect Memory References - |
| WT | OP AM dl | MMxxxR/M | Example Explicit Attributes |
+----+----------+----------+-------------------------------+
| | DF 68 | 01xxx000 | FILD QWORD PTR [BX][SI] |
| | DF 68 02 | 01xxx000 | FILD QWORD PTR [BX][SI]+2 |
| | D9 19 | 00xxx001 | FSTP DWORD PTR [BX][DI] |
| | DD 19 | 00xxx001 | FSTP QWORD PTR [BX+DI] |
| | DB 7A | 01xxx010 | FSTP TBYTE PTR [BP][SI] |
| | D9 5A 02 | 01xxx010 | FSTP DWORD PTR [BP+SI+2] |
| | DD 5A 02 | 01xxx010 | FSTP QWORD PTR [BP+SI]+2 |
| | DF 22 | 00xxx010 | FBLD TBYTE PTR [SI+BP] |
| | DB 7B | 01xxx011 | FSTP TBYTE PTR [BP][DI] |
| | DD 1C | 00xxx100 | FSTP QWORD PTR [SI] |
| | DB 3D | 00xxx101 | FSTP TBYTE PTR [DI] |
| | D9 5E 00 | 01xxx110 | FSTP DWORD PTR [BP+0] |
| | D9 1F | 00xxx111 | FSTP DWORD PTR [BX] |
| | DD 1F | 00xxx111 | FSTP QWORD PTR [BX] |
| | DB 3F | 00xxx111 | FSTP TBYTE PTR [BX] |
| | DB 07 | 00xxx111 | FILD DWORD PTR [BX] |
| | DF 47 02 | 01xxx111 | FILD WORD PTR [BX+2] |
+----+----------+----------+-------------------------------+
| MM | Meaning | EA |
|----+--------------------------------+---------+
| 00 | Direct memory disp.(R/M = 110) | 0x - 3x |
| | Indirect, disp = 0 (R/M ! 110) | |
| 01 | Indirect, 8-bit disp. | 4x - 7x |
| 10 | Indirect, 16-bit disp. | 8x - Bx |
| 11 | Stack reference | Cx - Fx |
+----+--------------------------------+---------+
8087/80287 NDP Coprocessor Opcodes PGS - Page 3
[Prefixed with 9B = WAIT for 8087]
| R/M | Indirect Memory References |
+-----+------------------------------------+
| 000 | DS:[BX+SI+disp] |
| 001 | DS:[BX+DI+disp] |
| 010 | SS:[BP+SI+disp] |
| 011 | SS:[BP+DI+disp] |
| 100 | DS:[SI+disp] |
| 101 | DS:[DI+disp] |
| 110 | DS:[BP+disp] (MM = 00, DS:[BP+0]) |
| 111 | DS:[BX+disp] |
+-----+------------------------------------+
| WT | OP AM XX XX | OP | Simple Stack References |
+----+-------------+----+----------------------------------+
| | DE C1 | 30 | FADD [FADDP ST(1),ST] |
| | DE C9 | 31 | FMUL [FMULP ST(1),ST] |
| | D8 D1 | 02 | FCOM [FCOM ST(1)] |
| | D8 D9 | 03 | FCOMP [FCOMP ST(1)] |
| | DE E1 | 34 | FSUBR [FSUBRP ST(1),ST] |
| | DE E9 | 35 | FSUB [FSUBP ST(1),ST] |
| | DE F1 | 36 | FDIVR [FDIVRP ST(1),ST] |
| | DE F9 | 37 | FDIV [FDIVP ST(1),ST] |
| | D9 C8 | 09 | FXCH [FXCH ST(0)] |
+----+-------------+----+----------------------------------+
8087/80287 NDP Coprocessor Opcodes PGS - Page 4
[Prefixed with 9B = WAIT for 8087]
| WT | OP AM XX XX | OP | Stack References / NDP Control |
+----+-------------+----+----------------------------------+
| | D8 CO+i | 00 | FADD ST,ST(i) |
| | D8 C8+i | 01 | FMUL ST,ST(i) |
| | D8 D0+i | 02 | FCOM ST(i) |
| | D8 D8+i | 03 | FCOMP ST(i) |
| | D8 E0+i | 04 | FSUB ST,ST(i) |
| | D8 E8+i | 05 | FSUBR ST(i) |
| | D8 F0+i | 06 | FDIV ST,ST(i) |
| | D8 F8+i | 07 | FDIVR ST(i) |
+----+-------------+----+----------------------------------+
| | D9 C0+i | 08 | FLD ST(i) |
| | D9 C8+i | 09 | FXCH ST(i) |
| | D9 D0 | 0A | FNOP |
| | D9 D8+i | 0B | ??? |
| | D9 E0 | 0C | FCHS |
| | D9 E1 | 0C | FABS |
| | D9 E4 | 0C | FTST |
| | D9 E5 | 0C | FXAM |
+----+-------------+----+----------------------------------+
| | D9 E8 | 0D | FLD1 |
| | D9 E9 | 0D | FLDL2T |
| | D9 EA | 0D | FLDL2E |
| | D9 EB | 0D | FLDPI |
| | D9 EC | 0D | FLDLG2 |
| | D9 ED | 0D | FLDLN2 |
| | D9 EE | 0D | FLDZ |
+----+-------------+----+----------------------------------+
| | D9 F0 | 0E | F2XM1 |
| | D9 F1 | 0E | FYL2X |
| | D9 F2 | 0E | FPTAN |
| | D9 F3 | 0E | FPATAN |
| | D9 F4 | 0E | FXTRACT |
| | D9 F6 | 0E | FDECSTP |
| | D9 F7 | 0E | FINCSTP |
+----+-------------+----+----------------------------------+
| | D9 F8 | 0F | FPREM |
| | D9 F9 | 0F | FYL2XP1 |
| | D9 FA | 0F | FSQRT |
| | D9 FC | 0F | FRNDINT |
| | D9 FD | 0F | FSCALE |
+----+-------------+----+----------------------------------+
| | DA C0+i | 10 | ??? |
| | DA C8+i | 11 | ??? |
| | DA D0+i | 12 | ??? |
| | DA D8+i | 13 | ??? |
| | DA E0+i | 14 | ??? |
| | DA E8+i | 15 | ??? |
| | DA F0+i | 16 | ??? |
| | DA F8+i | 17 | ??? |
+----+-------------+----+----------------------------------+
8087/80287 NDP Coprocessor Opcodes PGS - Page 5
[Prefixed with 9B = WAIT for 8087]
| WT | OP AM XX XX | OP | Stack References / NDP Control |
+----+-------------+----+----------------------------------+
| | DA C0+i | 10 | ??? |
| | DA C8+i | 11 | ??? |
| | DA D0+i | 12 | ??? |
| | DA D8+i | 13 | ??? |
| | DA E0+i | 14 | ??? |
| | DA E8+i | 15 | ??? |
| | DA F0+i | 16 | ??? |
| | DA F8+i | 17 | ??? |
+----+-------------+----+----------------------------------+
| | DB C0+i | 18 | ??? |
| | DB C8+i | 19 | ??? |
| | DB D0+i | 1A | ??? |
| | DB D8+i | 1B | ??? |
| 9B | DB E0 | 1C | FENI/FNENI [8087 Only] |
| 9B | DB E1 | 1C | FDISI/FNDISI [8087 Only] |
| 9B | DB E2 | 1C | FCLEX/FNCLEX |
| 9B | DB E3 | 1C | FINIT/FNINIT |
| | DB E8+i | 1D | ??? |
| | DB F0+i | 1E | ??? |
| | DB F8+i | 1F | ??? |
+----+-------------+----+----------------------------------+
| | DC C0+i | 20 | FADD ST(i),ST |
| | DC C8+i | 21 | FMUL ST(i),ST |
| | DC D0+i | 22 | FCOM ST(i),ST |
| | DC D8+i | 23 | FCOMP ST(i),ST |
| | DC E0+i | 24 | FSUBR ST(i),ST |
| | DC E8+i | 25 | FSUB ST(i),ST |
| | DC F0+i | 26 | FDIV ST(i),ST |
| | DC F8+i | 27 | FDIVR ST(i),ST |
+----+-------------+----+----------------------------------+
| | DD C0+i | 28 | FFREE ST(i) |
| | DD C8+i | 29 | ??? |
| | DD D0+i | 2A | FST ST(i) |
| | DD D8+i | 2B | FSTP ST(i) |
| | DD E0+i | 2C | ??? |
| | DD E8+i | 2D | ??? |
| | DD F0+i | 2E | ??? |
| | DD F8+i | 2F | ??? |
+----+-------------+----+----------------------------------+
| | DE C0+i | 30 | FADDP ST(i),ST |
| | DE C8+i | 31 | FMULP ST(i),ST |
| | DE D0+i | 32 | ??? |
| | DE D9 | 33 | FCOMPP |
| | DE E0+i | 34 | FSUBRP ST(i),ST |
| | DE E8+i | 35 | FSUBP ST(i),ST |
| | DE F0+i | 36 | FDIVRP ST(i),ST |
| | DE F8+i | 37 | FDIVP ST(i),ST |
+----+-------------+----+----------------------------------+
| | DF C0+i | 38 | ??? |
| | DF C8+i | 39 | ??? |
| | DF D0+i | 3A | ??? |
| | DF D8+i | 3B | ??? |
| | DF E0+i | 3C | ??? |
| | DF E8+i | 3D | ??? |
| | DF F0+i | 3E | ??? |
| | DF F8+i | 3F | ??? |
+----+-------------+----+----------------------------------+
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/