《汇编程序设计与计算机体系结构:软件工程师教程》 —3.4 写出能够正常运行的范例程序

举报
华章计算机 发表于 2019/12/04 12:14:39 2019/12/04
【摘要】 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第3章,第3.4节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。

3.4 写出能够正常运行的范例程序

你必须先掌握这一章所讲的基础知识才能很好地理解后续各章,因此,尽管第 4 章与第 5 章会详细解释各条指令,但你在看那两章之前还是应该先写出一个可以正常运行的汇编程序,以便总结本章的这些基础知识。程序 3-2 就是这样的一个例子,笔者针对 3 种汇编器分别提供了 3 个版本。其中GAS 版本的代码包含完整的注释,而 MASM 与 NASM 版本则只有代码没有注释。你可以从 https://github.com/brianrhall/Assembly 下载代码,其中的 3 个版本都带有完整的注释。

      学习指南:用你喜欢的开发环境编写下面这段范例代码,并确保它能够顺利运行。然后,故意制造一些语法错误,看看系统会给出怎样的提示。开发者常犯的错误有:拼错变量名,用尺寸不合的数据操作变量与寄存器,或是忘记在适当的地方写上冒号。你要通过实验来了解这些错误会引发什么样的错误信息,这样以后再遇到类似的信息时就能够知道代码错在哪里了。

 

程序 3-2 一个可以正常运行的范例程序

image.png

 

image.png

      编程知识:程序 3-2 演示了怎样在 32 位的环境(32 位的 Mac 程序、Windows 程序以及用 NASM 汇编器开发的 Linux 程序)中适当地终止或者说退出汇编程序。在其他的环境(例如用 GAS 汇编器开发的 32 位 Linux 程序,以及各种 64 位环境)中,可能需要改用另一套例行的流程来退出程序。本书附录 A列出了用 GAS、NASM 及 MASM 这 3 种汇编器开发 32 位及 64 位程序时所需遵循的退出流程。至于怎样通过系统调用来执行这套流程,则会在第 10 章讲解。

 


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。