
程序猿之汇编语言
文章平均质量分 87
主要是建立汇编语言的知识体系
夏驰和徐策
一个喜欢打游戏的计算机专业学生;这是我的GitHub:https://github.com/XiaChiandXuce
展开
-
3.1 内存中自动存储—3.4 mov、add、sub 指令
0、1两个内存单元用来存储一个字,这两个单元可以看作一个起始地址为0的字单元(存放一个字的内存单元,由0、1两个字节单元组成)。由于指令中的CS是一个16位寄存器,所以要访问(写入)的内存单元是一个字单元,它的偏移地址为0,段地址在DS中,Debug在屏幕右边显示出“DS:0000-0000”,我们可以知道这个字单元中的内容为0。在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字需要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。原创 2024-05-28 16:55:42 · 1257 阅读 · 0 评论 -
1.3 汇编语言的组成
我们知道,在电子计算机中,一根导线可以传送的稳定状态只有两种,高电平或低电平,用二进制表示就是 1 或 0。10 根导线可以传送 10 位二进制数据,而 10 位二进制数可以表示 1024(2 的 10 次方)个不同的数据,最小数为 0,最大数为 1023。例如,内存读或写命令是由几根控制线综合发出的,其中有一根称为“读信号输出”的控制线负责由 CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据;CPU 在工作的时候把某些信息看作指令,其他的信息看作数据,为同样的信息赋予了不同的意义。原创 2024-05-26 17:23:00 · 1033 阅读 · 0 评论 -
2.7 “段地址×16+偏移地址=物理地址”的本质含义
在8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H,即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。指向的内存单元中的内容看作指令,因为,在任何时候,CPU将CS、IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。在内存中,指令和数据没有任何区别,都是二进制信息,CPU在工作的时候把有的信息看作指令,有的信息看作数据。原创 2024-05-26 19:58:35 · 1552 阅读 · 0 评论 -
2.2 字在寄存器中的存储
段地址×16+偏移地址=物理地址”的本质含义是:CPU在访问内存时,用一个基础地址(段地址×16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。不同的CPU,寄存器的个数、结构是不相同的。本章中只看一下CS。在以后的课程中,为了区分不同的进制,在十六进制表示的数据的后面加H,在二进制表示的数据后面加B,十进制表示的数据后面什么也不加。指向的内存单元中的内容看作指令,因为,在任何时候,CPU将CS、IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。原创 2024-05-26 18:23:17 · 927 阅读 · 0 评论 -
2.1 通用寄存器
一个典型的CPU(此处讨论的不是某一具体的CPU)由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。前一章所说的总线,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。不同的CPU,寄存器的个数、结构是不相同的。8086CPU有14个寄存器,每个寄存器有一个名称。原创 2024-05-26 17:29:29 · 886 阅读 · 0 评论 -
1.2 汇编语言的产生
早期的程序员们很快就发现了使用机器语言带来的麻烦。机器语言是由一系列的二进制码组成的指令,它们既难以辨别又难以记忆,这给整个产业的发展带来了障碍。于是,为了克服这些困难,汇编语言应运而生。原创 2024-05-26 17:15:08 · 427 阅读 · 0 评论 -
1.1 机器语言
以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如我们最常见的PC机。汇编语言是直接在硬件之上工作的编程语言,我们首先要了解硬件系统的结构,才能有效地应用汇编语言进行编程。汇编语言在计算机的早期发展中起到了重要的作用,为程序员提供了一种更高效和人性化的编程方式。在汇编课程中,我们不对硬件系统进行全面和深入的研究,这不在课程的范围之内。程序员们将用0、1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再通过纸带机或卡片机将程序输入计算机进行运算。原创 2024-05-24 15:28:33 · 425 阅读 · 0 评论