《汇编语言》寄存器物理地址第二章第二节
汇编语言——寄存器

汇编语⾔——寄存器⼀、栈的基本概念栈有两个基本的操作:⼊栈和出栈。
⼊栈:将⼀个新的元素放到栈顶;出栈:从栈顶取出⼀个元素。
栈顶的元素总是最后⼊栈,需要出栈时,⼜最先被从栈中取出。
栈的操作规则:后进先出8086CPU提供的栈机制8086CPU提供⼊栈和出栈指令:(最基本的)PUSH(⼊栈)POP (出栈)push ax:将寄存器ax中的数据送⼊栈中;pop ax :从栈顶取出数据送⼊ax。
push和pop指令也可以在内存和寄存器传输数据(以栈的形式)8086CPU的⼊栈和出栈操作都是以字为单位进⾏的。
⽰例:1 2 3 4 5 6 7 8 9 10 11假设将10000H~1000FH这段内存当作栈来使⽤(其实CPU并不知道这段是代码段,数据段还是栈段,都是⼈为设定的)下⾯⼀段指令的执⾏过程:mov ax,0123H# AX=0123Hpush ax # 将AX的值推⼊栈中mov bx,2266H# BX=2266Hpush bx # 将BX的值推⼊栈中mov cx,1122H# CX=1122Hpush cx # 将CX的值推⼊栈中pop ax # 将栈顶的2个内存单元取出放到AX寄存器中,AX=1122Hpop bx # 将栈顶的2个内存单元取出放到BX寄存器中,BX=2266Hpop cx # 将栈顶的2个内存单元取出放到CX寄存器中,CX=0123H那么问题来了,在执⾏push和pop的时候,如何知道哪个单元是栈顶单元?8086CPU中,有两个寄存器:段寄存器SS 存放栈顶的段地址寄存器SP 存放栈顶的偏移地址任意时刻,SS:SP指向栈顶元素。
⼆、push和pop指令push 指令的执⾏过程在执⾏push ax指令时,主要做了⼀下2件事(1)先将SP=SP–2(2)将ax中的内容送⼊SS:SP指向的内存单元处,SS:SP此时指向新栈顶。
pop 指令的执⾏过程在执⾏pop ax指令时,主要做了⼀下2件事(1)先将SS:SP指向的内存单元处的数据送⼊ax中;(2)SP = SP+2,SS:SP指向当前栈顶下⾯的单元,以当前栈顶下⾯的单元为新的栈顶。
《汇编语言》寄存器物理地址(第二章第二节)

DS ES SS CS 地 址 加 法 IP 器 地 址 总 线 AB
本课件由汇编网()制作提供
物理地址PA = 段地址 + 偏移地址 = ( 段寄存器 ) × 10H + 偏移地址 或段寄存器的内容左移4位,加上偏移地址
例:某内存单元的段地址由DS、偏移地址由BX给出。
2.5 16位结构的CPU
概括的讲,16位结构描述了一个CPU具有 以下几个方面特征:
1、运算器一次最多可以处理16位的数据。 2、寄存器的最大宽度为16位。 3、寄存器和运算器之间的通路是16位的。
2.6 8086CPU给出物理地址的方法
8086有20位地址总线,可传送20 位地址,寻址能力为1M。 8086内部为16位结构,它只能传送 16位的地址,表现出的寻址能力却 只有64K。
2.7 “段地址×16+偏移地址=物理地址” 的本质含义
两个比喻说明:
说明“基础地址+偏移地址 = 物理地址” 的思想:第一个比喻 说明“段地址×16+偏移地址=物理地址” 的思想:第二个比喻 8086CPU就是这样一个只能提供两张3位 数据纸条的CPU。
2.8 段的概念
错误认识:
内存被划分成了一个一个的段,每一个 段有一个段地址。
通用寄存器
数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
5
2.1 通用寄存器
8086CPU所有的寄存器都是16位的, 可以存放两个字节。 AX、BX、CX、DX 通常用来存放一般 性数据被称为通用寄存器。 下面以AX为例,我们看一下寄存器的 逻辑结构。
汇编语言入门汇编指令及寄存器详解教程

