2015-02-06 47 views
2

我已經試過了這個反覆,看着反彙編工作正常的小C版本,但試圖分配這個小塊的內存不斷返回'9'?有人可以看到我做錯了什麼,謝謝。OSX上的x86_64上的mmap

movl $0x0, %edi 
movl $0x4000, %esi   ## imm = 0x4000 
movl $0x3, %edx 
movl $0x1002, %ecx   ## imm = 0x1002 
movq $-0x1, %r8 
movl $0x0, %r9d 
movl $0x20000c5, %eax  ## imm = 0x20000C5 
syscall 

問候

克里斯

+0

[這裏有一些幫助(https://filippo.io/making-system-calls-from-assembly-in-mac-os-x/)上手SYS呼籲從裝配在Mac OS X. – 2015-02-07 14:18:14

回答

3

OK,我發現這個問題,那就是,如果使用系統調用需要傳遞R10,而不是RCX!從C反彙編使用rcx,因爲它不直接調用系統調用!

希望這可以幫助別人。

克里斯