摘要: 第六节 终止字符 翻译自:https://asmtutor.com/ 为什么 Lesson 5 中的第二个字符串打印了两次,而我们只在 msg2 上调用了一次 sprint 函数?如果将第二次的 sprint 调用注释掉,结果如下,我们发现在 Lesson 5 中第二次的 sprint 实际上只打印 阅读全文
posted @ 2023-03-02 10:58 charain_li 阅读(125) 评论(0) 推荐(0)
摘要: 第五节 包含外部文件 翻译自:https://asmtutor.com/ 外部包含文件允许我们从我们的程序中移动代码并将其放入单独的文件中。这种技术对于编写干净、易于维护的程序很有用。可重用的代码位可以编写为子程序并存储在称为库的单独文件中。当您需要一段逻辑时,您可以将该文件包含在您的程序中并使用它 阅读全文
posted @ 2023-03-01 23:19 charain_li 阅读(98) 评论(0) 推荐(0)
摘要: 第四节 函数 翻译自:https://asmtutor.com/ 介绍函数(子程序) 函数 / 子程序 (functions/subroutines)是可重用的代码片段,程序可以调用它们来执行各种可重复的任务。函数是使用 标签 声明的,就像我们之前使用的那样(例如 _start:),但是我们不使用 阅读全文
posted @ 2023-02-28 16:28 charain_li 阅读(111) 评论(0) 推荐(0)
摘要: 第三节 计算字符串长度 翻译自:https://asmtutor.com/ 背景知识 为什么我们需要计算字符串的长度? 好吧,sys_write 要求我们向它传递一个指向我们要在内存中输出的字符串的指针,以及我们要打印出的字节长度。如果我们要修改我们的消息字符串,我们也必须更新我们传递给 sys_w 阅读全文
posted @ 2023-02-28 16:26 charain_li 阅读(533) 评论(0) 推荐(0)
摘要: 第二节 正确的退出方式 翻译自:https://asmtutor.com/ 背景知识 在 Lesson 1 中成功学习了如何执行系统调用之后,现在需要学习内核中最重要的系统调用之一 sys_exit 。 请注意我们的“Hello, world!”之后的情况。程序运行我们遇到了Segmentation 阅读全文
posted @ 2023-02-27 21:24 charain_li 阅读(294) 评论(0) 推荐(0)
摘要: 第一节 Hello,world! 翻译自:https://asmtutor.com/ 背景知识 汇编语言是最基本的。程序员在实际硬件之上的唯一接口是内核本身。为了在汇编中构建有用的程序,我们需要使用内核提供的 Linux 系统调用。这些系统调用是内置于操作系统中的库,可提供诸如从键盘读取输入和将输出 阅读全文
posted @ 2023-02-27 20:54 charain_li 阅读(212) 评论(0) 推荐(0)
摘要: 写给初学者的源代码安装指南 引入 本文档面向希望直接从原始作者处安装软件的开源操作系统用户,而不是仅依赖其操作系统提供的软件(和版本)。它是为那些不熟悉以源代码形式下载软件的概念的人编写的,提供有关相关命令和一般过程的背景信息。 讲解概念 开发和发行:独立软件开发人员、多操作系统支持、发布(归档)文 阅读全文
posted @ 2022-12-20 23:01 charain_li 阅读(312) 评论(0) 推荐(0)