2、MOVX指令(4条) ◇功能:用于累加器A和外部RAM或扩展并行IO口进行数 据传送。这种传送只一种寻址方式,即寄存器间接寻址。 ◇两种寄存器用于间接寻址 (DPTR, Ri) ◆用R1或R0进行寄存器间接寻址。该方式能访问外部数 据存储器(或扩展并行IO口)256个字节中一个字节。 ◆若要访问更大片外空间,需用P2口输出高8位地址。需 先给P2和R赋值,然后执行MOVX指令。(访问片内扩 展XRAM时,@R只能访问其0FF空间,与P口无关) ◆用16位数据存储器地址指针DPTR进行寄存器间接寻址 该法能遍访64KB外部数据存储器(或扩展并行ⅣO口)的任 何单元。(访问片内扩展XRAM时,@DPIR与P2口无关 9 19:12:57
2、MOVX指令(4条) 19 19:12:57 两种寄存器用于间接寻址 用R1或R0进行寄存器间接寻址。该方式能访问外部数 据存储器(或扩展并行I/O口)256个字节中一个字节。 若要访问更大片外空间, 需用P2口输出高8位地址。需 先给P2和Ri赋值, 然后执行MOVX指令。(访问片内扩 展XRAM时,@Ri只能访问其00~0FF空间,与P2口无关) 用16位数据存储器地址指针DPTR进行寄存器间接寻址: 该法能遍访64KB外部数据存储器(或扩展并行I/O口)的任 何单元。(访问片内扩展XRAM时,@DPTR与P2口无关) 功能: 用于累加器A和外部RAM或扩展并行I/O口进行数 据传送。这种传送只一种寻址方式, 即寄存器间接寻址。 (@DPTR, @Ri)
2、MOVX指令(4条) ◇指令格式:MOVX目的字节,源字节 ◇有4条指令(A与外部RAM或O口进行数据传送) MOVX A, aDPTR ;A←(DPTR) MOVX A,Ri A←(Ri) MOVX DPTR, A ;(DPTR)←A MOVX Ri A ;(Ri)←A ◇注意:由于使用R1或R0寄存器间接寻址方式访问外 部数据存储器时,寻址范围受到256字节限制,因此, 在实际应用中,一般使用DPTR寄存器间接寻址方式 访问外部数据存储器。 2019:12:57
2、MOVX指令(4条) 指令格式:MOVX 目的字节, 源字节 有4条指令 (A与外部RAM或I/O口进行数据传送) MOVX A, @DPTR ;A←(DPTR) MOVX A, @Ri ;A←(Ri) MOVX @DPTR, A ;(DPTR)←A MOVX @Ri, A ;(Ri)←A 注意:由于使用R1或R0寄存器间接寻址方式访问外 部数据存储器时,寻址范围受到256字节限制,因此, 在实际应用中,一般使用DPTR寄存器间接寻址方式 访问外部数据存储器。 20 19:12:57
2、MOVX指令(4条) ◇例如:若外部数据存储器单元中: 0100H)=60H,(0101H)=2FH 则下列程序执行后的结果 MOV DPTR#0100H: DPTR= 0100H MOXA,@DPTR:执行后,累加器A=60H MOvB,A;B=A=60H,不能MOXB, @DPTR INC DPTR DPTR=0101H MOVX A,@DPTR;执行后,累加器A=2FH 2119:12:57
2、MOVX指令(4条) 例如:若外部数据存储器单元中: (0100H)=60H,(0101H)=2FH 则下列程序执行后的结果: MOV DPTR , #0100H; DPTR = 0100H MOVX A, @DPTR ;执行后, 累加器A=60H MOV B, A ; B=A=60H, 不能MOVX B, @DPTR INC DPTR ; DPTR = 0101H MOVX A, @DPTR ;执行后, 累加器A=2FH 21 19:12:57
3、程序存储器向累加器A传送指令—MovC ◇查表:单片机提供2条查表指令,访问程序存储器。 ◇指令采用变址寻址,以PC或DPTR为基址寄存器,以累 加器A为变址寄存器,基址寄存器与变址寄存器内容相 加得到程序存储器某单元的地址值; ◇MOVC指令把该存储单元的内容传送到累加器A中。 ◇格式: MOVC A,aA+PC;PC←PC+,A←(A+PC) MOVC A, OA+DPTR ;A(A+DPTR ◇功能:把A中内容与基址寄存器PC,DPTR)内容相加, 求得程序存储器单元地址,再把该地址单元内容A ◇指令执行后不改变基址寄存器内容,因执行16位加法, 从低8位产生的进位将传送到高位去,不影响任何标志。 2219:12:57
3、程序存储器向累加器A传送指令——MOVC 查表:单片机提供2条查表指令,访问程序存储器。 指令采用变址寻址, 以PC或DPTR为基址寄存器, 以累 加器A为变址寄存器, 基址寄存器与变址寄存器内容相 加得到程序存储器某单元的地址值; MOVC指令把该存储单元的内容传送到累加器A中。 22 19:12:57 格式: MOVC A, @A+PC ;PC←PC+, A←(A+PC) MOVC A, @A+DPTR ;A←(A+DPTR) 功能: 把A中内容与基址寄存器(PC, DPTR)内容相加, 求得程序存储器单元地址, 再把该地址单元内容A。 指令执行后不改变基址寄存器内容, 因执行16位加法, 从低8位产生的进位将传送到高位去, 不影响任何标志
3、程序存储器向累加器A传送指令一MOVc( ◇ MOVC A,aA+PC 机器码:83H ◇ MOVC A,A+DPTR 机器码:93H ◆这两条指令主要用于查表,即完成从程序存储器读取 数据的功能。 ◆两条指令使用不同的基址寄存器,使用范围也不同。 ◆以PC为基址寄存器时,CPU在取出本指令后PC自动 加1,因为本指令为1字节指令,所以这时PC已不是 原值,而是PC+1的值。 ◆因累加器中内容为8位无符号整数,这使得本指令查 表范围只能在以PC当前值开始后的256字节范围内。 2319:1257
3、程序存储器向累加器A传送指令——MOVC MOVC A , @A+PC MOVC A , @A+DPTR 这两条指令主要用于查表,即完成从程序存储器读取 数据的功能。 两条指令使用不同的基址寄存器, 使用范围也不同。 23 19:12:57 以PC为基址寄存器时,CPU在取出本指令后PC自动 加1,因为本指令为1字节指令,所以这时PC已不是 原值,而是PC+1的值。 因累加器中内容为8位无符号整数, 这使得本指令查 表范围只能在以PC当前值开始后的256字节范围内。 机器码:83H 机器码:93H