在汇编中递增端口位

Incrementing port bits in assembly

作为项目的一部分,我被要求编写一个程序来从 P1 获取输入并将其输出到 P2。显而易见的方法就是说

ORG 000H

MOV C, P1.0
MOV P2.0, C
MOV C, P1.1
MOV P2.1, C

...

等等。但是我想通过增加端口位来循环执行此操作。我该怎么做?

8051指令集没有提供这种带中间的位移动指令source/destination。 MOV <dest-bit>, <srcibit> 指令只允许固定值。参见:8051 MOV instruction

你当然可以直接将P1的完整(字节)内容复制到P2中。此外,8051 字节移动指令确实通过 @R1 或 @R2 提供了中间移动,如果您想复制多个端口,您可以在循环中递增。

有一个'MOV direct, direct'指令。在手册中,我有 OP 0x85 是 MOV 直接寻址数据到直接寻址位置...即 MOV P0, P1