历史上的今天
今天是:2025年03月01日(星期六)
2021年03月01日 | 51单片机指令系统寻址方式
2021-03-01 来源:eefocus
指令给出参与运算的数据方式称为寻址方式。换句话说,寻址方式就是寻找确定参与操作的数的真正地址。
在MCS-51系列单片机的指令系统中寻址方式共有7种,
立即寻址方式,mcs-51单片机的一种寻址方式,操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H,立即寻址方式通常用于对通用寄存器或内存单元赋初值。
直接寻址方式,指令操作数域给出的是参加运算的操作数地址。在MCS-51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据寄存器和位地址空间。其中,特殊功能寄存器和位地址空间只能用直接寻址方式访问。
寄存器寻址方式,操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。 指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。
间接寻址方式,指令操作数给出的是存放操作数地址的寄存器。在MCS-51指令系统中,可作为寄存器间接寻址的寄存器有工作寄存器R0~R1、堆栈批示器SP和地址寄存器DPTR。在指令助记符中,间接寻址用符号 @来表示。
相对寻址方式,以当前程序计数器pc的内容为基址,加上指令给出的一字节补码数(偏移量)形成新的pc值的寻址方式称为相对寻址。
变址寻址方式 ,在通用寄存器中,有些寄存器可作为变址寄存器。把变址寄存器的内容(通常是首地址)与指令地址码部分给出的地址(通常是位移量)之和作为操作数的地址来获得所需要的操作数就称为变址寻址。
位寻址方式,它是指对一些内部数据存储器RAM和特殊功能寄存器进行位操作时的寻址。在进行位操作时,借助于进位位C作为操作累加器,指令操作数域直接给出该位的地址,然后根据操作码的性质对该位进行位操作。位地址与字节直接寻址中的字节地址形式完全一样,主要由操作码加以区分。
上一篇:51单片机定时器工作原理及用法
下一篇:51单片机学习单片机之路总结
史海拾趣
|
学历与薪酬收入 根据2007年度中国电子行业薪酬和职业发展调查。 调查显示,中国电子工程师的薪酬奖金收入与学历成正比例关系。拥有博士学位的电子工程师的平均年薪酬最高约为人民币131396元(月薪人民币10950元),平均年奖金收入为人民币 ...… 查看全部问答> |
|
我要用到一个开源包(GeoPad),开发环境为EVC+PPC2003模拟器,所给开发包SDK中包括了3个DLL(GeoPAD.DLL,GeoPADVB.NET.DLL,和GeoPADVC.NET.DLL)和一个.h文件(定义了一个类GeoPADCtrl),还分别给了C#和c++版的2个例程。 C#版的例程将GeoPADVB.NET. ...… 查看全部问答> |
|
位图问题,想在uboot启动的时候把一张图片显示到LCD上面。这时候系统还没有起来,不知道程序怎么写? 我现在能想到的方案是这样的: @ 把bitmap图像的数据用数组的形式组织起来,然后把这些数据丢到显示缓存上面。然后让其显示在lcd上面。 现在遇到的问题是, 1;不知道bimap的数据是怎样组织的。用UltraEdit打开一张bitmap位图,里面的数据看不懂 ...… 查看全部问答> |
|
我在用KEIL编程的时候,发现mian.c函数的前面有三个点, 后面查资料说是没有参与编译。 如图 下载 (9.33 KB) 2010-10-1 20:44 请问下KEIL是在哪里设置函数是否参与编译? 谢谢。… 查看全部问答> |
|
altium designer中关于polygon和焊盘间距的布线规则的设置 步骤如下:— Design》Rules》Design Rules》Electrical》Clearances— 右键单击鼠标,而后选择*New Rule*即添加了新的间距规则— 在上面的where the first object matches选项里选advanced,query builder>>下拉菜单-object kind is 后面选pol ...… 查看全部问答> |
|
Stellaris M3 选型表 ,含芯片系列(Tempest,Sandstorm..) 附件是ti stellaris m3 芯片的选型表,里面有各种芯片是对应哪个系列的对应关系。很多客户可能不知道一个型号究竟是那个系列的芯片,用这个选型表最容易查出来。… 查看全部问答> |




