Linux 汇编指南
Shellex: 得到一篇At&t的初级教程, 考虑到国内at&t汇编的资料比较少, 所以做了翻译.
翻译得不好还请大家见谅了.原文请看文末的链接, 我做了少许修正.
========================================================================
Linux 汇编指南
Robin Miyagi著
@
http://www.geocities.com/SiliconValley/Ridge/2544/
ShellEx 译/修正
@
http://shellex.cublog.cn
========================================================================
start@: Thu Feb 03 02:14:37 UTC 2000
update: Fri Jul 30 23:52:23 UTC 2000
update: Fri Sep 15 22:39:17 UTC 2000 :
- 这篇指南展示了在GNU汇编器as下的Linux汇编
- 还提供了有关实用工具集的信息, 例如Objdump和ld.
添加了有关调试和gdb的用法的一些讨论
update: Thu Jan 11 20:13:06 UTC 2001 :
翻译: 2007年 8月 8日
========================================================================
* 介绍
————————————————————————
当在Linux(或者是其他的类Unix系统)下使用汇编编程时, 很重要的一点就是必
须记住: Linux是一个保护模式的操作系统(在386的机器上, Linux在保护模式
下对CPU进行操作).这就意味着平常的用户模式下的进程是不允许做某些事情,
比如说访问DMA, 或者是访问IO端口.编写Linux内核模块(在内核模式下操作)
允许直接地访问硬件(在我的汇编页阅读Assembler-HOWTO获取更多这方面的信
息).用户模式下的进程可以通过使用设备文件的方式访问硬件. 设备文件实际
上是访问了内核模块,而内核模块是可以直接访问硬件的. 这个文件对于用户模
式下的操作来说是受限的.看看我的关于内核模块编程的页面吧.
有任何意见和建议,请用Email联系我: penguin@dccnet.com .
* 系统调用
————————————————————————
在DOS下的汇编你可能会用到软中断, 特别是Dos调用的0×21中断. 在Linux中,
系统调用的通过中断0×80来实现.系统调用号通过eax寄存器来传递, 对应的参
数则通过其他寄存器来传递. 当然了, 这仅仅是对于5个及5个以下的参数的系
统调用才是这么说. [...]