汇编语⾔⼊门汇编指令及寄存器详解教程⽬录前⾔什么是汇编语⾔汇编语⾔产⽣的原因汇编与⼆进制的关系寄存器寄存器作⽤存取速度⽐较寄存器分类常⽤寄存器⽤途寄存器EAX、AX、AH、AL的关系汇编语⾔指令数据传送指令算术运算指令逻辑运算指令循环控制指令转移指令linux 和 windows 下汇编的区别总结前⾔我们⼤都是被⾼级语⾔惯坏了的⼀代,源源不断的新特性正在逐步添加到各类⾼级语⾔之中,汇编作为最接近机器指令的低级语⾔,已经很少被直接拿来写程序了,不过我还真的遇到了⼀个,那是之前的⼀个同事,因为在写代码时遇到了成员函数权限及可见性的问题,导致他⽆法正确调⽤想执⾏的函数,结果他就开始在C++代码⾥嵌⼊汇编了,绕过了种种限制终于如愿以偿,但是读代码的我们傻眼了…因为项⽬是跨平台的,代码推送的 Linux 上编译的时候他才发现,汇编代码的语法在 Linux 和 Windows 上居然是不⼀样的,结果他⼜⽤⼀个判断平台的宏定义“完美”的解决了,最终这些代码肯定是重写了啊,因为可读性太差了,最近在学习左值、右值、左引⽤和右引⽤的时候,总是有⼈⽤程序编译⽣成的中间汇编代码来解释问题,看得我迷迷糊糊,所以决定熟悉⼀下简单的汇编指令,边学习边记录,⽅便今后忘记了可以直接拿来复习。
什么是汇编语⾔汇编语⾔是最接近机器语⾔的编程语⾔,引⽤百科中的⼀段话解释为:汇编语⾔(assembly language)是⼀种⽤于电⼦计算机、微处理器、微控制器或其他可编程器件的低级语⾔,亦称为符号语⾔。
在汇编语⾔中,⽤助记符代替机器指令的操作码,⽤地址符号或标号代替指令或操作数的地址。
汇编语⾔⼜被称为第⼆代计算机语⾔。
汇编语⾔产⽣的原因对于绝⼤多数⼈来说,⼆进制程序是不可读的,当然有能⼈可以读,⽐如第⼀代程序员,但这类⼈快灭绝了,直接看⼆进制不容易看出来究竟做了什么事情,⽐如最简单的加法指令⼆进制表⽰为00000011,如果它混在⼀⼤串01字符串中就很难把它找出来,所以汇编语⾔主要就是为了解决⼆进制编码的可读性问题。
汇编语言第二版各章重点整理

