1. MCS-51系列单片机有哪7种寻址方式各有什么特点
MCS-51系列闭改单片机有哪7种寻址方式?各有什么特点?
正确答案:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。立即寻址数据包含指轿尘判令信息中、直接寻址数据在存储空间、寄存器兄好寻址数据在工作寄存器、寄存器间接寻址中数据在意寄存器内容为地址的数据存储空间,变址寻址数据在累加器数值与基址数值之和作为地址所对应的存储器中,相对寻址是目标指令与当前指令的距离,位寻址是对应片内RAM的位寻址区。
2. 单片机系统指令的指令系统的寻址方式
访问指令
一、操作数在寄存器中;
如MOV A,Rn ;(Rn)→A,n=0~7
1、4组工作寄存区,共32个工作寄存器。
2、部分特殊功能寄存器,例如A、B 及DPTR等。
二、访问片外数据存储器
(1)用R0或R1作为间址寄存器,寻址范围为片外低256个字节;
(2)用DPTR作为间址寄存器,寻址范围为片外64K。
a) MOVX A,@Ri ;i=0或1
若(Ri)=70H,把外部RAM中70H单元的内容送到A
b) MOVX A,@DPTR
若(DPTR)=2000H,把外部RAM中2000H单元的内容送到A
3、堆栈操作指令访问堆栈区
堆栈专用操作指令PUSH(压栈)和POP(出栈)使用堆栈
指针(SP)作间址寄存器
指令PUSH(压栈)和POP(出栈),无前缀标志“@”
四、立即(数)寻址方式
操作数在指令中直接给出,需在操作数前面加前缀标志“#”。
如MOV A,#40H,此时立即数在程序存储单元中。
五、基址寄存器加变址寄存器间址寻址方式
1、以DPTR或PC作基址寄存器,以累加器A作为变址寄存器;
2、基址寄存器+变址寄存器形成操作数地址;
3、本寻址方式专门针对程序存储器,寻址范围可达到64KB。
4、本寻址方式的指令只有3条:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
前2条又称查表指令,将程序存储器单元内容给ACC;
后1条为散转指令,属于转移类指令。
(注)
(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。
(2)本寻址方式的指令只有3条:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
六、位寻址方式
89C51有位处理功能,可以对数据位进行操作,
如MOV C,40H是把位40H的值送到进位位C。
寻址范围:
1、内部RAM中的位寻址区(20H—2FH),有2种表示方法。
(1) 直接给出位地址,如MOV C,40H;
(2) 单元地址加位数,如MOV C,(28H).0,指的是28H单元中的最低位。
2、SFR中的可寻址位(70H—FFH,共83位),有4种表示方法。
(1) 直接给出位地址,如MOV C,0D5H(PSW.5的位地址);
(2) 直接写位名称,如MOV C,F0;
(3) 单元地址加位数,如MOV C, (0D0H).5;
(4) SFR符号加位数,如MOV C, PSW.5。
七、相对寻址方式
在相对寻址的转移指令中,给出了地址偏移量“rel”,即
把PC的当前值+ rel 就构成了程序转移的目的地址。即
目的地址=转移指令所在的地址+ 转移指令的字节数+ rel
偏移量rel是带符号的8位二进制补码数,范围是:–128 ~ +127 ;
注意:PC的当前值是紧接在转移指令后的下一条指令的PC值。
3. MCS-51单片机的指令系统有几种寻址方式。
MCS-51单片机的指令系统有七种寻址方式,分别是:
一、立即寻址
立即寻址就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。
二、直接寻址
直接寻址在指令格式的地址的字段中直接指出操作数在内存的地址。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。在指令中直接给出参与运算的操作数及运算结果所存放的主存地址,即在指令中直接给出有效地址。
三、寄存器寻址
寄存器寻址是指操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。
四、寄存器间接寻址
寄存器间接寻址是将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数。MCS-51规定R0或R1为间接寻址寄存器,它可寻址内部RAM低位地址的128个字节单元内容。还可采用数据指针(DPTR)作为间接寻址寄存器,寻址外部数据存储器的64K字节空间,但不能用本寻址方法寻址特殊功能寄存器。
五、相对寻址
相对寻址以程序计数器PC的当前值(R15中的值)为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。
六、变址寻址
把变址寄存器的内容(通常是位移量)与指令地址码部分给出的地址(通常是首地址)之和作为操作数的地址来获得所需要的操作数就称为变址寻址。
七、位寻址
对位地址中的内容进行位操作的寻址方式称为位寻址。由于单片机中只有内部RAM和 特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。
(3)单片机的3种指令寻址方式扩展阅读:
MCS-51单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
4. 51单片机的寻址方式
亲,你好。MCS-51系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。 寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。 寄存器可以使用寄存器组R0~R7中某一个或其它寄存器 (A,B,DPTR等)。 在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式。 在8051中,使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器 (SFR),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。 MOV A, 90H ; 90H是P1口的地址。 指令操作码后面紧跟的是一字节或两字节操作数,用 # 号表示,以区别直接地址。 例如: 寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数.
5. 单片机中堆栈指令是什么寻址方式
寄存器间接寻址范围总结:
1、外部RAM 64KB。对外部RAM64KB的间接寻址,应使用@DPTR作间址寻址寄存器,其形式为:@DPTR。
例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的单元的内容送入累加器A中。
外部RAM的低256单元是一个特殊的寻址区,除可以用DPTR作间址寄存器寻址外,还可以用R0或R1作间址寄存器寻址。
例如MOVX A,@R0;这条指令的意思是,把R0指定的外部RAM单元的内容送入累加器A。
2、堆栈操作指令(PUSH和POP)也应算作是寄存器间接寻址,即以堆栈指针SP作间址寄存器的间接寻址方式。
3、内部RAM低128单元。对内部RAM低128单元的间接寻址,应使用R0或R1作间址寄存器,其通用形式为@Ri(i=0或1)。
4、内部RAM的高128单元也可以访问。但是注意不能用间接寻址的方式去访问特殊功能寄存器,虽然SFR与内部高128字节RAM地址相同,但是当一个指令访问高于7HF的内部位置时,CPU是根据寻址方式来区分是访问高128字节的内部RAM数据还是访问SFR.
6. 单片机 寻址方式
单片机有七种寻址方式分别是:1.寄存器寻址例如: MOV A,R0;2.直接寻址例如: MOV A,4FH;3.寄存器间接寻址 MOV A,@R04.立即数寻址 MOV A,#0FFH5.变址寻址(典型的是查表指令) MOV A,@A+DPTR6.相对寻址 SJMP $7.位寻址 SETB P0.0; MOV 60H,40H;是属于直接寻址;(直接用内存单元的地址来寻找对应的内容) MOV A, #58HMOV RO, #0B0HMOV @RO, AMOV 0B0H, #28H而执行完以上指令后结果是:(0B0H)=P3=28H;因为在8051单片机中P3口是特殊功能寄存器(也占一内存)它的地址刚好是0B0H;程序的最后给0B0H赋了立即数28H;
7. 80c51单片机有几种寻址方式,各涉及那些存储空间
答: 80C51 有七种寻址方式:
1、立即寻址,寻址空间为ROM;
2、直接寻址,寻址空间为片内RAM的低128B和特殊功能寄存器;
3、寄存器寻址,寻址空间为A、B、DPTR、CY、通用工作寄存器等;
4、寄存器间接寻址,片内RAM低128B、片外RAM;
5、相对寻址,寻址空间为ROM; .
6、变址寻址,寻址空间为ROM;
7、位寻址,寻址空间为片内RAM低128B的位寻闹前尺址区的128个位,其字节地址为20H~2FH; 以及部分可以位寻址的特殊功能寄存器。
(7)单片机的3种指令寻址方式扩展阅读
指令的寻址方式有以下两种:
1、顺序寻址方式
由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令地顺序进行。悔态也就是说,从存储器取出第1条指令,然后执行这条指令;接着从存储器取出第2条指令,再执行第二条指令;接着再取出第3条指令。
这种程序顺序执行的过程,液高称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令计数器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。
2、跳跃寻址方式
当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。注意,程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。