1.寄存器
一个典型的CPU由运算器(信息处理)、控制器(控制各种期间进行工作)、寄存器(信息处理)等器
件构成,这些器件靠内部总线相连,在它们之间进行数据的传送。
对于汇编程序员,CPU的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。通过改变
各种寄存器中的内容来实现对CPU的控制。
不同的CPU,寄存器的个数、结构是不相同的。
2.通用寄存器。
AX(Accumulator)、BX(Base)、CX(Count)、DX(Data)被成为通用寄存器,用来存放一般行的数据。
AX、BX、CX、DX都可分为两个独立使用的8位寄存器 如果AX可分为AH(High)、AL(low)其他相似。。
想一想,一个16位寄存器可所能存储的数据的最大值为多少? (2^16-1=65535 或者1111 1111 1111
1111B=65535D)
想一想,一个8位寄存器所能存储的数据的最大值为多少?(与上面相同,2^8-1=255 或1111 1111B=255D
)
3.字在寄存器中的存储
一个字节(Byte)我由8bit组成,可以存在8位寄存器中。两个字节可以组成一个字(word),这两个字节
分别为这个字的高位字节和地位字节。
4.几条汇编指令
MOV、ADD。。
al作为独立的8位寄存器来使用时,和ah没有关系,CPU在执行如add al,58H命令时,认为ah和al是两个不
相关的寄存器。
在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的。 如 mov al,20000 (8位寄
存器最大可存放值为255的数据)
[在这里本来是有点疑惑,上面不是说超出的最高位会丢失么?为什么这个不行?后来再重新理解了下,如
文中ax本来数据为00C5H,再下一个命令add al,93H执行后,ax中的数据是:0058H而不是0158H(在这条指
令中al作为独立寄存器,与ah没有关系,最高位的1丢失,但不是真的丢弃这个值),原来是因为add指令
的操作对象al和93H的位数是对应的,而al与20000的位数不对应,故不行。]
5.物理地址
所有的内存单元构的存储空间是一个一位的线性空间,每一个内存单元在这个空间中都有唯一的地址,我
们将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。在
CPU相地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。不同的CPU可以有不同的形成物
理地址的方式。
6.16位结构的CPU
16位机构描述了CPU具有一下几方面的结构特性。
(1)运算器一次最多可以处理16位的数据;
(2)寄存器的最大宽度为16位;
(3)寄存器和运算器之间的通路为16位。
内存单元的地址再送上地址总线之前,必须在CPU中处理、传输、暂时存放,对于16位CPU,能一次性处理
、传输、暂时存储16位的地址。
7.8086CPU给出物理地址的方法
8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。但8086CPU又是16位结构,从其内部结构
上看,如果将地址从内部简单地发出,那么它只能送出16位地址,表现出的寻址能力为64KB。所以,
8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。
7.8086CPU给出物理地址的方法
当8086CPU要读写内存时,CPU的相关组件提供两个16为地址,即段地址和偏移地址,再通过内部总线送入
地址加法器,由地址加法器将两个16位地址合为20位的物理地址,并通过输入输出控制电路将物理地址送
上地址总线,再由地址总线传入存储器。
地址加法器采用 [物理地址=段地址*16+偏移地址] 的方法合成物理地址
关于段地址*16:常用说法为“左移4位”,其中的位,指的是二进制位;一个X进制的数据左移1位,相当
于乘于X。
8.“段地址*16+偏移地址=物理地址”的本质含义
本质含义:CPU在访问内存是,用一个基础地址(段地址*16)和一个相对于基础地质的偏移地址相加,给
出内存单元的物理地址。
一般的说,8086CPU的这种寻址功能是“基础地址+偏移地址=物理地址”寻址模式的一种具体实现方案。
8086CPU中,段地址*16可看作是基础地址。
9.段的概念
内存并没有分段,段的划分来自于CPU,由于8086CPU用“基础地址(段地址*16)+偏移地址=物理地址”的
方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。
用段地址*16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。有亮点需要注意:段地址
*16必然是16的倍数,所以一个短的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为
64KB,所以一个段的长度最大为64KB.
CPU可以用不同的段地址和便宜地址形成同一个物理地址。
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 似乎这个站点没有什么新鲜的活力了 07/23 18:22
- [游客] 博主有没有学习群 07/23 19:14
- [游客] 可以的 07/23 19:13
- [游客] aaaaaaaaaaaa 09/19 13:49
- [jinshuwen] 很有收获! 01/19 16:25
- [hujie0421] 谢谢分享 02/01 05:14
- [jiejie] 来学习一下 10/01 11:31
- [yexueyao] 谢谢,我是学习计算机专业的,汇编语言一学期几乎没听懂过,看你的日记,很有帮助,我会加油学的,期末要拿 11/12 10:14
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [bingfeixue] masm32 汇编器具体怎么用啊 04/28 09:24