第一章:1.一个存储器有若干个存储单元,一个存储单元可以存储一个B,及一个字节,及8个二进制位,及8个b(比特)2.一个cpu有N根地址线,则可以说这个cpu的地址总线的宽度为N。
这样的cpu最多可以寻找2的N次个内存单元。
3.数据总线中如8根总线一次可以传送一个字节即8b,1B,十六根则是两个字节16b,2B第二章:1. 8086cpu的寄存器都是十六位的,可以存放两个字节,AX,BX,CX,DX,这四个是通用寄存器,通常用来存放一般的数据。
2. 字等于两个字节,即字=2B3. 一个数据的二进制形式左移1位,相当于该数据乘以2;一个数据的二进制形式左移N 位,相当于该数据乘以2的N次方;同理X进制左移N位,相当于该数据乘以X的N次方4. 偏移地址为16位,所以16位地址的寻址能力为64KB,所以一个段的长度最大为64KB5. cs和ip寄存器是cpu每时每刻所要执行的指向6. jmp 段地址:偏移地址是直接跳而jmp 某一寄存器是修改其中的ip7. 用E命令向内存中写入机器码,用U命令查看内存中机器码的含义,用T命令执行内存中的机器码,用A命令以汇编指令的形式在内存中写入机器指令第三章:1. DS和[ ] , DS是段寄存器DS中储存的是段地址,而[ ] 中储存的是偏移地址Mvo 内存单元地址,寄存器也是可以的2.栈是一种具有特殊的访问方式的储存空间,他的的特殊性就在于,最后进入这个空间的数据,最先出去3.push pop ,后面跟寄存器,入栈和出栈都是以字为单位进行的4.段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在sp中,任意时刻,ss:sp指向栈顶元素,入栈时是从高地址向低地址方向进行第五章:1. [bx]同样也是表示一个内存单元,只是它的偏移地址在bx中,段地址还是在段寄存器中2. 注意() 表示括号内的内容,()中的元素可以有三种类型:寄存器,段寄存器名,内存单元的物理地址3. idata表示常量24. cpu执行loop指令的时候,要进行两步操作,第一是(cx)=(cx)-1,第二是判断cx中的值,不为零则转至标号处执行,如果为零则向下执行5. debug 中g 命令是转跳作用,一下子跳到预定的地方;p命令是把循环一次执行完6. 编程中要这样连用ds:[idata],ds:[寄存器],当然[寄存器+idata]也是可以的,同理[寄存器+si或di]也是可以的,前面那个里面两个顺序可以换,还可以这样写: idata[寄存器] [寄存器].idata,后面那个还可以这样写[寄存器][寄存器], [寄存器+idata+si或di],注意没有[寄存器+寄存器]这种类型7. 0:200~0:2ff, 00200h~002ffh的256个字节是安全的第七章:1. and or 是或,与命令2. si和di是8086cpu中和bx功能相近的寄存器,si和di不能分成两个8位的寄存器来使用第八章:1. 只有四个寄存器能在[ ] 中使用,就是bx,si,di,bp,而bx,bp不能同时出现,si,di也不能同时出现2. 只要[ ] 中使用寄存器bp,而指令中没有显性的给出段地址,段地址就默认在ss中3. 在没有寄存器存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte 例如:mov word ptr ds:[0],1 push pop 命令只进行字操作4.div 除法指令如下图所示:db 定义字节型数据dw定义字型数据dd是用来定义双字型数据的,dup是用来进行数据的重复,也就是复制,比如:db 3 dup (0,1,2) 是定义了0 1 2 0 1 2 0 1 2 九个字节5. 操作符offset在汇编语言中是汇编器处理的符号,它的功能是取得标号的偏移地址,比如:p187第九章:1. jcxz 标号如果cx=0,则转移到标号处执行,当cx不等于0,则什么也不做,它是短转移2. loop 标号cx=cx-1 如果cx不等于0 转移到标号处执行,就是s loop s循环3. ret指令用栈中的数据修改ip的内容,从而实现近转移,retf指令用栈中的数据,修改cs和ip的内容,从而实现远转移所以ret相当于:pop ipRetf相当于:pop ipPop cs5.cpu执行call指令的时候,进行两步操作,第一将当前的ip或cs和ip压入栈中;第二是转移。
汇编语言之寄存器使用(bx,si,di,bp)

汇编语⾔之寄存器使⽤(bx,si,di,bp)这⾥对这⼏个寄存器总结⼀下。
通⽤寄存器的主要⽤途寄存器的分类寄存器主 要 ⽤ 途通⽤寄存器数据寄存器AX乘、除运算,字的输⼊输出,中间结果的缓存AL字节的乘、除运算,字节的输⼊输出,⼗进制算术运算AH字节的乘、除运算,存放中断的功能号BX存储器指针CX串操作、循环控制的计数器CL移位操作的计数器DX字的乘、除运算,间接的输⼊输出变址寄存器SI存储器指针、串指令中的源操作数指针DI存储器指针、串指令中的⽬的操作数指针变址寄存器BP存储器指针、存取堆栈的指针SP堆栈的栈顶指针指令指针IP/EIP标志位寄存器Flag/EFlag32位CPU的段寄存器16位CPU的段寄存器ES附加段寄存器CS代码段寄存器SS堆栈段寄存器DS数据段寄存器新增加的段寄存器FS附加段寄存器GS附加段寄存器这张表⽤来参照。
(1)在8086CPU中只有这四个寄存器可以在[...]中进⾏内存单元的寻址。
⽐如,下⾯的指令都是正确的:mov ax,[bx]mov ax,[bx+si]mov ax,[bx+di]mov ax,[bp]mov ax,[bp+si]mov ax,[bp+di]⽽下⾯都是错误的:mov ax,[cx]mov ax,[ax]mov ax,[dx]mov ax,[ds](2).在[...]中,这四个寄存器可以单独出现,或者只能以四种组合出现:bx和si、bx和di、bp和si、bp和di。
⽐如下⾯都是正确的mov ax,[bx]mov ax,[si]mov ax,[di]mov ax,[bp]mov ax,[bx+si]mov ax,[bx+di]mov ax,[bp+si]mpv ax,[bp+di]mov ax,[bx+si+idata]mov ax,[bx+si+idata]mov ax,[bp+si+idata]mov ax,[bp+di+idata]下⾯就是错误的mov ax,[bx+bp]mov ax,[si+di](3)只要在[....]中使⽤寄存器bp,⽽指令汇总没有显⽰给出段地址,段地址就默认在ss中。
汇编语言学习笔记之物理地址

