⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wasm.gml

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 GML
📖 第 1 页 / 共 3 页
字号:
~.listif      .listmacro   .listmacroall lldt         lmsw         local
lock         lods         lodsb         lodsd        lodsw        loop
loopd        loope        looped        loopew       loopne       loopned
loopnew      loopnz       loopnzd       loopnzw      loopw        loopz
loopzd       loopzw       low           lowword      lroffset     lsl
lss          lt           ltr           macro        mask         maskmovdqu
maskmovq     maxpd        maxps         maxsd        maxss        medium
memory       mfence       minpd         minps        minsd        minss
mm0          mm1          mm2           mm3          mm4          mm5
mm6          mm7          .mmx          mod          .model       monitor
mov          movapd       movaps        movd         movddup      movdq2q
movdqa       movdqu       movhlps       movhpd       movhps       movlhps
movlpd       movlps       movmskpd      movmskps     movntdq      movnti
movntpd      movntps      movntq        movq         movq2dq      movs
movsb        movsd        movshdup      movsldup     movss        movsw
movsx        movupd       movups        movzx        mul          mulpd
mulps        mulsd        mulss         mwait        name         ne
near         nearstack    neg           .no87        .nocref      .nolist
nop          not          nothing       offset       opattr       option
or           org          orpd          orps         os_dos       os_os2
out          outs         outsb         outsd        outsw        oword
packssdw     packsswb     packuswb      paddb        paddd        paddq
paddsb       paddsw       paddusb       paddusw      paddw        page
pand         pandn        para          pascal       pause        pavgb
pavgusb      pavgw        pcmpeqb       pcmpeqd      pcmpeqw      pcmpgtb
pcmpgtd      pcmpgtw      pextrw        pf2id        pf2iw        pfacc
.millust break
pfadd        pfcmpeq      pfcmpge       pfcmpgt      pfmax        pfmin
pfmul        pfnacc       pfpnacc       pfrcp        pfrcpit1     pfrcpit2
pfrsqit1     pfrsqrt      pfsub         pfsubr       pi2fd        pi2fw
pinsrw       pmaddwd      pmaxsw        pmaxub       pminsw       pminub
pmovmskb     pmulhrw      pmulhuw       pmulhw       pmullw       pmuludq
pop          popa         popad         popcontext   popf         popfd
por          prefetch     prefetchnta   prefetcht0   prefetcht1   prefetcht2
prefetchw    private      proc          proto        psadbw       pshufd
pshufhw      pshuflw      pshufw        pslld        pslldq       psllq
psllw        psrad        psraw         psrld        psrldq       psrlq
psrlw        psubb        psubd         psubq        psubsb       psubsw
psubusb      psubusw      psubw         pswapd       ptr          public
punpckhbw    punpckhdq    punpckhqdq    punpckhwd    punpcklbw    punpckldq
punpcklqdq   punpcklwd    purge         push         pusha        pushad
pushcontext  pushd        pushf         pushfd       pushw        pword
pxor         qword        .radix        rcl          rcpps        rcpss
rcr          rdmsr        rdpmc         rdtsc        readonly     record
rep          repe         .repeat       repeat       repne        repnz
rept         repz         ret           retd         retf         retfd
retn         rol          ror           rsm          rsqrtps      rsqrtss
sahf         sal          .sall         sar          sbb          sbyte
scas         scasb        scasd         scasw        sdword       seg
segment      .seq         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         .sfcond       sfence       sgdt         shl
shld         short        shr           shrd         shufpd       shufps
si           sidt         size          sizeof       sldt         small
smsw         sp           sqrtpd        sqrtps       sqrtsd       sqrtss
ss           st           .stack        .startup     stc          std
stdcall      sti          stmxcsr       stos         stosb        stosd
stosw        str          struc         struct       sub          subpd
subps        subsd        subss         subtitle     subttl       sword
syscall      sysenter     sysexit       tbyte        test         textequ
.millust break
~.tfcond      this         tiny          title        tr3          tr4
tr5          tr6          tr7           typedef      ucomisd      ucomiss
union        unpckhpd     unpckhps      unpcklpd     unpcklps     .until
use16        use32        uses          vararg       verr         verw
wait         watcom_c     wbinvd        .while       width        word
wrmsr        xadd         xchg          .xcref       xlat         xlatb
~.xlist       .xmm         xmm0          xmm1         .xmm2        xmm2
~.xmm3        xmm3         xmm4          xmm5         xmm6         xmm7
xor          xorpd        xorps         
.millust end
.*
.section Unsupported Directives
.*
.np
Other assemblers support directives that this assembler does not.
The following is a list of directives that are ignored by the
&asmname. (use of these directives results in a warning message).
.ix '.alpha'
.ix '.cref'
.ix '.lfcond'
.ix '.list'
.ix '.listall'
.ix '.listif'
.ix '.listmacro'
.ix '.listmacroall'
.ix '.nocref'
.ix '.nolist'
.ix 'page'
.ix '.sall'
.ix '.seq'
.ix '.sfcond'
.ix 'subtitle'
.ix 'subttl'
.ix '.tfcond'
.ix 'title'
.ix '.xcref'
.ix '.xlist'
.millust begin
~.alpha         .cref          .lfcond        .list
~.listall       .listif        .listmacro     .listmacroall
~.nocref        .nolist        page           .sall
~.seq           .sfcond        subtitle       subttl
~.tfcond        title          .xcref         .xlist
.millust end
.np
The following is a list of directives that are flagged by the
&asmname. (use of these directives results in an error message).
.ix 'addr'
.ix '.break'
.ix 'casemap'
.ix 'catstr'
.ix '.continue'
.ix 'echo'
.ix '.else'
.ix 'endmacro'
.ix '.endif'
.ix '.endw'
.ix '.exit'
.ix 'high'
.ix 'highword'
.ix '.if'
.ix 'invoke'
.ix 'low'
.ix 'lowword'
.ix 'lroffset'
.ix 'mask'
.ix 'opattr'
.ix 'option'
.ix 'popcontext'
.ix 'proto'
.ix 'purge'
.ix 'pushcontext'
.ix '.radix'
.ix 'record'
.ix '.repeat'
.ix '.startup'
.ix 'this'
.ix 'typedef'
.ix 'union'
.ix '.until'
.ix '.while'
.ix 'width'
.millust begin
addr           .break         casemap        catstr
~.continue      echo           .else          endmacro
~.endif         .endw          .exit          high
highword       .if            invoke         low
lowword        lroffset       mask           opattr
option         popcontext     proto          purge
pushcontext    .radix         record         .repeat
~.startup       this           typedef        union
~.until         .while         width
.millust end
.*
.section &asmname Specific
.*
.np
There are a few specific features in &asmname.
.np
.beglevel
.section Naming convention
.millust begin
                 Procedure   Variable
