什么是电子商务网站开发,电话卡免费申请,企业网站制作公司合肥,游戏软件开发更好的阅读体验#xff0c;请点击 汇编语言学习 | YinKais Blog 简介
我为什么要学汇编
因为想在寒假手写一下操作系统玩玩#xff0c;所以提前学一学汇编#xff0c;到时候放假就可以直接上手写了。
什么是汇编语言
由于处理器只能理解机器语言指令#xff0c;即 0 和… 更好的阅读体验请点击 汇编语言学习 | YinKais Blog 简介
我为什么要学汇编
因为想在寒假手写一下操作系统玩玩所以提前学一学汇编到时候放假就可以直接上手写了。
什么是汇编语言
由于处理器只能理解机器语言指令即 0 和 1 组成的字符串。然而机器语言对软件开发来说过于晦涩和复杂。因此低级汇编语言是为特定的处理器系列而设计的通过符号代码和更易于理解的形式表示各种指令。
汇编语言的优点
学习使用汇编语言可以让人深入了解计算机体现结构和底层硬件工作原理提供对计算机内部操作的更详细的了解。
我们可以收获 更加深入了解计算机的体系结构、寄存器、指令集和内存管理 了解程序是如何在计算机上执行的 有助于我们编写更高效的代码可以直接控制底层硬件资源使你能够优化代码以提高程序的性能 提高我们调试代码的能力
PC 硬件的基本特征
PC 的主要硬件由处理器、存储器和寄存器组成。寄存器是保存数据和地址的处理器组件。为了执行程序系统将其从外部设备复制到内部存储器中。处理器负责执行程序指令。
处理器支持以下数据大小 单词2 字节数据项 双字4 字节32 位数据项 四字8 字节64 位数据项 段落16 字节128 位区域 千字节1024 字节 兆字节1,048,576 字节
寻址内存中的数据
处理器控制指令执行的过程称为——执行周期它通常包含以下几个阶段 取指令处理器从内存中读取下一条指令的地址并将指令加载到指令寄存器中 译码处理器对取得的指令进行译码确定指令的操作类型和操作数 执行处理器执行指令的操作可能涉及算术运算、逻辑运算、数据传输等 写回将执行结果写回到寄存器或内存中更新存储器或寄存器内容
在计算机中处理器在访问内存时以字节为单位进行操作。考虑一个十六进制数 0725H它需要两个字节的内存来存储。其中高位字节或最高有效字节为 07低位字节为 25.
:::warning
需要注意的是处理器以相反的字节顺序存储数据即低位字节存储在低内存地址中高位字节存储在高内存地址中。因此当处理器将值 0725H 从寄存器传输到内存时它首先将 25 传输到较低的内存地址然后将 07 传输到下一个内存地址。 当处理器从内存获取数字数据到寄存器时它会再次反转字节。这个过程中有两种内存地址形式 绝对地址这是具体位置的直接引用表示数据存储在内存的特定地址。 例如如果 x 表示内存地址则数据 0725H 存储在 x 地址和 x 1 地址上分别对应低位字节 25 和高位字节 07. 段地址或偏移量这是具有偏移值的内存段的起始地址。段地址与偏移量相结合给出了实际的内存地址。 例如如果有一个段地址 y那么 x 表示内存中的偏移地址。在这种情况下数据 0725H 存储在地址 y:x 和 y:x1 上分别对应低位字节 25 和 高位字节 07.
:::
安装和环境设置
在学习过程中我们需要使用 NASM 汇编器因为它免费、有据可查并且可以在 Linux 和 Windows 上使用
首先要验证是否已安装 NASM可以使用下面的方法验证 打开 Linux 终端 输入 whereis nasm 并按 Enter 如果已安装会出现类似 nasm: /usr/bin/nasm 的行否则只能看到 nasm:
如果没有安装就需要安装 NASM。
我的机器是 centos7 的虚拟机我是直接在命令行中进行安装的安装步骤如下 打开终端并以 root 用户身份登录 运行以下命令更新 yum 软件包列表 yum update 运行以下命令安装 NASM yum install nasm 过程中的询问输入 y 并按 Enter 键继续 等待安装完成后使用以下命令验证是否成功安装 nasm -v