单片机指令(三)
发布时间:2008/5/27 0:00:00 访问次数:376
2、累加器a与片外ram之间的数据传递类指令
movx a,@ri
movx @ri,a
movx #9; a,@dptr
movx @dptr,a
说明:
1)在51中,与外部存储器ram打交道的只可以是a累加器。所有需要送入外部ram的数据必需要通过a送去,而所 有要读入的外部ram中的数据也必需通过a读入。在此我们可以看出内外部ram的区别了,内部ram间可以直接进行数据的传递,而外部则不行,比如,要将外部ram中某一单元(设为0100h单元的数据)送入另一个单元(设为0200h单元),也必须先将0100h单元中的内容读入a,然后再送到0200h单元中去。
2)要读或写外部的ram,当然也必须要知道ram的地址,在后两条指令中,地址是被直接放在dptr中的。而前两条指令,由于ri(即r0或r1)只是一个8位的寄存器,所以只提供低8位地址。因为有时扩展的外部ram的数量比较少,少于或等于256个,就只需要提供8位地址就够了。
3)使用时应当首先将要读或写的地址送入dptr或ri中,然后再用读写命令。 例:将外部ram中100h单元中的内容送入外部ram中200h单元中。 mov dptr,#0100h movx a,@dptr 2、累加器a与片外ram之间的数据传递类指令 movx @ri,a movx #9; a,@dptr 说明: 1)在51中,与外部存储器ram打交道的只可以是a累加器。所有需要送入外部ram的数据必需要通过a送去,而所 有要读入的外部ram中的数据也必需通过a读入。在此我们可以看出内外部ram的区别了,内部ram间可以直接进行数据的传递,而外部则不行,比如,要将外部ram中某一单元(设为0100h单元的数据)送入另一个单元(设为0200h单元),也必须先将0100h单元中的内容读入a,然后再送到0200h单元中去。 2)要读或写外部的ram,当然也必须要知道ram的地址,在后两条指令中,地址是被直接放在dptr中的。而前两条指令,由于ri(即r0或r1)只是一个8位的寄存器,所以只提供低8位地址。因为有时扩展的外部ram的数量比较少,少于或等于256个,就只需要提供8位地址就够了。 3)使用时应当首先将要读或写的地址送入dptr或ri中,然后再用读写命令。 例:将外部ram中100h单元中的内容送入外部ram中200h单元中。 mov dptr,#0100h movx a,@dptr
movx a,@ri
movx @dptr,a
上一篇:单片机指令(四)算术运算类指令
上一篇:单片机指令(二)