2015-02-06 5 views
2

Я пробовал это снова и снова и смотрел на разборку небольшой версии C, которая отлично работает, но попытка выделить этот небольшой блок памяти продолжает возвращать «9»? Может кто-нибудь увидеть, что я делаю неправильно, спасибо.mmap от x86_64 по OSX

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 

С уважением

Chris

+0

[Вот некоторая помощь] (https://filippo.io/making-system-calls-from-assembly-in-mac-os-x/), чтобы начать SYS звонок от сборки на Mac OS X. –

ответ

3

ОК, я нашел эту проблему, и это, что при использовании системного вызова вам необходимо пройти r10, а не RCX! С C разборка использует rcx, потому что она не вызывает syscall напрямую!

Надеюсь, это поможет другим.

Chris

Смежные вопросы