51单片机间接寻址C语言,51单片机的寻址方式

本文详细介绍了51单片机的寻址方式,包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址和位寻址。通过实例解析每种寻址方式的特点和应用场景,帮助读者深入理解80C51单片机的指令系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:51单片机的寻址方式

学习汇编程序设计,要先了解CPU的各种寻址法,才能有效的掌握各个命令的用途,寻址法是命令运算码找操作数的方法。

指令的MOV P1,#0FFH这条指令,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1这个寄存器。

寻址方式:指定操作数所在单元的方法。

注意:源操作数、目的操作数都有各自的寻址方式。 掌握指令的7种寻址方式的作用以及不同寻址方式所查询的存储空间及范围,对于常用的指令,能够给出指令的寻址方式。

在我们学习的80中,有7种寻址方法,下面我们将逐一进行分析。

一、立即寻址

所要找的操作数是一或十进制数,出现在指令中,用“#”作前缀

MOV A,#20H

在这种寻址方式中,指令多是双字节的,一般第一个字节是操作码,第二个字节是操作数。该操作数直接参与操作,所以又称立即数,有“#”号表示。立即数就是存放在中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。

例如:

MOV A,#3AH

这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。

MOV DPTR,#8200H

在前面学的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。

这里也特别说明一下:在80C51单片机的中,仅有一条指令的操作数是16位的立即数,其功能是向地址指针DPTR传送16位的地址,即把立即数的高8位送入DPH,低8位送入DPL。

二、直接寻址

指令中直接给出操作数的地址。

MOV A,30H

MOV 30H,DPH

直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。

例如:MOV A,30H

这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。

在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体的说就是:

1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。

我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。

2、位寻址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值