- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux汇编语言开发指南要点
Linux 汇编语言开发指南
肖文鹏 (xiaowp@263.net), 北京理工大学计算机系硕士研究生
简介: 汇编语言的优点是速度快,可以直接对硬件进行操作,这对诸如图形处理等关键应用是非常重要的。
Linux 是一个用 C 语言开发的操作系统,这使得很多程序员开始忘记在 Linux 中还可以直接使用汇编这一
底层语言来优化程序的性能。本文为那些在Linux 平台上编写汇编代码的程序员提供指南,介绍 Linux 汇编
语言的语法格式和开发工具,并辅以具体的例子讲述如何开发实用的Linux 汇编程序。
本文的标签: linux, linux 下的汇编, 内核, 备忘, 编码
标记本文!
一、简介
作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多
其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免
地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密
切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。
大多数情况下 Linux 程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在 Linux 操作系统中
也可以用完全用 C 语言来实现,再加上 GCC 这一优秀的编译器目前已经能够对最终生成的代码进行很好的
优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实现情况是 Linux 程序员有时还是需要
使用汇编,或者不得不使用汇编,理由很简单:精简、高效和 libc 无关性。假设要移植 Linux 到某一特定的
嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙
了。
汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:
• 能够直接访问与硬件相关的存储器或 I/O 端口;
• 能够不受编译器的限制,对生成的二进制代码进行完全的控制;
• 能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;
• 能够根据特定的应用对代码做最佳的优化,提高运行速度;
• 能够最大限度地发挥硬件的功能。
同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此
不可避免地存在一些缺点:
• 编写的代码非常难懂,不好维护;
• 很容易产生 bug,难于调试;
• 只能针对特定的体系结构和处理器进行优化;
• 开发效率很低,时间长且单调。
Linux 下用汇编语言编写的代码具有两种不同的形式。第一种是完全的汇编代码,指的是整个程序全部用汇
编语言编写。尽管是完全的汇编代码,Linux 平台下的汇编工具也吸收了 C 语言的长处,使得程序员可以使
用 #include、#ifdef 等预处理指令,并能够通过宏定义来简化代码。第二种是内嵌的汇编代码,指的是可以
嵌入到C 语言程序中的汇编代码片段。虽然 ANSI 的 C 语言标准中没有关于内嵌汇编代码的相应规定,但
各种实际使用的 C 编译器都做了这方面的扩充,这其中当然就包括 Linux 平台下的 GCC。
回页首
二、Linux 汇编语法格式
绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 Intel 风格的。但
在 Unix 和 Linux 系统中,更多采用的还是 ATT 格式,两者在语法格式上有着很大的不同:
1. 在 ATT 汇编格式中,寄存器名要加上 % 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加
前缀。例如:
ATT 格式 Intel 格式
pushl %eax push eax
2. 在 ATT 汇编格式中,用 $ 前缀表示一个立即操作数;而在 Intel 汇编格式中,立即数的表示不用
带任何前缀。例如:
ATT 格式 Intel 格式
pushl $1 push 1
3. ATT 和 Intel 格式中
您可能关注的文档
- 4级精华汇总.doc
- 药品申请专业英语.doc
- Cet-4考试流程、重要词汇、短语及语法句型.doc
- cet英语统考辅导.doc
- 吉非替尼片溶出度测定方法的考察.pdf
- 基于指南和临床路径的椎-基底动脉供血不足住院患者用药分析与评价.pdf
- 北京昌平社区卫生服务机构基本药物集中处方点评.pdf
- 2型糖尿病血糖控制未达标患者现状调查报告.pdf
- 复方丹参滴丸临床2期研究报告--天士力.pdf
- Product Quality Review 产品质量回顾.docx
- 一城一云服务城市高质量发展白皮书(2023).pdf
- 中国连锁餐饮企业资本之路系列报告(2023)-历尽千帆,厚积薄发.pdf
- 有色金属行业专题研究:未来焦点,钒液流电池储能风潮兴涌.pdf
- 中国 “一带一路”实践与观察报告.pdf
- 医药生物-消费器械行业2023年中报总结:积极拥抱高璧垒高成长(202309).pdf
- DB50T 699-2016 简易升降机检验规则.pdf
- DB50T 746-2016 水库大坝安全监测资料整编分析规程 .pdf
- 看DAO2025-未尽研究报告(2024).pdf
- 市场洞察力报告-数据安全检查工具箱(2024).pdf
- 2024年预见未来:中国元医院建设发展调研报告.pdf
文档评论(0)