2015-02-06 3 views
2

나는 이것을 여러 번 시도해 보았지만 잘 작동하는 작은 C 버전의 디스 어셈블리를 보았지만이 작은 메모리 블록을 할당하려고 시도하면 '9'가 반환됩니까? 누군가 내가 뭘 잘못하고 있는지 볼 수 있습니까?mmap OSX에서 x86_64에서

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 OS X –

답변

3

OK, 나는 문제를 발견하고는 시스템 콜을 사용하는 경우 RCX보다 R10 않고 ​​통과 할 필요가 있어요! C에서 디스 어셈블은 syscall을 직접 호출하지 않기 때문에 rcx를 사용합니다!

다른 사람들에게 도움이되기를 바랍니다.

크리스