提示:本文为学习笔记,请勿商用!礼貌转载哦~
汇编的概念及个人理解
前言
提示:学习汇编语言需要了解计算机硬件系统的结构和工作原理。
汇编语言是直接工作在硬件上的一门编程语言
提示:用助记符代替操作码,用标号地址符号代替地址码。(第一代肇机使用原始的穿孔卡片)。
一、汇编语言的特点?
优点;更接近底层,程序运行更快,机器理解起来更快,使用汇编指令进行程度编写,再通过编译器解释给机器(生成机器码)。
缺点:在于对于开发人员来说程序更复杂学习起来更难,开发效率还低。
二、汇编语言的三类指令
1.汇编指令:作为机器码助记符,具有相应机器码
2.伪指令:没有对应机器码,需要由编译器执行指令
3.其他符号:如 + - * / % 等,由编译器进行识别。
三、寄存器
寄存器的概念
提示:在CPU中,可以根据作用来划分三大单元。控制单元(指令计数器和指令寄存器)【使用指令调动其它单元】,存储单元,计算单元。
寄存器是CPU中可以被用于指令读写的器件,不同的CPU,寄存器的个数和结构各不相同。
例如:
8086CPU含14个寄存器,其所有寄存器都是16位(0-15)的,可以存放两个字节。每个寄存器都有自己的名称和功能。通用的寄存器有:AX ,BX ,CX DX ,通常用于存放一般性数据。
8086CPU 的寄存器又可以分为两个独立的8位寄存器来使用:AX=AH+AL。BX=BA+BL 。CX = CH+CL 。DX = DH+DL。(High+Low)
寄存器中字的存储
提示:存贮单位,word一般叫作“字”:bit:一个二进制位;byte:包含8bit;word:系统硬件有关,数据总线为16位,则1word为2byte;32位时,1word为4byte。 1Byte = 8bits 。
内存单元:一个字节单元对应一个内存单元,一般是两个地址连续的内存单元来保存一个子数据,数据的高低字节分别放在相应的高低址址中。
字单元:一种用来存储字型数据的内存单元。
物理地址与段地址
物理地址:在cpu中,内存单元构成的存储空间是一个一维的纯属空间,每一个内存单元都有一个唯一的地址。
8086CPU是16位机,这种CPU具备如下特性:
1,一次最多可以处理16位的数据
2,寄存器的最大宽度是16位;
3,寄存器和运算器之间的通路为16位;
16位的CPU,能一次性处理16位的地址,但是8086CPU的地址总线是20位的。
于是:CPU操作内存时,使用CPU下的两个16地址(段地址,偏移地址)级索内部总线送往地址加法器(
物理地址 = 段地址*16+偏移地址
)合成一个20位的物理地址。地址加法器将合成的20位物理地址经由内部总线送往输入输出控制电路,再送往地址总线,最后将其放至存储器。这种一个16位寄存器就可以访问20位地址,寻址能力也从64kB变成1MB
三、CS和IP
段
段地址:表示某个范围/区间,一块地址连续且起始地址为16倍数的存储单元【段地址一定是16的倍数,且段的最大长度为64KB】
8086CPU中,可以通过分段的方式来管理内存。
CS :代码段寄存器
IP :指令指针寄存器
执行
提示:在8086CPU中,任意时刻设cs = x , ip = n ,则CPU 将从 x*16+N地址单元中取出一条指令并执行。也就是说,当前 执行的指令在哪由cs和ip来决定。可以表示 为CS:IP 。
1,CPU从CS:IP指向的存储单元中读取指令,读取的指令进入指令缓冲区
2,IP=IP+所读取的指令的长度,从而指向下一条指令(ip = ip+len,and next ip+=len)
3, 执行指令。重复1、2步
8086CPU在启动、复位启动之后,cs被设置为FFFFH,IP被设置为0000H。(执行的第一条指令)
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。