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.
|