首页 > 其他 > 详细

第二章笔记

时间:2018-09-25 00:21:02      阅读:222      评论:0      收藏:0      [点我收藏+]

8086 Intel系列16位处理器,地址总线20

 

寄存器

AX      Acummulator Register           基础寄存器

BX Base Register                  基础寄存器

CX Count Register                 计数寄存器

DX Data Register                  记址寄存器

 

CS Code Segment Register          代码段寄存器

IP Instruction Pointer Register   指令指针寄存器

 

 

字长16位,则说16位寄存器

位宽:外部数据总线与内存之间一次能传输的数据位数

8086        16位CPU (字长16位,位宽16位)

80386SX     准32位CPU (字长32位,位宽16位)

pentium    32位CPU (字长32位,位宽64位)

 

 

ISA 

指令及体系结构:支持的指令和指令的字节编码

Instruction Set Architecture

IA32指令集,俗称X86

 

不同CPU差异

  1. 字长不同,速度不同
  2. 工作模式不同
  3. 指令集的丰富程度

 

 

通用寄存器

AX  AH、AL

BX  BH、BL

CX  CH、CL

DX  DH、DL

一个字由两个字节组成,可以存在一个16位寄存器中。字的高8位 → 存放于通用寄存器的高8位寄存器

字的低8位 → 存放于通用寄存器的低8位寄存器。

 技术分享图片

 

 

mov,add指令中,两个操作的对象位数应一致

mov ax,bl  错误  ax16位,bl8位

mov  al,2000 错误  al8位,溢出

 

 

 

1

 

(AX) = 8226H, (BX) = 8226H

 执行ADD  AX, BX后, 求(AX)

     8  2 2 6 H

+   8  2 2 6 H

 1 0  4 4 C H

 

 2

(AX) = 00C5H

执行ADD  AL, 93H后,求 (AX)

 

  C 5 H

+   9 3 H

1   5 8 H

 808616位寄存器无法直接表示20位物理地址

寄存器16位,但物理地址20

解决方法:用两个16位地址合成一个20位的物理地址

8086在内部用两个16位地址 通过计算合成得到一个20位的物理地址。

计算合成由CPU内部的地址加法器实现。

基础地址  ×  16  +  偏移地址  =  物理地址

 

123CH  ×  16   +   0008H   =   123C8H

起始物理地址是: 123C0H

1230CH  ×  16   +   00C8H   =   123C8H

起始物理地址是: 12300H

 

段的概念:将地址连续、起始物理地址为16倍数的一组内存单元(不超过64KB)当作一个「段」使用。

1「段地址: 偏移地址」  也称「逻辑地址」

2「段地址 × 16 」 构成段的起始物理地址,故根据需要划分段使用时,段的起始物理地址必须是16的倍数。

一个物理地址可以用不同的「段地址: 偏移地址」表示。只要满足段的起始物理地址是16的倍数。

物理地址: 123C8H

段地址: 偏移地址 1230:00C8   123C:0008

 

CS: 代码段段寄存器,用于存放代码段的「段地址」

IP:  指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。

CS:IP对应的物理地址存放的是CPU将要读取的指令。

(CS) × 16 + (IP)  → 指令的物理地址

 

第二章笔记

原文:https://www.cnblogs.com/zyx20171346065/p/9697176.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!