汇编语⾔学习笔记之物理地址物理地址CPU访问内在单元时,要给出内存单元的地址。
所有的内存单元构成的存储空间是⼀个⼀维的线性空间,每⼀个内存单元在这个空间中都有惟⼀的地址,我们将这个惟⼀的地址称为物理地址。
CPU通过地址总线送⼊存储器的必须是⼀个内存单元的物理地址。
在CPU向地址总线上发出物理地址之前,必须在内部先形成这个物理地址。
不同的CPU可以有不同的形成物理地址的⽅式。
下⾯讨论8086CPU是如何在内部形成内存单元的物理地址的。
8086CPU16位结构的CPU,具有下⾯⼏⽅⾯的结构特性:运算器⼀次最多可以处理16位的数据;寄存器的最⼤宽度为16位;寄存器和运算器之间的通路为16位。
8086CPU读写内存的过程:1. CPU中的相关部件提供两个16位的地址,⼀个称为段地址,另⼀个称为偏移地址;2. 段地址和偏移地址通过内部总线送⼊⼀个称为地址加法器的部件;3. 地址加法器将两个16位地址合成为⼀个20位的物理地址;4. 地址加法器通过内部总线将20位物理地址送⼊输⼊输出控制电路;5. 输⼊输出控制电路将20位物理地址送上地址总线;6. 20位物理地址被地址总线传送到存储器。
地址加法器采⽤物理地址=段地址*16+偏移地址的⽅法⽤段地址和偏移地址合成物理地址。
CPU可以⽤不同的段地址和偏移地址形成同⼀个物理地址。
例如:CPU要访问21F60H单元,则它给出的段地址SA和偏移地址EA满⾜SA*16+EA=21F60H即可。
如果给定⼀个段地址,仅通过变化偏移地址来进⾏寻址,最多可定位多少内存单元?偏移地址16位,变化范围为0~FFFFH,仅⽤偏移地址来寻址最多可寻64KB个内存单元。
⽐如给定段地址1000H,⽤偏移地址寻址,CPU的寻址范围为:10000H~1FFFFH。
“数据在21F60H内存单元中”对于8086CPU的意思是:数据存在内存2000:1F60单元中;或者,数据存在内存的2000段中的1F60单元中。
汇编语言学习笔记

