汇编入门简单,深入难
使用8086架构进行学习,本章节如果没有学过计算机组成原理将可能有点难以理解,由于我学过了,所以记笔记的时候我会加上计组的知识来解释,看不懂直接跳过解释即可。
计算机如何工作

简单来说就是我们的应用或者使用高级语言编程最终都会变成一条条的由01组成的计算机指令,那CPU要执行指令就要先使用总线系统控制或者说操控某几根线导通一条路出来,让我们要取的指令有一条路可以走到CPU中,这就是去存储器中拿数据的一个大概过程。
希望与外部设备进行交互或者通讯,我们计算机需要的是一个接口,接口连接上外部设备,并且与该计算机设计的接口规范一致就能够接上,我们使用汇编的指令中就是通过一种监听方式监听接口,在汇编中叫做 端口,但是这个端口需要注意和web中的端口进行区别。
文言一心对两种端口的解释:"端口"是指网络通信中的端口号,而在汇编语言中,"端口"是指硬件接口中的端口地址。
可能会产生的疑惑:
总线系统是什么?
首先总线这一个概念是在计组中详细介绍的,在汇编中只需要知道汇编的指令具体要实现对应的操作都是总线控制比如Lmov ax , 7 它就知道控制将7送进ax寄存器中。还有一个要注意的就是:不用纠结于我们的汇编能不能或者到底怎样处理指令的,我解释一下,但是可以不看,这里用作我自己复习笔记
:
首先我们的CPU控制总线会根据节拍和阶段发出取指信号,PC程序计数器拿出指令的地址,然后到存储器中取出指令,给到IR指令寄存器,然后将指令送进CPU,CPU里面又分为硬布线或者微程序两种设计,不管哪一种,最后CPU会发出一个控制信号,这个信号能够完成对应的取过来的那一条指令的所有微操作,比如一条指令可能mov ax, 7的同时我们PC程序计数器还会指向下一条指令,所以我们需要知道这个信号能够完成这条指令即可,如此循环…
还有一个问题就是:不用担心或者说只是我自己担心而已,我以前一直觉着高级语言怎么能够让CPU执行这么复杂的东西,我连有的代码都看不懂!?
当然这个担心也是多余的,反过来推,CPU只执行01组合的数据指令,那我们在这之前可能是对应我们的汇编语言,汇编语言在转机器码的时候(机器码就是01组合的数据指令),这会有一个叫做汇编器的东西将其转换成机器码,OK截止到汇编,继续逆向推,继续往上就是高级语言了,C语言,那C语言如何转汇编,这就很简单了,那就是使用我们的编译器,(编译器里面怎么转就不深究了),那这就全部都解释清楚了,既然C语言能够转汇编,汇编转机器码,最后给到CPU,所以CPU根本不知道你在干嘛,只要给到正确的指令给他执行即可。同时这个也解释了我们计算机生态圈如此强大的由来,我们的底层可能就很少很少的指令,但是我们一步一步往上也就是说机器码可以编程编出汇编语言,那我们汇编就可以做程序,再用汇编编了一个C语言,那我们就可以用C语言写更牛b的程序,慢慢的我们windows就出现了(狗头保命)。

本文详细解释了计算机如何通过8086架构执行汇编指令,涉及存储器的逻辑地址到物理地址映射、数据寄存器和指针寄存器的作用,以及堆栈、标志寄存器和中断的工作原理。阅读者无需计算机组成原理背景,但建议对基本概念有了解。
最低0.47元/天 解锁文章
1708

被折叠的 条评论
为什么被折叠?



