ACC与外部RAM传送指令
扫描二维码
随时随地手机看文章
对外部RAM单元只能使用寄存器间接寻址方式,与累加器A之间进行数据传送,外部RAM数据传送指令有4条。
前2条采用DPTR作间址寄存器,因DPTR为16位地址指针,所以这两条指令可寻址外部RAM的整个64KB空间,占用P0口和P2口作地址总线。后2条采用R0,R1作8位地址指针,寻址范围只限于外部RAM最低256个单元,只占用P0口。即此时P2口可作其他用途。外部RAM数据传送指令的助记符采用MOVX。以区别于内部RAM数据传送指令MOV,这样才能实现8051对内部RAM和外部RAM的独立编址。
指令MOV A,@DPTR将地址指针DPTR指向的外部数据存储器单元中的数据送入累加器A中。该指令所占空间为1字节,执行时间为2周期,机器码为EO。
假定指令运行前累加器A中内容为45H,DPH中为01H,DPL中为22H,外部数据存储器0122中为23H。下面我们看看指令的运行过程:
指令运行后,累加器A中的内容变为23H,P的值的变为1
指令MOV @DPTR,A将累加器A中数据送入地址指针DPTR指向的外部数据存储器单元中。该指令所占空间为1字节,执行时间为2周期,机器码为F0。
假定指令运行前累加器A中内容为79H,DPH中为10H。DPL中为46H,外部数据存储器1046H中为15H。下面我们看看指令的运行过程:
指令运行后,外部数据存储器1046H单元中的内容变为79H
指令MOV A,@RO将地址指针R0指向的外部数据存储单元中的数据送入累加器A中。该指令所占空间为1字节,执行时间为2周期,机器码为E2
假定指令运行前累加器A中内容为72H,R0中为59H。指令运行后,外部数据存储器59H中为14H,P的值变为0
指令MOV A,@R1将地址指针R1指向的外部数据存储器单元中的数据送入累加器A中。该指令所占空间为1字节,执行时间为2周期,机器码为E3
假定指令运行前累加器A中内容为63H,R1中为32H,外部数据存储器32H中为34H。下面我们看看指令的运行过程:
指令运行后,累加器A中的内容变为34H,P的值变为1
指令MOV @RO,A将累加器A中的数据送入地址指针R0指向外部数据存储器单元中。该指令所占空间为1字节,执行时间为2周期,机器码为 F2
假定指令运行前累加器A中内容为61H,R0中为51H,外部数据存储器51H中为38H。下面我们看看指令的运行过程:
指令运行后,外部数据存储器51H单元中的内容变为61H。
指令MOV @R1,A将累加器A中的数据送入地址指针R1指向的外部数据存储器单元中。该指令所占空间为1字节,执行时间为2周期,机器码为 F3
假定指令运行前累加器A中内容为83H,R1中为25H,外部数据存储器25H中为11H。下面我们看看指令的运行过程:
指令运行后,外部数据存储器25H单元中的内容变为83H
从上述指令我们还可以看出外部RAM单元只能与累加器A之间进行数据传送。
例如要将外部RAM中的110H单元的数据传送到外部RAM的1231H单元,须执行以下指令:
MOV DPTR,#1110H
MOVX A,@DPTR
将外部数据存储器1110H单元中的数据取回累加器A中
MOV DPTR,!1231H
MOVX @DPTR,A
将累加器A中的数据送入外部数据存储器1231H单元中。