51 单片机的寻址方式 学习汇编程序设计,要先了解CPU 的各种寻址法,才能有效的掌握各个命令的用途,寻址法是命令运算码找操作数的方法
指令的寻址方式 MOV P1, #0FFH 这条指令,第一个词MOV 是命令动词,也就是决定做什么事情的,MOV 是 MOVE 少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1 这个寄存器
寻址方式:指定操作数所在单元的方法
注意:源操作数、目的操作数都有各自的寻址方式
掌握指令的7 种寻址方式的作用以及不同寻址方式所查询的存储空间及范围,对于常用的指令,能够给出指令的寻址方式
在我们学习的8051 单片机中,有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 单片机的指令系统中,仅有一条指