常用的寻址方式有7种之多,到底选择哪一种较为合适?选择寻址方式有两个原则:第一,实用第二,有效。最终都应达到运行速度快、指令代码短的高效率目标程序的目的,立即寻址和寄存器寻址无论从指令长度还是指令执行时间来看,都比存储器寻址要好,但是也要依据情况灵活选用,立即寻址方式一般用于对寄存器、存储单元赋值,且立即数在运算指令中作为源操作数使用,不允许立即数出现在目的操作数中。

由于寄存器就在CPU内部,所以执行速度非常快,而且指令长度也短。缺点是寄存器的个数太少,不能满足保存大量数据的要求。寄存器可以作为中间媒介重复使用。存储器寻址方式满足了大批量数据的保存和读取的需求。但是缺点也很明显,CPU到存储器中读写数据时,要经过总线访问存储器而且存储器的速度比CPU要慢很多,CPU需要等待,因此执行时间上要增加很多。

立即寻址:MOVA,#10H;直接把10H给A直接寻址:MOVA,10H;把地址10H里的内容给A寄存器寻址:MOVA,R1;把寄存器R1中的内容给A寄存器相对寻址:MOVA;@R1,把R1中的内容作为地址,再把地址中的内容给A相对寻址:DJNZA,rel;A0时,转向PC 2 rel为相对寻址变址寻址:MOVCA,@A DPTR;只能用MOVC位寻址:JBACC.0,rel;ACC.01时转向PC 3 rel,

立即数寻址又称立即寻址,即指令中直接给出操作数的寻址方式称为立即数寻址。在51系列单片机指令系统中,立即数用前面加“#”号的8位数表示(#data,如#30H)或16位数(#data16,如#2052H)表示。举例说明立即数寻址方式,以传送指令为例。例:MOVA,#80H;80H>AMOVDPTR,#2000H;2000H>DPTR指令中直接给出操作数地址(dir)的寻址方式称为直接寻址。
2、.8051有哪几种寻址方式?这几种寻址方式是如何进行寻址的?共有7种:立即寻址:用于传送立即数直接寻址:用于片内RAM单元寄存器寻址:用于对寄存器操作寄存器间接寻址:用R0或R1作间址对片内RAM操作相对寻址:用PC 偏移量操作目地地址变址寻址:用PC或DPTR,把A作为偏移量进行查表操作位寻址:用CY对布尔处理器的128个位进行操作。果然这年头懂汇编的人不多了啊,8051单片机共有111条指令,按指令功能分,可分为数据传送类29条,算术运算类24条,逻辑运算类24条,位操作类12条,控制转移类22条。