汇编学习4:寄存器之CPU工作原理

本文详细介绍了8086 CPU 的核心组成部分,包括寄存器的功能与使用,16位结构的特点,以及如何通过组合段地址与偏移地址来形成20位的物理地址以访问内存。此外,还探讨了关键寄存器CS和IP的作用及如何修改它们。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1CPU的组成: 运算器  控制器  寄存器等  (通过内部总线相连)

           内部总线实现CPU内部各个器件之间的联系

   外部总线实现CPU和主板上其他器件的联系

 

2,寄存器:8086CPU中有14个  ax,bx,cx,dx,si,di,sp,bp,ip,cs,ss,ds,es,psw

   所有寄存器都是16位的(8086),可以存放2个字节

 

3,通用寄存器:ax,bx,cx,dx

 


 

 

AHAL寄存器是可以独立使用的8位寄存器。



4

   汇编不区分大小写

   mov al c5

   Add al 93

 

   C5+93=0158H  

   al中存放58H   01这个进位并没有放在ah

 

 

5,物理地址:CPU访问内存单元时要给出内存单元的地址。所有的内存构成的存储

 

空间是一个一维的线性空间,这个唯一的地址成为物理地址。

 

 

616位结构的CPU的特征:

       运算器一次最多可以处理16位的数据

       寄存器的最大宽度为16

       寄存器和运算器之间的通路是16位的

 

78086的寻址方式(给出物理地址)

   808620位地址总线,可以传送20位地址,寻址能力为1M,2^20B=1MB

   8086内部为16位的结构,它只能传送16位的地址,表现出的寻址能力却只有64KB

   如何表示物理地址????

   采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址

   一个16位的地址被称为段地址  另一个被称为偏移地址

   物理地址=段地址*16+偏移地址

   

 

8,实际上,并没有真的有一个个段,有一个个段地址。

实际上,这是因为没有办法表示20位时,不得以约定的。

将第一个地址左移一位(乘以16),再加上另一个地址。

 

 

:只是我们强加的概念!


 

 

 

 

 

9,段寄存器:cs,ds,ss,es

   当8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址。

 

10CSIP8086CPU中最关键的寄存器。它们指示了CPU当前要读取指令的地址

 

CS为代码段寄存器,IP为指令针寄存器。

 

 

 

 

11,修改CS,IP的值

    mov   不行

    jmp  段地址:偏移地址      ====>CS=段地址  IP=偏移地址

    jmp  1000:0100            ====>cs=1000     ip=0100

 

    jmp  某一合法寄存器  

jmp  ax                   ====>ip=ax

 

 

12win8中使用debug

下载debug.exe   DOSBOX   (百度可以得到答案)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值