NASM - The Netwide Assembler
NASM Forum => Example Code => Topic started by: nobody on June 21, 2008, 02:40:25 PM
-
I'm a newbie in assembly programming, i have read intel 64 and ia-32 software developers manual, and think 64-bit mode is a much better environment for assembly programming, so i wonder is there any example programs to help me start 64-bit assembly coding with nasm? thanks!
-
I have no experience with 64-bit programming. Seems like needless overkill, unless you're programming database apps for the Human Genome Project, or so. In fact, it seems like "another nail in the coffin" of assembly language to me. So I'm curious why you think it's a better environment for assembly language?
This is for 64-bit Linux (thanks to Chuck Crayne!). Only one I've got. I suppose MS has got an example for 64-bit Windows (if they've got it working). Completely different ABI, I understand. Keith, you got anything for that? Or anybody?
Let us know how this works out for ya (especially if it doesn't!).
Best,
Frank
section .data
string1 db "Hello World!",10,0
section .text
global _start
_start:
; calculate the length of string
mov rdi, string1
mov rcx, -1
xor al,al
cld
repnz scasb
; place the length of the string in RDX
mov rdx, -2
sub rdx, rcx
; print the string using write() system call
mov rsi, string1
push 0x1
pop rax
mov rdi,rax
syscall
; exit from the application here
xor rdi,rdi
push 0x3c
pop rax
syscall
-
> I have no experience with 64-bit programming.
Me neither ;-)
> Seems like needless overkill, unless you're programming database
> apps for the Human Genome Project, or so.
Funny ... why did you add it into NASM then ? Only because FASM, YASM, GAS, and MASM have it, and without it NASM would be "obsolete" ?
> seems like "another nail in the coffin" of assembly language to me.
To me also :-|
> So I'm curious why you think it's a better environment for assembly language?
IMHO NO ... DOS (16-bit and 32-bit) is better ;-)
> example for 64-bit Windows (if they've got it working). Completely
useless ... nevertheless, Vista most likely will be the last one still supplying a 32-bit version ... in 20 years, some freaks will run obsolete 32-bit Vista on single-core P4 CPU's ... while mainstream will have 256-bit Windows and 256-bit Linuxes and 256-core CPU's ... hogging several 100 TiB's :-D
-
Well, you still need assembly on 64-bit machines, but typically only for selected routines.
However, if you're processing that Human Genome Project database, you may very well want a hand-optimized search code using the latest AVX or SSE5 instructions.