I have written the following assembly code as prescribed by my text book in the intel 64 bit syntax
Section .text
global _short
_start:
        jmp short    Gotocall
shellcode:
        pop             rcx
        xor             eax,eax
        mov byte        [rcx+8], al
        lea             rdi, [rax]
        mov long        [rcx+8], rdi
        mov long        [rcx+12], eax
        mov byte        al, 0x3b
        mov             rsi, rax
        lea             rdi, [esi+8]
        lea             edx, [esi+12]
        int             0x80
Gotocall:
        call            shellcode
        db              '/bin/shJAAAAKKKK'
but i get a nasm error in line 10 like this asmshell.asm:10: error: mismatch in operand sizes Can anybody tell me what mistake is their in my code.
And can anybody please tell me some good references to the 64 bit intel assembly instructions.
 
     
    