【汇编语言笔记】第二章 寄存器

2.1 通用寄存器

1.  8086CPU所有的寄存器都是16位的,可以存放两个字节。

2.  AX、BX、CX、DX,4个寄存器通常用来存放一般性数据,被称为通用寄存器。

3.  一个16位的寄存器可以存储一个16位的数据。    思考:一个16位的寄存器所能存储的数据最大值为多少?

4.  8086CPU的AX、BX、CX、DX(16位寄存器)每个都可以分为两个可独立使用的8位寄存器来用:

      AX可分为AH、AL;

      BX可分为BH、BL;

      CX可分为CH、CL;

      DX可分为DH、DL;

 

2.2 字在寄存器中的存储

1.  8086CPU可以一次性处理以下两种尺寸的数据:

      (1)字节:byte,一个字节由8个bit组成,可以存在8位寄存器中。

      (2)字:word,一个字由两个字节组成,分别称为高位字节和低位字节。

      *还存在双字、四字

 

2.3 几条汇编指令

  【重要】计算

【重要】计算

                      

 

2.4 物理地址

1.  CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。

2.  在CPU向地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。

 

2.5 16位结构的CPU

1.  8080、8085等是8位机,8086是16位机。

2.  16位结构CPU的结构特性:

      (1)运算器一次性可以处理16位数据。

      (2)寄存器的最大宽度位16位。

      (3)寄存器和运算器之间的通路为16位。

 

2.6 8086CPU给出物理地址的方法

1.  8086CPU有20位地址总线,可以传送20位地址,达到1MB的寻址能力。

2.  8086CPU是16位结构,在内部一次性处理、传输、暂时存储的地址为16,这样看来,表现出的寻址能力只有64KB。

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

4.  物理地址=段地址*16+偏移地址            记为   段地址:偏移地址

 

2.7 “物理地址=段地址*16+偏移地址”的本质含义

1.  CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。

 

2.8 段的概念

1.  内存无分段,段的划分来自CPU。

2.  可将若干地址连续的内存单元看成一个段。

3.  一个段的起始地址(段地址*16)一定是16的倍数。

4.  偏移地址为16位,16位的寻址能力为64KB,所以一个段的长度最大为64KB。

 

**小结:

1.    CPU可以用不同的段地址和偏移地址形成同一个物理地址。

2.    给定一个段地址,仅通过变化偏移地址来进行寻址,最多可寻64KB个内存单元。      偏移地址16位,变化范围为0~FFFFH      例:给定段地址1000H,CPU寻址范围为:10000H~1FFFFH

3.    在8086PC机中,存储单元的地址用两个元素来描述,即段地址和偏移地址。    例:  (数据存在21F60H内存单元中)  数据存在内存2000:1F60单元中   数据存在内存的2000H段中的1F60H单元中。

4.    可以将地址连续,起始地址为16的倍数的一组内存单元定义为一个段。

    【例题】

 

2.9 段寄存器

1.  8086CPU有4个段寄存器:CS、DS、SS、ES。

2.  段寄存器提供内存单元的段地址。

 

2.10 CS和IP

1.  CS和IP指示了CPU当前要读取指令的地址。

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

3.  任意时刻,CPU将CS:IP指向的内容当做指令执行。

4.  工作过程简述为下:

      (1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;

      (2)IP=IP+所读取指令的长度,从而指向下一条指令;

      (3)执行指令。转到步骤 (1) ,重复这个过程。

5.  8086CPU加电启动或复位后(CPU刚开始工作时)CS=FFFFH   IP=0000H,即,8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是其开机后执行的第一条指令。

 

2.11 修改CS、IP的指令

1.  在CPU中,程序员能用指令读写的部件只有 寄存器。

2.  8086大部分寄存器的值可以用mov 指令改变,mov指令被称为传送指令。

3.  CS、IP的值不能使用mov指令改变值。   不能  mov  IP,ax

4.  jmp段地址:偏移地址   同时改变CS、IP

     jmp 某一合法寄存器    只修改IP   例:jmp ax 

   

 

2.12 代码段

  例:把代码放到123B0H~123B9H,如果要让这段代码执行,设CS=123BH,IP=0000H

 

*小结:

1.    段地址在8086CPU的段寄存器中存放,提供内存单元的段地址。

2.    CS存放指令的段地址。

3.    8086CPU提供转移指令修改CS、IP的值。

转载于:https://www.cnblogs.com/Master-Sun/p/9786833.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值