作为项目的一部分,我被要求编写一个程序来从P1获取输入并将其输出到P2。显而易见的方法就是说
ORG 000H
MOV C, P1.0
MOV P2.0, C
MOV C, P1.1
MOV P2.1, C
...
等等。但我希望通过增加端口位来循环执行此操作。我该怎么做?
答案 0 :(得分:2)
8051指令集不提供具有中间源/目标的这种位移指令。 MOV <dest-bit>, <srcibit>
指令仅允许固定值。请参阅:8051 MOV instruction
您当然可以直接将P1的完整(字节)内容复制到P2。此外,8051字节移动指令确实提供了通过@ R1或@ R2的中间移动,如果您想复制多个端口,可以在循环中递增。
答案 1 :(得分:2)
有一个'MOV直接,直接'指令。在手册中我有OP 0x85是MOV直接寻址数据到一个直接寻址的位置......即MOV P0,P1