Skip to content

Instantly share code, notes, and snippets.

@Chiggins
Created March 14, 2014 21:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Chiggins/9557585 to your computer and use it in GitHub Desktop.
Save Chiggins/9557585 to your computer and use it in GitHub Desktop.
BITS 64
[SECTION .text]
global _start
_start:
; sys_write
xor rax, rax
mov rax, 1 ; syscall
mov rbx, 1 ; to screen
mov rcx, text ; text
mov rdx, length ; length of test
syscall
; sys_exit(int err_code)
xor rax, rax
mov al, 60 ; syscall
xor rbx, rbx
syscall
[SECTION .data]
text: db 'Register syscall testing'
length: equ $-text
@Chiggins
Copy link
Author

$ nasm -f elf64 RegisterTest.nasm -o RegisterTest.o
$ ld RegisterTest.o -o RegisterTest
$ objdump -M intel -D RegisterTest

RegisterTest:     file format elf64-x86-64


Disassembly of section .text:

00000000004000b0 <_start>:
  4000b0:   48 31 c0                xor    rax,rax
  4000b3:   b8 01 00 00 00          mov    eax,0x1
  4000b8:   bb 01 00 00 00          mov    ebx,0x1
  4000bd:   48 b9 d8 00 60 00 00    movabs rcx,0x6000d8
  4000c4:   00 00 00 
  4000c7:   ba 18 00 00 00          mov    edx,0x18
  4000cc:   0f 05                   syscall 
  4000ce:   48 31 c0                xor    rax,rax
  4000d1:   b0 3c                   mov    al,0x3c
  4000d3:   48 31 db                xor    rbx,rbx
  4000d6:   0f 05                   syscall 

Disassembly of section .data:

00000000006000d8 <text>:
  6000d8:   52                      push   rdx
  6000d9:   65 67 69 73 74 65 72    imul   esi,DWORD PTR gs:[ebx+0x74],0x73207265
  6000e0:   20 73 
  6000e2:   79 73                   jns    600157 <__bss_start+0x67>
  6000e4:   63 61 6c                movsxd esp,DWORD PTR [rcx+0x6c]
  6000e7:   6c                      ins    BYTE PTR es:[rdi],dx
  6000e8:   20 74 65 73             and    BYTE PTR [rbp+riz*2+0x73],dh
  6000ec:   74 69                   je     600157 <__bss_start+0x67>
  6000ee:   6e                      outs   dx,BYTE PTR ds:[rsi]
  6000ef:   67                      addr32

$ strace ./RegisterTest 
execve("./RegisterTest", ["./RegisterTest"], [/* 38 vars */]) = 0
write(0, NULL, 24)                      = -1 EFAULT (Bad address)
_exit(0)                                = ?
+++ exited with 0 +++

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment