hello.ic
, hello.s
fib.ic
,
fib.s
objects.ic
,
objects.s
eax
register (not on stack) eax, ecx, edx
ebx, esi, edi, ebp, esp
nasm
assembler documentation; uses
Intel syntax)
AT&T | Intel | |
Order of operands | op a, b means b = a op b (second operand is destination) |
op a, b means a = a op b (first operand is destination) |
Memory addressing | disp(base,offset,scale) | [base + offset*scale + disp] |
Size of memory operands | instruction suffixes (b,w,l) (e.g., movb, movw, movl) |
operand prefixes (byte ptr, word ptr, dword ptr) |
Registers | %eax, %ebx, etc. | eax, ebx, etc. |
Constants | $4, $foo, etc | 4, foo, etc |
In Windows under the Cygwin environment, the assembling and linking commands for an assembly file "
file.s
" are:
as -o file.o file.s
ld -o file.exe file.o /lib/crt0.o libic.a -lcygwin -lkernel32The library file
libic.a
for Windows/Cygwin is a collection of .o files bundled together, containing the code for all of the library functions defined in the language specification, along with run-time support for garbage collection. Source code for libic.c and gc.h is available.The IC library is also available for Linux:
libic-linux.a
.
The assembling and linking commands for "file.s
" in Linux are:
as -o file.o file.s
ld -o file file.o /usr/lib/crt1.o /usr/lib/crti.o libic-linux.a -lc /usr/lib/crtn.o -dynamic /lib/ld-linux.so.2