linux汇编有什么区别,osx – 在mac上的汇编和linux上的汇编有什么区别?

我一直在尝试熟悉mac上的汇编,从我可以看出,文档真的很稀少,大多数关于这个主题的书都是针对

windows或

linux的.我以为我可以很容易地从linux转换到mac,但是这个(linux)

.file "simple.c"

.text

.globl simple

.type simple, @function

simple:

pushl %ebp

movl %esp, %ebp

movl 8(%ebp), %edx

movl 12(%ebp), %eax

addl (%edx), %eax

movl %eax, (%edx)

popl %ebp

ret

.size simple, .-simple

.ident "GCC: (Ubuntu 4.3.2-1ubuntu11) 4.3.2"

.section .note.GNU-stack,"",@progbits

看起来好像不一样(mac)

.section __TEXT,__text,regular,pure_instructions

.globl _simple

.align 4, 0x90

_simple: ## @simple

.cfi_startproc

## BB#0:

pushq %rbp

Ltmp2:

.cfi_def_cfa_offset 16

Ltmp3:

.cfi_offset %rbp, -16

movq %rsp, %rbp

Ltmp4:

.cfi_def_cfa_register %rbp

addl (%rdi), %esi

movl %esi, (%rdi)

movl %esi, %eax

popq %rbp

ret

.cfi_endproc

.subsections_via_symbols

“正常”(缺乏更好的词)指令和寄存器,如pushq%rbp不要担心我.但是,像“cfi_startproc”和“Ltmp2”这样的“奇怪的”就是这些机器指令的中间没有任何意义.

我不知道去哪里找出这些是什么,它们是什么意思.我要拉出我的头发,因为我一直试图找到一个好的资源为初学者几个月.有什么建议么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值