3.2.2外部RAM传送指令操作汇编指令格式机器指令格式FOHMOVX@DPTR,A外((DPTR))←一 (A)EOHMOVX A,@DPTRA ← 外((DPTR))MOVX @Ri,AF2H~F3H外(Ri))←(A)MOVXA,@RiE2H~E3HA←外(Ri))注意:8051没有专门的A输入/输出指令,在访问外部的设备时,可以采用这种方式与外部设备的端寄存器间接寻址寄存器间接寻址@Ri@DPTR口打交道。外部RAM256B外部RAM64KB
3.2.2 外部RAM传送指令 汇编指令格式 机器指令格式 操 作 MOVX @DPTR,A F0H 外((DPTR)) ← (A) MOVX A,@DPTR E0H A ← 外((DPTR)) MOVX @Ri,A F2H~F3H 外((Ri) ) ← (A) MOVX A,@Ri E2H~E3H A ← 外((Ri)) 注意:8051没有专门的 输入/ 输出指令,在访问 外部的设备时,可以采用 这种方式与外部设备的端 口打交道。 A 寄存器间接寻址 @Ri 外部 RAM 256B 寄存器间接寻址 @DPTR 外部 RAM 64KB
查表指令3.2.3操作汇编指令格式机器指令格式93HPC ←(PC)+1,MOVCA@A+DPTRA <←一 (A)+(DPTR))83HMOVCA,@A+PCPC ← (PC)+1,A ←一 (A)+(PC))注意:后一条指令只能查找指令所在位置以后256B范围内的代码或常数,前@A+DPTR变址@A+PC变址近程查表远程查表一条指令查表范围可达整ROM64KBROM指令附近256B个程序存储器的64KB空间
3.2.3 查表指令 汇编指令格式 机器指令格式 操 作 MOVC A,@A+DPTR 93H PC ← (PC)+1, A ← ((A)+(DPTR)) MOVC A,@A+PC 83H PC ← (PC)+1, A ← ((A)+(PC)) 注意:后一条指令只能查 找指令所在位置以后256B 范围内的代码或常数,前 一条指令查表范围可达整 个程序存储器的64KB空间。 A @A+DPTR 变址 远程查表 ROM 64KB @A+PC 变址 近程查表 ROM 指令附近 256B
交换指令3.2.41.字节交换指令操作机器指令格式汇编指令格式C8~CFHXCH A,Rn(A) (Rn)C5HXCHA,direct(A) (direct)XCH A,@RiC6H~C7H(A) (Ri)注意:该操作只影响标志位P。2.半字节交换指令操作汇编指令格式机器指令格式XCHD A,@RiD6H~D7H(A)0~3 ((Ri))0~3注意:该操作只影响标志位P
3.2.4 交换指令 1. 字节交换指令 汇编指令格式 机器指令格式 操 作 XCH A,Rn C8~CFH (A) (Rn) XCH A,direct C5H (A) (direct) XCH A,@Ri C6H~C7H (A) ((Ri)) 注意:该操作只影响标志位P。 2. 半字节交换指令 汇编指令格式 机器指令格式 操 作 XCHD A,@Ri D6H~D7H (A)0~3 ((Ri))0~3 注意:该操作只影响标志位P
3.累加器半字节交换指令操作汇编指令格式机器码格式C4HSWAP A(A)0~3 (A)4~7注意:该操作不影响标志位P
3. 累加器半字节交换指令 汇编指令格式 机器码格式 操 作 SWAP A C4H (A)0~3 (A)4~7 注意:该操作不影响标志位P
堆栈操作指令3.2.51.入栈指令操作机器指令格式汇编指令格式CoH directPUSH directSP ← (SP)+1,(SP)←一(direct)注意:堆栈指针SP先加1,并指向栈顶的上一个空单元,然后再将直接地址(direct)寻址的单元内容压入当前SP所指示的堆栈单元中。该操作不影响标志位P。2.出栈指令操作机器指令格式汇编指令格式POP directDoH directdirect ←一((SP))SP ←(SP)-1注意:先将堆栈指针(SP)所指示的内部RAM(栈顶)单元中内容送入由直接地址寻址的单元中,然后再将栈指针(SP减1并回送SP。该操作不影响标志位P
3.2.5 堆栈操作指令 1. 入栈指令 汇编指令格式 机器指令格式 操 作 PUSH direct C0H direct SP ← (SP)+1, (SP) ← (direct) 注意:堆栈指针SP先加1,并指向栈顶的上一个空单元,然后 再将直接地址(direct)寻址的单元内容压入当前SP所指示的 堆栈单元中。该操作不影响标志位P。 2. 出栈指令 汇编指令格式 机器指令格式 操 作 POP direct D0H direct direct ← ((SP)), SP ← (SP)-1 注意:先将堆栈指针(SP)所指示的内部RAM(栈顶)单元中内容 送入由直接地址寻址的单元中,然后再将栈指针(SP)减1并 回送SP。该操作不影响标志位P