首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mac上汇编语言中的纯函数

问Mac上汇编语言中的纯函数
EN

Stack Overflow用户
提问于 2011-11-30 02:47:45
回答 1查看 781关注 0票数 2

Fibonacci sequence是一个很棒的'hello-world‘应用,当你开始学习一门新语言的时候。我想做一个纯粹的机器程序来执行,而不会在中间VM上浪费任何资源,不需要不必要的内存管理等。

最好的解决方案是写下汇编代码并将其编译成本机二进制文件。但是我从来没有用过汇编语言,那么从哪里开始最好呢?

我使用的是iMac 64位双核x86系统。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-30 03:49:08

使用汇编语言很有趣,也是学习更多内部机制的好方法。我不确定您是否在使用objective-c计算斐波那契数列时浪费了那么多资源,但也许您可以证明我是错的。

为了学习汇编,从一些非常简单的东西开始,然后添加更多的函数以及输入和输出,以理解系统调用和函数调用序列,然后变得更有创造性。

一定要记录每一行代码,因为它很难维护汇编。

对于Mac OS X

创建一个名为simple.asm的文件:-

代码语言:javascript
复制
; simple.asm - exit

section .text

global simple                ; make the main function externally visible

simple:
    mov eax, 0x1              ; system call number for exit
    sub esp, 4                ; OS X (and BSD) system calls needs "extra space" on stack
    int 0x80                  ; make the system call

编译并链接它:

代码语言:javascript
复制
nasm -f macho simple.asm
ld -o simple -e simple simple.o

运行它:-

代码语言:javascript
复制
asm $ ./simple 
asm $ echo $?
1

网上有很多免费的x86汇编资源,以及英特尔64位的具体细节。

http://en.wikibooks.org/wiki/X86_Assembly

http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

查看bsd内核的系统调用资源和osx特定系统调用的mach内核资源。

http://osxbook.com

http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html

http://peter.michaux.ca/articles/assembly-hello-world-for-os-x

如果你想创建库,可以看看链接器和加载器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8316048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档