◆5.以16位数据指针为目的地的指令 ◆ MOV DPTR,# datal6;DPTR← datal6 ◆此条指令是将一个16位的立即数送给数据指针 DPTR。其中高8位送DPH,低8位送DPL ◆6.累加器与片外数据存储器间的传送指令 (输入输出指令) MOVX A, aRi A (Ri)) MOVX Ri, A ((Ri))←A MovX A, @DPTR A+((DPTR)) MOVX QDPTR,A;((DPTR))<A ◆在寻址方式中讲过,扩展系统中片外数据存储 器的地址有8位和16位两种
5.以16位数据指针为目的地的指令 MOV DPTR,#data16 ;DPTR← data16 此条指令是将一个16位的立即数送给数据指针 DPTR。其中高8位送DPH,低8位送DPL 。 6.累加器与片外数据存储器间的传送指令 (输入/输出指令) MOVX A,@Ri ;A←((Ri)) MOVX @Ri,A ;((Ri))←A MOVX A,@DPTR ;A←((DPTR)) MOVX @DPTR,A ;((DPTR)) ←A 在寻址方式中讲过,扩展系统中片外数据存储 器的地址有8位和16位两种
◆7.程序存储器操作指令(查表指令) ◆程序存储器可读不可写。我们常将表格数据预 先存放在程序存储器中,在程序运行中对其进 行搜索,将需要的数据取到累加器中,这个过 程称为查表。查表指令有两条: ◆MOVC A,OA+DPTR MOVC A,@A+PC ◆DPTR或PC为基址寄存器,存放数据区起始地 址(称基地址),累加器A的内容为偏移量, 是操作数所在单元与基地址之间的字节数,在 执行时先将DPTR或PC的内容与A的内容相加 得到的和作为操作数在数据区中的存放地址, 再据此将操作数取出送给累加器A
7.程序存储器操作指令(查表指令) 程序存储器可读不可写。我们常将表格数据预 先存放在程序存储器中,在程序运行中对其进 行搜索,将需要的数据取到累加器中,这个过 程称为查表。查表指令有两条: MOVC A,@A+DPTR MOVC A,@A+PC DPTR或PC为基址寄存器,存放数据区起始地 址(称基地址),累加器A的内容为偏移量, 是操作数所在单元与基地址之间的字节数,在 执行时先将DPTR或PC的内容与A的内容相加, 得到的和作为操作数在数据区中的存放地址, 再据此将操作数取出送给累加器A
◆例设从程序存储器0100H 地址数据表显示字符 开始的10个单元中已存放 了字符0~9的编码,如图000 3-7所示。现要将2的编码100061 5BH取出送累加器 0102H5B 2 0103H4F3 0104H66 MOV DPTR#0100H0105H6D ◆MOVA,#02H 0106H7D 0107H07 ◆ MOVC A,⑦A+DPTR0108H7F 6789 0109H6F
例 设从程序存储器0100H 开始的10个单元中已存放 了字符0~9的编码,如图 3-7所示。现要将2的编码 5BH取出送累加器。 MOV DPTR ,#0100H MOV A,#02H MOVC A,@A+DPTR
◆8.数据交换指令 Q①8位数据交换指令 XCH A, Rn AfRn XCH A, aRi A+ (Ri XCH a, direct A+( direct ◆②4位数据交换指令 XCHD A, RI A3 -OF(RI SWAP A A+A ~0 ◆此类指令中,交换的双方互为源和目的 地,指令执行后,每方的操作数都修改 为对方的操作数
8.数据交换指令 ① 8位数据交换指令 XCH A,Rn ;ARn XCH A,@Ri ;A(Ri) XCH A,direct ;A(direct) ② 4位数据交换指令 XCHD A,@Ri ;A3~0(Ri)3~0 SWAP A ;A7~4A3~0 此类指令中,交换的双方互为源和目的 地,指令执行后,每方的操作数都修改 为对方的操作数
◆9.堆栈操作指令 ◆堆栈是在片内RAM中设置一个区域,其有特殊 的操作方式:压入和弹出。堆栈指针SP始终指 向堆栈顶部。堆栈操作的特点是“先进后出” 即先被放进堆栈中的数据总是后被取出。 ◆堆栈操作指令有两条: ◆ PUSH direct;SP←SP+1,(SP)← dircet) ◆POP direct;( dircet)←(SP)P←SP-1 ◆面用例子介绍堆栈操作指令的功能。设SP=30H, A=01H,B=02H,现执行如下指令: ◆PUSH ACC ◆PUSH B ◆POP10H
9.堆栈操作指令 堆栈是在片内RAM中设置一个区域,其有特殊 的操作方式:压入和弹出。堆栈指针SP始终指 向堆栈顶部。堆栈操作的特点是“先进后出” , 即先被放进堆栈中的数据总是后被取出。 堆栈操作指令有两条: PUSH direct ;SP←SP+1,(SP)←dircet) POP direct ;(dircet)←(SP)P←SP-1 面用例子介绍堆栈操作指令的功能。设SP=30H, A=01H,B=02H,现执行如下指令: PUSH ACC PUSH B POP 10H