News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

.386C ?

Started by fatty, June 25, 2010, 03:08:57 PM

Previous topic - Next topic

fatty

I know what .386 directive does, and .386P.
So what is .386C (I saw .386r here also)?
There's no .486C, so I guess it enables coprocessor instructions?

FORTRANS

Hi,

   According to the TASM 2.0 Quick Reference Guide, .386C
is the same as the .386 directive.  I assume MASM usage
is the same.

Regards,

Steve

MichaelW

At least for ML 6.14 .386 and .386C set the same processor type.

    .386
    print ".386  "
    print hex$(@Cpu),13,10
    .386C
    print ".386C "
    print hex$(@Cpu),13,10
    .386P
    print ".386P "
    print hex$(@Cpu),13,10


.386  00000D0F
.386C 00000D0F
.386P 00000D8F
eschew obfuscation

clive

.386             Enable Real Mode 80386 Instructions
.386C            Enable Real Mode 80386 Instructions
.386P            Enable All 80386 Instructions
.387             Enable 80387 Instructions
.8086            Enable 8086 Instructions
.8087            Enable 8087 Instructions


I need to dig up the 4.0 or 5.x manuals, but I think the "C" means "constrained", ie limited to a subset of the instructions.
It could be a random act of randomness. Those happen a lot as well.

FORTRANS

Hi,

   I don't have 4.0 or 5.0 manuals, but I do have the 3.0 manual.
It has .286C but not .286.  So constrained would mean no protected
mode instructions?  Anyway, As with STRUC (all versions) and
STRUCT (6.0 onwards) they are probably just synonyms.

Cheers,

Steve

Rockoon

The 286 did have a protected mode.
When C++ compilers can be coerced to emit rcl and rcr, I *might* consider using one.

clive

MASM 4.0

%OUT .186 .286C .286P .287 .8086 .8087 .CREF .ERR .ERR1 .ERR2 .ERRB
.ERRDEF .ERRDIF .ERRE .ERRIDN .ERRNB .ERRNDEF .ERRNZ .LALL .LFCOND
.LIST .RADIX .SALL .SFCOND .TFCOND .TYPE .XALL .XCREF .XLIST AAA AAD
AAM AAS ABS ADC ADD AND AND ARPL ASSUME AT BOUND BYTE BYTE CALL CBW
CLC CLD CLI CLTS CMC CMP CMPS CMPSB CMPSW COMMENT COMMON CWD DAA DAS
DB DB DD DD DEC DIV DQ DQ DT DT DUP DW DW DWORD ELSE END ENDIF ENDM
ENDP ENDS ENTER EQ EQU ESC EVEN EXITM EXTRN F2XM1 FABS FADD FADDP
FAR FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FDECSTP FDISI FDIV FDIVP
FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD FIMUL
FINCSTP FINIT FIST FISTP FISUB FISUBR FLD FLD1 FLDCW FLDENV FLDL2E
FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX FNDISI FNENI FNINIT
FNOP FNSAVE FNSTCW FNSTENV FNSTSW FPATAN FPREM FPTAN FRNDINT FRSTOR
FSAVE FSCALE FSETPM FSQRT FST FSTCW FSTENV FSTP FSTSW FSUB FSUBP
FSUBR FSUBRP FTST FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1 GE GROUP GT
HIGH HLT IDIV IF IF1 IF2 IFB IFDEF IFDIF IFE IFIDN IFNB IFNDEF IMUL
IN INC INCLUDE INS INSB INSW INT INTO IRET IRP IRPC JA JAE JB JBE JC
JCXZ JE JG JGE JL JLE JMP JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE
JNO JNP JNS JNZ JO JP JPE JPO JS JZ LABEL LAHF LAR LDS LE LEA LEAVE
LENGTH LES LGDT LIDT LLDT LMSW LOCAL LOCK LODS LODSB LODSW LOOP LOOPE
LOOPNE LOOPNZ LOOPZ LOW LSL LT LTR MACRO MASK MEMORY MOD MOV MOVS MOVSB
MOVSW MUL NAME NE NEAR NEG NOP NOT NOT NOTHING OFFSET OR OR ORG OUT OUTS
OUTSB OUTSW PAGE PAGE PARA POP POPA POPF PROC PTR PUBLIC PUBLIC PURGE
PUSH PUSHA PUSHF QWORD RCL RCR RECORD REP REPE REPNE REPNZ REPT REPZ RET
ROL ROR SAHF SAL SAR SBB SCAS SCASB SCASW SEG SEGMENT SGDT SHL SHL SHORT
SHR SHR SIDT SIZE SLDT SMSW STACK STC STD STI STOS STOSB STOSW STR STRUC
SUB SUBTTL TBYTE TEST THIS TITLE TYPE VERR VERW WAIT WIDTH WORD WORD
XCHG XLAT XLATB XOR XOR


MASM 5.1

