寄存器寻址指令
- 格式:ppt
- 大小:2.84 MB
- 文档页数:255


通用寄存器:AX累加器(Accumulator),BX 基地址寄存器(Base Register),CX 计数寄存器(Count Register) ,DX数据寄存器(Data Register)
段寄存器:代码段寄存器CS--code segment , 数据段寄存器DS--data segment , 堆栈段寄存器SS--stack segment ,附加段寄存器ES--extra segment 。
特殊功能寄存器:指令指针寄存器IP--instruction pointer ,堆栈指针SP--stack
pointer ,基址指针BP--base pointer ,源变址寄存器SI--source index ,目标变址寄存器DI--destination index ,标志寄存器FR--flag register(或者叫程序状态字PSW--program status word)。
PSW常用的标志有:
标志 值为1时的标记 值为0时的标记
OF(overflow flag) OV(overflow) NV(not overflow)
ZF(zero flag) ZR(zero) NZ(not zero)
PF(parity flag) PE(parity even) PO(parity odd)
CF(carry flag) CY(carried) NC(not carried)
DF(direction flag) DN(down) UP(up)
SF(sign flag) NG(negative) PL(plus)
七种寻址方式
1、立即寻址方式:
操作数就包含在指令中。作为指令的一部分,跟在操作码后存放在代码段。
这种操作数成为立即数。立即数可以是8位的,也可以是16位的。
例如:
指令: MOV AX,1234H
则: AX = 1234H
2、寄存器寻址方式:
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。
对于8位操作数,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。
这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数
因而可以取得较高的运算数度。
3、直接寻址方式:
操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)
注:操作数一般存放在数据段 所以操作数的地址由DS加上指令中直接给出的16位偏移得到。如果采用
段超越前缀,则操作数也可含在数据段外的其他段中。
例如:
MOV AX,[8054]
如(DS) = 2000H,
则执行结果为(AX) = 3050H
(物理地址=20000+8054=28054H)
28054H里的内容为3050H
在汇编语言指令中,可以用符号地址代替数值地址
如:MOV AX,VALUE
此时VALUE为存放操作数单元的符号地址。
如写成:MOV AX,[VALUE]也是可以的,两者是等效的。
如VALUE在附加段中,则应指定段超越前缀如下:
MOV AX,ES:VALUE 或 MOV AX,ES:[VALUE]
4、寄存器间接寻址方式:
操作数在寄存器中,操作数有效地址在SI、DI、BX、BP
这四个寄存器之一中。在一般情况下,如果有效地址在
SI、DI和BX中,则以DS段寄存器中的内容为段值。如果
有效地址在BP中,则以SS段寄存器中的内容为段值
51单片机寄存器+指令
本篇总结了单片机学习过程中常常遇到的一些缩写符号和助记符及简要介绍,
方便大家查看。欢迎下载!符号地址功能介绍
BF0HB寄存器
ACCE0H累加器
PSWD0H程序状态字
IPB8H中断优先级控制寄存器
P3B0HP3口锁存器
IEA8H中断允许控制寄存器
P2A0HP2口锁存器
SBUF99H串行口锁存器
SCON98H串行口控制寄存器
P190HP1口锁存器
TH18DH定时器/计数器1(高8位)
TH08CH定时器/计数器1(低8位)
TL18BH定时器/计数器0(高8位)
TL08AH定时器/计数器0(低8位)
TMOD89H定时器/计数器方式控制寄存器
TCON88H定时器/计数器控制寄存器DPH83H数据地址指针(高8位)
DPL82H数据地址指针(低8位)
SP81H堆栈指针
P080HP0口锁存器
PCON87H电源控制寄存器
下面,我们介绍一下几个常用的SFR。
1、ACC---是累加器,通常用A表示。
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做
加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一
个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们
将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,
若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器。
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以
了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:D7D6D5D4D3D2D1D0
CYACF0RS1RS0OVP
下面我们逐一介绍各位的用途
CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只
能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会
直接寻址 间接寻址的指令格式和功能分别是什么?
直接寻址的含义,指令格式和功能各是什幺?
答:在直接寻址方式中,指令操作数域给出的是参加运算的操作数地址。
在MCS-51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据寄
存器和位地址空间。其中,特殊功能寄存器和位地址空间只能用直接寻址方
式访问。
寄存器间接寻址的含义,指令格式和功能各是什幺?
答:在寄存器间接寻址方式中,指令操作数给出的是存放操作数地址的寄
存器。在MCS-51指令系统中,可作为寄存器间接寻址的寄存器有工作寄存
器R0~R1、堆栈批示器SP和地址寄存器DPTR。在指令助记符中,间接寻址
用符号 @来表示。
位寻址的含义,指令格式和功能各是什幺?
答:它是指对一些内部数据存储器RAM和特殊功能寄存器进行位操作时
的寻址。在进行位操作时,借助于进位位C作为操作累加器,指令操作数域
直接给出该位的地址,然后根据操作码的性质对该位进行位操作。位地址与
字节直接寻址中的字节地址形式完全一样,主要由操作码加以区分。