汇编语言学习笔记《汇编语言》--王爽前言学习汇编目的:充分获得底层编程体验;深刻理解机器运行程序的机理。
原则:没有通过监测点不要向下学习;没有完成当前实验不要向下学习。
第一章基础知识有三类指令组成汇编语言:汇编指令;伪指令;其他符号。
8bit = 1byte = 一个存储单元有n根地址线,则可以寻址2的n次方个内存单元。
1.1节--1.10节小结(1)汇编指令是机器指令的助记符,同机器指令一一对应。
(2)每一种cpu都有自己的汇编指令集。
(3)cpu可以直接使用的信息在存储器中存放。
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号。
(6)一个存储单元可以存储8个bit,即八位二进制数。
(7)每一个cpu芯片都有许多管脚,这些管脚和总线相连。
也可以说,这些管脚引出总线。
一个cpu可以引出的三种总线的宽度标志了这个cpu不同方面的性能。
地址总线的宽度决定了cpu的寻址能力;数据总线的宽度决定了cpu与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了cpu对系统中其他器件的控制能力。
监测点:1KB的存储器有1024个存储单元?存储单元的编号从0到1023.内存地址空间:最终运行程序的是cpu,我们用汇编编程时,必须要从cpu的角度思考问题。
对cpu来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受cpu寻址能力的限制。
这个逻辑存储器即是我们所说的内存地址空间。
第二章寄存器(cpu的工作原理)mov ax, 2add ax, axadd ax, axadd ax, ax(1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;(2)段地址和偏移地址通过内部总线送人一个称为地址加法器的部件;(3)地址加法器将两个16位地址合成为一个20位的物理地址;(4)地址加法器通过内部总线将20位物理地址送人输入输出控制电路;(5)输入输出控制电路将20位物理地址送上地址总线;(6)20位物理地址被地址总线传送到存储器;段地址*16+偏移地址= 物理地址的本质含义内存并没有分段,段的划分来自cpu。
汇编语言第二章 寻址方式

第二章寻址方式在8086微处理器中,一条指令通常由操作码加上操作数构成。
指令形式为:操作码[操作数1], [操作数2]; 注释其中,操作码指明执行的动作,操作数指明操作的对象。
由于寄存器数量有限,操作数不可能都放在寄存器中,实际上,操作数既可以放在寄存器中,也可以放在主存贮器中,这样就涉及到操作数的寻址问题。
我们将寻址操作数存放地址的方式称为寻址方式。
本章的内容包括:主存储器和物理地址的形成寻址方式常量与变量的定义2.1 主存贮器和物理地址的形成一、主存贮器计算机存贮系统分为:主存贮器(内存)、辅助存贮器(外存)。
●主存容量小、存取速度快、价格高;●辅存容量大、存取速度慢、价格低。
主存贮器的基本存贮单位是“位”(bit ),每8位组合成一个“字节”;每相邻的两个字节称为“字”;相邻的四个字节称为“双字”。
为了区别各个存贮单元,给每个单元编号,称为地址。
地址:字节单元的编号,也称为物理地址。
低字节放低位,高字节放高位。
例如:0004单元存放内容为1234H 。
0 10FFFFFH 低地址 高地址 从0~0FFFFFH ,共有220个单元,20根地址线。
表示:(0004)字=1234H二、存储器物理地址的形成早期的8086微处理器,有20根地址线,寻址范围2^20 = 1M 字节。
但是,8086内部为16位结构,与地址相关的寄存器均为16位,从而导致可寻址范围为64K。
因此,设计成为将主存分段使用,每段最大为64K字节。
用CS、DS、SS、ES保存当前可用段的段首地址。
规定:段首地址只能从任一“小段”的首地址开始,也就是必须最低4位为0,如果所有的段首地址都是这样,则可以忽略最低4位,而只将高16位放到段寄存器中。
因此,计算物理地址时,应将段寄存器内容左移4位,恢复段首址原值,然后再与本段中待访问单元的偏移地址相加,得到访问单元的物理地址。
因此,被访问单元物理地址PA = 段首址*16+偏移地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 几条汇编指令
1
汇编指令不区分大小写
2.3 几条汇编指令
CPU执行下表中的程序段的每条指令后, 对寄存器中的数据进行的改变。
2.3 几条汇编指令
地址寄存器
包括指针和变址寄存器SI、DI、SP、 BP四个16位寄存器。顾名思义,它们 可用来存放存储器的偏移地址。另外, 它们也可以作为通用寄存器用。严格 地说,用来存放存储器偏移地址的寄 存器都应该叫地址寄存器,如BX基址 寄存器、IP指令指针寄存器等。
1、运算器一次最多可以处理16位的数据。
2、寄存器的最大宽度为16位。
3、寄存器和运算器之间的通路是16位的。
2.6 8086CPU给出物理地址的方法
8086有20位地址总线,可传送20 位地址,寻址能力为1M。
8086内部为16位结构,它只能传送 16位的地址,表现出的寻址能力却 只有64K。
+ 01001011
11100101 CPU会自动地把标志位设为:CF=0,
SF=1,ZF=0,OF=0,即无进位,结 果为负数,结果不为0,没有溢出。
标志名 进位标志 符号标志 零标志 溢出标志
辅助进位 标志 奇偶标志 方向标志 中断标志
标志 CF SF ZF OF AF
PF DF IF
值为1 CY NG ZR OV AC
值是多少? 答案:28-1。
2.2 字在寄存器中的存储
一个字可以存在一个16位寄存器中, 这个字的高位字节和低位字节自然 就存在这个寄存器的高8位寄存器 和低8位寄存器中。
关于数制的讨论
由于一个内存单元可以存放 8位数据, CPU中的寄存器又可存放 n 个 8位数据。 也就是说,计算机中的数据大多 是由1~N个8位数据构成的。
SI 源变址寄存器,可用于存放源缓 冲区的偏移地址。
DI 目的变址寄存器,可用于存放目 的缓冲区的偏移地址。
SP 堆栈指针寄存器,用于指出堆栈 区的栈顶的偏移地址。
BP 基址指针寄存器,用于指出堆栈 区的某个单元的偏移地址。
段寄存器
CS 代码段寄存器,用于指出存放程 序的代码段的段地址。
DS 数据段寄存器,用于指出存放数 据的数据段的段地址。
《汇编语言》课件
第2章 寄存器(CPU工作原理)
2.1 通用寄存器
2.7 “段地址×16+偏移地址
2.2 字在寄存器中的存储
=物理地址”的本质含义
2.3 几条汇编指令
2.8 段的概念
2.4 物理地址
2.9 段寄存器
2.5 16位结构的CPU
2.10 CS和IP
2.6 8086CPU给出物理地址 2.12 代码段 的方法
ES 附加段寄存器,用于指出存放附 加数据的附加段的段地址。
SS 堆栈段寄存器,用于指出堆栈区 的堆栈段的段地址。
控制寄存器
IP 指令指针寄存器:用来存放代码段中的偏移地址, 指出当前正在执行指令的下一条指令所在单元的偏 移地址。 FLAGS标志寄存器:其中的某位代表CPU的一个标 志,最低位为D0,最高位为D15。8086CPU的标 志寄存器共有9个标志,分别为6个条件码标志和3 控制标志。其含义如下:
2.6 8086CPU给出物理地址的方法
8086CPU采用一种在内部用两个16位 地址合成的方法来形成一个20位的物 理地址。
8086CPU相关部件的逻辑结构
地址加法器
地址加法器合成物理地址的方法: 物理地址=段地址×16+偏移地址 物理地址=段地址×10H+偏移地址
例如: 8086CPU访问地址为123C8H的内存单元
PE DN EI
值为0 NC PL NZ NV NA
PO UP DI
2.4 物理地址
CPU访问内存单元时要给出内存单元 的地址。所有的内存单元构成的存储 空间是一个一维的线性空间。 每一个内存单元在这个空间中都有唯 一的地址,这个唯一的地址称为物理 地址。
2.5 16位结构的CPU
概括的讲,16位结构描述了一个CPU具有 以下几个方面特征:
2.1 通用寄存器
以AX为例,8086CPU的16位寄存器分 为两个8位寄存器的情况:
2.1 通用寄存器
AX的低8位(0位~7位)构成了AL寄存 器,高8位(8位~15位)构成了AH寄 存器。
AH和AL寄存器是可以独立使用的8位寄 存器。
8086CPU的8位寄存器数据存储情况 一个8位寄存器所能存储的数据的最大
方
溢出标志 向
标 志
中断标志跟踪标符志号标志 辅零助标进志位标奇志偶标志进位标志
在DEBUG调试环境下以字母缩写的形式 表示各个标志位的状态。
进入DEBUG后,用R命令查看寄存器状 态时,可以看到除了跟踪标志以外的标 志位的状态。
例1 两个二进制数相加运算,有关标志 位自动发生变化。
10011010
2.位的数 据。(数据的存放情况)
一个16位寄存器所能存储的数据的最大 值为多少? 答案:216-1。
2.1 通用寄存器
8086上一代CPU中的寄存器都是8位的; 为保证兼容性,这四个寄存器都可以分
为两个独立的8位寄存器使用。 AX可以分为AH和AL; BX可以分为BH和BL; CX可以分为CH和CL; DX可以分为DH和DL。 8086CPU的8位寄存器存储逻辑
通用寄存器
数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
5
2.1 通用寄存器
8086CPU所有的寄存器都是16位的, 可以存放两个字节。
AX、BX、CX、DX 通常用来存放一般 性数据被称为通用寄存器。
下面以AX为例,我们看一下寄存器的 逻辑结构。
CPU概述
一个典型的CPU由运算器、控制器、寄 存器等器件组成,这些器件靠内部总线 相连。
内部总线实现CPU内部各个器件之间的 联系。
外部总线实现CPU和主板上其它器件的 联系。
寄存器概述
含14个16位寄存器,按功能可分为三类
8个通用寄存器 4个段寄存器 2个控制寄存器 它们的名称为: AX、BX、CX、DX、SI、DI、SP、BP、 IP、CS、SS、DS、ES、PSW。