%OUT .186 .286 .286C .286P .287 .386 .386C .386P .387 .8086 .8087
.ALPHA .CODE .CONST .CREF .DATA .DATA? .ERR .ERR1 .ERR2 .ERRB .ERRDEF
.ERRDIF .ERRDIFI .ERRE .ERRIDN .ERRIDNI .ERRNB .ERRNDEF .ERRNZ .FARDATA
.FARDATA? .LALL .LFCOND .LIST .MODEL .MSFLOAT .RADIX .SALL .SEQ .SFCOND
.STACK .TFCOND .TYPE .XALL .XCREF .XLIST AAA AAD AAM AAS ADC ADD ALIGN
AND AND ARPL ASSUME AT BOUND BSF BSR BT BTC BTR BTS BYTE BYTE CALL
CATSTR CBW CDQ CLC CLD CLI CLTS CMC CMP CMPS CMPSB CMPSD CMPSW COMM
COMMENT COMMON CWD CWDE DAA DAS DB DB DD DD DEC DF DF DIV DOSSEG
DQ DQ DT DT DUP DW DW DWORD DWORD ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB
ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE ELSEIFIDN ELSEIFIDNI ELSEIFNB
ELSEIFNDEF END ENDIF ENDM ENDP ENDS ENTER EQ EQU ESC EVEN EXITM EXTRN
F2XM1 FABS FADD FADDP FAR FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FCOS
FDECSTP FDISI FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP
FIDIV FIDIVR FILD FIMUL FINCSTP FINIT FIST FISTP FISUB FISUBR FLD FLD1
FLDCW FLDENV FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX
FNDISI FNENI FNINIT FNOP FNRSTOR FNSAVE FNSTCW FNSTENV FNSTSW FPATAN
FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FSCALE FSETPM FSIN FSINCOS
FSQRT FST FSTCW FSTENV FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM
FUCOMP FUCOMPP FWAIT FWORD FXAM FXCH FXTRACT FYL2X FYL2XP1 GE GROUP GT
HIGH HLT IBTS IDIV IF IF1 IF2 IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI
IFNB IFNDEF IMUL IN INC INCLUDE INCLUDELIB INS INSB INSD INSTR INSW
INT INTO IRET IRETD IRP IRPC JA JAE JB JBE JC JCXZ JE JECXZ JG JGE JL
JLE JMP JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNP JNS JNZ JO
JP JPE JPO JS JZ LABEL LAHF LAR LDS LE LEA LEAVE LENGTH LES LFS LGDT
LGS LIDT LLDT LMSW LOCAL LOCK LODS LODSB LODSD LODSW LOOP LOOPE LOOPNE
LOOPNZ LOOPZ LOW LSL LSS LT LTR MACRO MASK MEMORY MOD MOV MOVS MOVSB
MOVSD MOVSW MOVSX MOVZX MUL NAME NE NEAR NEG NOP NOT NOT NOTHING OFFSET
OR OR ORG OUT OUTS OUTSB OUTSD OUTSW PAGE PAGE PARA POP POPA POPAD POPF
POPFD PROC PROC PTR PUBLIC PUBLIC PURGE PUSH PUSHA PUSHAD PUSHF PUSHFD
QWORD RCL RCR RECORD REP REPE REPNE REPNZ REPT REPZ RET RETF RETN ROL
ROR SAHF SAL SAR SBB SCAS SCASB SCASD SCASW SEG SEGMENT SETA SETAE SETB
SETBE SETC SETE SETG SETGE SETL SETLE SETNA SETNAE SETNB SETNBE SETNC
SETNE SETNG SETNGE SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE
SETPO SETS SETZ SGDT SHL SHL SHLD SHORT SHR SHR SHRD SIDT SIZE SIZESTR
SLDT SMSW STACK STC STD STI STOS STOSB STOSD STOSW STR STRUC SUB SUBSTR
SUBTTL TBYTE TEST THIS TITLE TYPE USE16 USE32 VERR VERW WAIT WIDTH WORD
WORD XBTS XCHG XLAT XLATB XOR XOR
It could be a random act of randomness. Those happen a lot as well.

oex

We are all of us insane, just to varying degrees and intelligently balanced through networking

http://www.hereford.tv

FORTRANS

Hi Clive,

   How did you get or generate those lists?  I would like to
do that for earlier versions.

Regards,

Steve N.

clive

Quote from: FORTRANS on June 27, 2010, 05:04:27 PM
   How did you get or generate those lists?  I would like to do that for earlier versions.


I did these with some manual labour to clean/sort some strings cut with ZTREE's Gather function. Looking at 1.25 and 1.27, there seems to a table/index for the first character, and my recollection with 6.xx was that it used a tree decoding/parsing method.
It could be a random act of randomness. Those happen a lot as well.

FORTRANS

Hi,

   Same with Version 3.0 as with your 1.x unfortunately.

Thanks,

Steve N.