LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 797|回复: 6

想在gentoo下学习一下汇编,请问这需要什么前期基础知识

[复制链接]
发表于 2008-12-30 11:35:08 | 显示全部楼层 |阅读模式
想在gentoo下学习一下汇编,请问这需要什么前期基础知识

谢谢
发表于 2008-12-30 11:38:53 | 显示全部楼层
自学吗

找本好书
有条件最好在身边找个会的人

个人推荐这本
Richard Blum 的
Professional Assembly Language

Wiley 出的
ISBN:0-7645-7901-0

http://www.amazon.com/Profession ... ammer/dp/0764579010

汇编是具有非常高的平台依赖性的,无论是硬件还是软件(操作系统)
例如 Windows 下的 Win32 API 和 Linux 下的系统調用 0x80 就很不一样,特别是 Linux 的系统調用没有 GUI 相关的
Linux/Unix 下主流的語法是 AT&T 格式,这个和 Windows/DOS 下主流的 Intel 格式有很多不同,例如操作数顺序刚好相反,AT&T 喜欢用前缀符号,例如 % 用在寄存器 (%eax),而 Intel 是不需要的,跳转指令、寻址等等,很多語法不同,而目前国内市面上应该大部分讲汇编的书是基于 Intel 語法的,不知道这些就会造成很大困扰。

NASM 和 GNU 的 as 都支持 Intel 格式語法,不过很少人会用 Intel 語法直接写原生态的 linux 代码,而且,和学任何编程语言一样,一旦掌握了用汇编解决问题的思考方式,换个語法一般也就是查查书的难度。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-30 11:48:11 | 显示全部楼层
Post by 8pm;1931734
自学吗

找本好书
有条件最好在身边找个会的人

个人推荐这本
Richard Blum 的
Professional Assembly Language

Wiley 出的
ISBN:0-7645-7901-0

http://www.amazon.com/Profession ... ammer/dp/0764579010

汇编是具有非常高的平台依赖性的,无论是硬件还是软件(操作系统)
例如 Windows 下的 Win32 API 和 Linux 下的系统調用 0x80 就很不一样,特别是 Linux 的系统調用没有 GUI 相关的
Linux/Unix 下主流的語法是 AT&T 格式,这个和 Windows/DOS 下主流的 Intel 格式有很多不同



谢谢,很专业的指导
回复 支持 反对

使用道具 举报

发表于 2008-12-30 13:17:49 | 显示全部楼层
既然是学习汇编,个人认为还是 DOS 合适,或 8051 单片机,适合教学。
回复 支持 反对

使用道具 举报

发表于 2008-12-30 14:15:29 | 显示全部楼层
不,linux就很好
而且什么知识都不需要
Programming from the ground up
http://savannah.nongnu.org/projects/pgubook/
http://bbs4.newsmth.net/bbscon.p ... d=7295&ftype=11
回复 支持 反对

使用道具 举报

发表于 2008-12-30 22:06:37 | 显示全部楼层
nasm吧。“语法”和intel汇编很接近,而且做了一些简化。
关键是可以输出多种二进制格式。
回复 支持 反对

使用道具 举报

发表于 2008-12-31 03:13:56 | 显示全部楼层
有没有听说过libbfd
使用libbfd,可以输出任何你所能够听说过的二进制格式
libbfd是binutils的组成部分
也就是说gas可以做到输出任何你所能够听说过的二进制格式

作为一个初学者,用什么都是一样的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表