8051中的数据传输指令组
在 8051 微控制器中,数据传输指令组下有 28 条不同的指令。总共有 79 个操作码。使用数据传输指令不会影响标志位,但如果使用数据传输指令更改了 A 寄存器的值,则 P(奇偶校验)标志可能会发生变化。类似地,当数据传输到 PSW 寄存器时,标志位将发生变化。
在下表中,我们将看到助记符、长度、机器周期执行时间、操作码数量等。
| 助记符 | 字节数 | 执行时间 | 操作码数 |
|---|---|---|---|
| MOV A, Rn | 1 | 1 | 8 |
| MOV A, a8 | 2 | 1 | 1 |
| MOV A, @Ri | 1 | 1 | 2 |
| MOV A, #d8 | 2 | 1 | 1 |
| MOV Rn, A | 1 | 1 | 8 |
| MOV Rn, a8 | 2 | 2 | 8 |
| MOV Rn, #d8 | 2 | 1 | 8 |
| MOV a8, A | 2 | 1 | 1 |
| MOV a8, Rn | 2 | 2 | 8 |
| MOV a8, a8 | 3 | 2 | 1 |
| MOV a8, @Ri | 2 | 2 | 2 |
| MOV a8, #d8 | 3 | 2 | 1 |
| MOV @Ri, A | 1 | 1 | 2 |
| MOV @Ri, a8 | 2 | 2 | 2 |
| MOV @Ri, #d8 | 2 | 1 | 2 |
| MOV DPTR, #d16 | 3 | 2 | 1 |
| MOVC A, @A+DPTR | 1 | 2 | 1 |
| MOVC A, @A+PC | 1 | 2 | 1 |
| MOVX A, @Ri | 1 | 2 | 2 |
| MOVX A, @DPTR | 1 | 2 | 1 |
| MOVX @Ri, A | 1 | 2 | 2 |
| MOVX @DPTR, A | 1 | 2 | 1 |
| PUSH a8 | 2 | 2 | 1 |
| POP a8 | 2 | 2 | 1 |
| XCH A, Rn | 1 | 1 | 8 |
| XCH A, a8 | 2 | 1 | 1 |
| XCH A, @Ri | 1 | 1 | 2 |
| XCHD A, @Ri | 1 | 1 | 2 |
如果时钟频率为 12MHz,则 1 个机器周期将需要 1 µs 来执行。
示例
| 序号 | 指令和描述 |
|---|---|
| 1 | MOV R2, 35H 这是 MOV Rn, a8 的一个示例。内部存储器 35H 位置的内容被移动到寄存器 R2。 |
| 2 | MOV 0F0H, #12H 这是 MOV a8, #d8 类型的示例。这里 12H 将存储在寄存器 B 中。此指令的等效指令是 MOV B, #25H |
| 3 | PUSH 0F0H 这是 PUSH a8 的一个示例。这里寄存器 B 的内容被压入堆栈。 |
| 4 | POP 40H 这类似于 POP a8。它表示堆栈顶部的内容被移动到内部 RAM 位置 40H。 |
| 5 | XCH A, R2 这类似于 XCH A, Rn。此指令用于交换 A 和寄存器 R2 的内容。 |
| 6 | XCHD A @R0 此指令类似于指令 XCHD A,@Ri。使用此指令,A 的低位数字和 R0 指向的内部 RAM 位置的低位数字将被交换。 |
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP