ebx是基址寄存器,比如存放的数组的首地址。
https://wenda.so.com/q/1537807204213369
很简单的啊,基址寄存器存放的是相当于某内存空间的首地址,而基址指针存放的是偏移量,类似其他编程语言中的索引,不同的是基址指针的单位是字节,而索引的单位是依赖于数据类型宽度,比如C++中int类型的宽度为4字节,因此索引必须乘以4才能换算成字节单位。
假设BX=1000,BP=102 ,则 计算后的地址为 BX+BP=1102;而如果假设数组int A[XXXX]的首地址也是为1000,index=102,则计算后的地址为A+index*4=1000+408=1408。
PS:由于8086开始内存地址空间的需求大于寄存器数据宽度,因此采用了分段技术,所以以上计算结果是相对于段地址空间的,实际内存的物理地址还要结合段地址一起运算。
寄存器与七种寻址方式
https://www.cnblogs.com/yxwkf/p/3944373.html
http://www.elecfans.com/baike/zhujipeijian/cpu/20180416662676_2.html
http://www.elecfans.com/baike/zhujipeijian/cpu/20180416662676_2.html
总线接口部件 :
总线接口部件,由段寄存器(代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES)、指令指针寄存器、地址加法器、总线控制电路和指令队列缓冲器等组成。
中文名
总线接口部件
外文名
BIU
组 成
4个段地址寄存器:
功 能
传送给执行部件EU
目录
部件介绍
编辑
总线接口部件又名总线接口单元 (BIU、Bus Interface Unit)
它和执行单元(EU)合称为8086、8088两大独立工作单元。
组成
编辑
总线接口部件由下列各部分组成:
(1)4个段地址寄存器:
CS——16位的代码段寄存器;
DS——16位的数据段寄存器;
ES——16位的扩展段寄存器;
SS——16位的堆栈段寄存器;
(2)16位的指令指针寄存器IP;
(3)20位的地址加法器;
功能
编辑
BIU负责从内存指定区域取出指令传送到指令队列中排队;执行指令时所需要的操作数也由BIU从相应的内存区域取出,传送给执行部件EU。指令执行的结果如果需要存入内存的话,也由BIU写入相应的内存区域。总之,BIU同外部总线连接为EU完成所有的总线操作,并形成20位的内存物理地址。
管理
编辑
(1) BIU和EU可以并行工作,提高CPU效率。BIU监视着指令队列。当指令队列中有2个空字节时
,就自动把指令取到队列中。
(2) EU执行指令时,从指令队列头部取指令,然后执行。如需访问存储器,则EU向BIU发出请求,由BIU访问存储器。
(3) 在执行转移、调用、返回指令时,需改变队列中的指令,要等新指令装入队列中后,EU才继续执行指令。