INLINE ASSEMBLY LANGUAGE
VectorC allows inline assembly language in 2 formats:
__asm instruction
or
__asm {
instructions
}
You can refer to variable and function names within the assembly code. Using
assembly language in a function forces a stack frame with EBP to be used. To define
an assembly language function without generating code to create and remove a stack
frame, use __declspec (naked).
Operators supported in expressions
| + - * / |
arithmetic |
| offset |
the address of a variable |
| [] |
the value at an address |
| dword |
32-bit |
| qword |
64-bit |
| word |
16-bit |
| byte |
8-bit |
| t-byte |
80-bit |
| xmmword |
128-bit |
| short |
short branch offset |
| long |
long branch offset |
| ptr |
|
Directives supported
| .286, .286p, .87, .386, .386p, .486, .486p |
Ignored - no processor before pentium is supported by VectorC |
| .586, .586p |
set target to Pentium |
| .mmx |
allow MMX instructions |
| .686, .686p |
set target to Pentium Pro |
| .pii |
set target to Pentium II |
| .piii |
set target to Pentium III |
| .p4 |
set target to Pentium 4 (Willamette) - preliminary support only |
| .k6 |
set target to K6 |
| .k62 |
set target to K6-2 |
| .3dnow |
allow 3DNow! instructions |
| .xmm |
allow SSE instructions |
| .athlon |
set target to Athlon |
| .align |
align code/data |
Instructions supported
VectorC supports the full set of instructions of all the processors it compiles
for.
|