Convention         Name        Name
---------------  ----------  ---------
C                   '*'         '*'
C (MASM)           '_*'        '_*'    see note 1
WATCOM_C           '*_'        '_*'
SYSCALL             '*'         '*'
STDCALL           '_*@nn'      '_*'
STDCALL            '_*'        '_*'    see note 2
STDCALL             '*'         '*'    see note 3
BASIC               '^'         '^'
FORTRAN             '^'         '^'
PASCAL              '^'         '^'
.millust end
.autonote Notes:
.note
WASM uses MASM compatible names when -zcm command line option is used.
.note
In STDCALL procedures name 'nn' is overall parametrs size in bytes.
'@nn' is suppressed when -zz command line option is used (WATCOM 10.0 compatibility).
.note
STDCALL symbols mangling is suppressed by -zzo command line option (WASM backward compatible).
.endnote
.np
.section &company "C" name mangler
.millust begin
Command line     Procedure     Others
  option           Name        Names
---------------  ----------  ---------
0,1,2              '*_'        '_*'
3,4,5,6 with r     '*_'        '_*'
3,4,5,6 with s      '*'        '*'
.millust end
.np
.section Calling convention
.millust begin
                      Parameters    Parameters   Cleanup caller
Convention   Vararg    passed by       order         stack
-----------  ------  ------------  ------------- --------------
C             yes      stack       right to left    no
WATCOM_C      yes      registers   right to left    no
SYSCALL       yes      stack       right to left    no
STDCALL       yes      stack       right to left    yes see note 1
BASIC         no       stack       left to right    yes
FORTRAN       no       stack       left to right    yes
PASCAL        no       stack       left to right    yes
.millust end
.autonote Notes:
.note
For STDCALL procedures WASM automaticaly cleanup caller stack,
except case when vararg parameter is used.
.endnote
.endlevel
.*
.section &asmname. Diagnostic Messages
.*
.dm errnote begin
.   .se *ctxn=&'substr(&*,1,&'pos(' ',&*)-1)
.   .se *ttl$=&'substr(&*,&'pos(' ',&*)+1)
.   .note &*ctxn &*ttl$
.*  .us &*ttl$
.dm errnote end
.*
.begnote
.*
.errnote 001 Size doesn't match with previous definition
.errnote 002 Invalid instruction with current CPU setting
.errnote 003 LOCK prefix is not allowed on this instruction
.errnote 004 REP prefix is not allowed on this instruction
.errnote 005 Invalid memory pointer
.errnote 006 Cannot use 386 addressing mode with current CPU setting
.errnote 007 Too many base registers
.errnote 008 Invalid index register
.errnote 009 Scale factor must be 1, 2, 4 or 8
.errnote 010 invalid addressing mode with current CPU setting
.errnote 011 ESP cannot be used as index
.errnote 012 Too many base/index registers
.errnote 013 Memory offset cannot reference to more than one label
.errnote 014 Offset must be relocatable
.errnote 015 Memory offset expected
.errnote 016 Invalid indirect memory operand
.errnote 017 Cannot mix 16 and 32-bit registers
.errnote 018 CPU type already set
.errnote 019 Unknown directive
.errnote 020 Expecting comma
.errnote 021 Expecting number
.errnote 022 Invalid label definition
.errnote 023 Invalid use of SHORT, NEAR, FAR operator
.errnote 024 No memory
.errnote 025 Cannot use 386 segment register with current CPU setting
.errnote 026 POP CS is not allowed
.errnote 027 Cannot use 386 register with current CPU setting
.errnote 028 Only MOV can use special register
.errnote 029 Cannot use TR3, TR4, TR5 in current CPU setting
.errnote 030 Cannot use SHORT with CALL
.errnote 031 Only SHORT displacement is allowed
.errnote 032 Syntax error
.errnote 033 Prefix must be followed by an instruction
.errnote 034 No size given before 'PTR' operator
.errnote 035 Invalid IMUL format
.errnote 036 Invalid SHLD/SHRD format
.errnote 037 Too many commas
.errnote 038 Syntax error: Unexpected colon
.errnote 039 Operands must be the same size
.errnote 040 Invalid instruction operands
.errnote 041 Immediate constant too large
.errnote 042 Can not use short or near modifiers with this instruction
.errnote 043 Jump out of range
.errnote 044 Displacement cannot be larger than 32k
.errnote 045 Initializer value too large
.errnote 046 Symbol already defined
.errnote 047 Immediate data too large
.errnote 048 Immediate data out of range
.errnote 049 Can not transfer control to stack symbol
.errnote 050 Offset cannot be smaller than WORD size
.errnote 051 Can not take offset of stack symbol
.errnote 052 Can not take segment of stack symbol
.errnote 053 Segment too large
.errnote 054 Offset cannot be larger than 32k
.errnote 055 Operand 2 too big
.errnote 056 Operand 1 too small
.errnote 057 Too many arithmetic operators
.errnote 058 Too many open square brackets
.errnote 059 Too many close square brackets
.errnote 060 Too many open brackets
.errnote 061 Too many close brackets
.errnote 062 Invalid number digit
.errnote 063 Assembler Code is too long
.errnote 064 Brackets are not balanced
.errnote 065 Operator is expected
.errnote 066 Operand is expected
.errnote 067 Too many tokens in a line
.errnote 068 Bracket is expected
.errnote 069 Illegal use of register
.errnote 070 Illegal use of label
.errnote 071 Invalid operand in addition
.errnote 072 Invalid operand in subtraction
.errnote 073 One operand must be constant
.errnote 074 Constant operand is expected
.errnote 075 A constant operand is expected in addition
.errnote 076 A constant operand is expected in subtraction
.errnote 077 A constant operand is expected in multiplication
.errnote 078 A constant operand is expected in division
.errnote 079 A constant operand is expected after a positive sign
.errnote 080 A constant operand is expected after a negative sign
.errnote 081 Label is not defined
.errnote 082 More than one override
.errnote 083 Label is expected
.errnote 084 Only segment or group label is allowed
.errnote 085 Only register or label is expected in override
.errnote 086 Unexpected end of file
.errnote 087 Label is too long
.errnote 088 This feature has not been implemented yet
.errnote 089 Internal Error #1
.errnote 090 Can not take offset of group
.errnote 091 Can not take offset of segment
.errnote 092 Invalid character found
.errnote 093 Invalid operand size for instruction
.errnote 094 This instruction is not supported
.errnote 095 size not specified -- BYTE PTR is assumed
.errnote 096 size not specified -- WORD PTR is assumed
.errnote 097 size not specified -- DWORD PTR is assumed
.*
.errnote 500 Segment parameter is defined already
.errnote 501 Model parameter is defined already
.errnote 502 Syntax error in segment definition
.errnote 503 'AT' is not supported in segment definition
.errnote 504 Segment definition is changed
.errnote 505 Lname is too long
.errnote 506 Block nesting error
.errnote 507 Ends a segment which is not opened
.errnote 508 Segment option is undefined
.errnote 509 Model option is undefined
.errnote 510 No segment is currently opened
.errnote 511 Lname is used already
.errnote 512 Segment is not defined
.errnote 513 Public is not defined
.errnote 514 Colon is expected
.errnote 515 A token is expected after colon
.errnote 516 Invalid qualified type
.errnote 517 Qualified type is expected
.errnote 518 External definition different from previous one
.errnote 519 Memory model is not found in .MODEL
.errnote 520 Cannot open include file
.errnote 521 Name is used already
.errnote 522 Library name is missing
.errnote 523 Segment name is missing
.errnote 524 Group name is missing
.errnote 525 Data emitted with no segment
.errnote 526 Seglocation is expected
.errnote 527 Invalid register
.errnote 528 Cannot address with assumed register
.errnote 529 Invalid start address
.errnote 530 Label is already defined
.errnote 531 Token is too long
.errnote 532 The line is too long after expansion
.errnote 533 A label is expected after colon
.errnote 534 Must be associated with code
.errnote 535 Procedure must have a name
.errnote 536 Procedure is alreadly defined
.errnote 537 Language type must be specified
.errnote 538 End of procedure is not found
.errnote 539 Local variable must immediately follow PROC or MACRO statement
.errnote 540 Extra character found
.errnote 541 Cannot nest procedures
.errnote 542 No procedure is currently defined
.errnote 543 Procedure name does not match
.errnote 544 Vararg requires C calling convention
.errnote 545 Model declared already
.errnote 546 Model is not declared
.errnote 547 Backquote expected
.errnote 548 COMMENT delimiter expected
.errnote 549 End directive required at end of file
.errnote 550 Nesting level too deep
.errnote 551 Symbol not defined
.errnote 552 Insert Stupid warning #1 here
.errnote 553 Insert Stupid warning #2 here
.errnote 554 Spaces not allowed in command line options
.errnote 555 Error:
.errnote 556 Source File
.errnote 557 No filename specified.
.errnote 558 Out of Memory
.errnote 559 Cannot Open File -
.errnote 560 Cannot Close File -
.errnote 561 Cannot Get Start of Source File -
.errnote 562 Cannot Set to Start of Source File -
.errnote 563 Command Line Contains More Than 1 File To Assemble
.errnote 564 include path %s.
.errnote 565 Unknown option %s. Use /? for list of options.
.errnote 566 read more command line from %s.
.errnote 567 Internal error in %s(%u)
.errnote 568 OBJECT WRITE ERROR !!
.errnote 569 NO LOR PHARLAP !!
.errnote 570 Parameter Required
.errnote 571 Expecting closing square bracket
.errnote 572 Expecting file name
.errnote 573 Floating point instruction not allowed with /fpc
.errnote 574 Too many errors
.errnote 575 Build target not recognised
.errnote 576 Public constants should be numeric
.errnote 577 Expecting symbol
.errnote 578 Do not mix simplified and full segment definitions
.errnote 579 Parms passed in multiple registers must be accessed separately, use %s
.errnote 580 Ten byte variables not supported in register calling convention
.errnote 581 Parameter type not recognised
.errnote 582 forced error:
.errnote 583 forced error: Value not equal to 0 : %d
.errnote 584 forced error: Value equal to 0: %d
.errnote 585 forced error: symbol defined: %s
.errnote 586 forced error: symbol not defined: %s
.errnote 587 forced error: string blank : <%s>
.errnote 588 forced error: string not blank : <%s>
.errnote 589 forced error: strings not equal : <%s> : <%s>
.errnote 590 forced error: strings equal : <%s> : <%s>
.errnote 591 included by file %s(%d)
.errnote 592 macro called from file %s(%d)
.errnote 593 Symbol %s not defined
.errnote 594 Extending jump
.errnote 595 Ignoring inapplicable directive
.errnote 596 Unknown symbol class '%s'
.errnote 597 Symbol class for '%s' already established
.errnote 598 number must be a power of 2
.errnote 599 alignment request greater than segment alignment
.errnote 600 '%s' is already defined
.errnote 601 %u unclosed conditional directive(s) detected
.*
.endnote

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -