6800程序员视角
在本节中,我们将了解摩托罗拉M6800微处理器的基本架构,以及向其中写入程序的不同寄存器。
要编写程序,我们必须注意寄存器和一些在程序执行期间访问它们的指令。
因此,从该图我们可以看出,有两个8位累加器A和B,一些16位寄存器(程序计数器PC,索引寄存器IX,堆栈指针SP)和8位标志寄存器CCR。
累加器A和B在指令集中具有相同的优先级。在6800中,很少有指令只使用累加器A而不使用B。其中一些是:
ABA(它将A与B相加并将结果存储到A中),但没有AAB指令。
类似地,有SBA(从A中减去B并将结果存储到A中),但没有SAB指令。
CBA(将B与A比较,并将结果保存在临时寄存器中),但没有CAB指令。
TAP(用于将A传输到标志寄存器CCR),但没有TBP指令。
TPA(用于将标志寄存器CCR内容传输到A),但没有TPB指令。
摩托罗拉M6800中的标志
在M6800中,标志寄存器用CCR(条件代码寄存器)表示。八个位中只有六个标志位。这些标志位于寄存器的最低有效位位置。两个最高有效位始终处于高电平状态。
标志寄存器如下所示:
序号 | 标志及描述 |
---|---|
1 | H 这是半进位标志。它类似于8085 MPU的辅助进位标志。 |
2 | IM 此标志是中断屏蔽标志。 |
3 | N 这是负标志。它类似于8085的符号标志。 |
4 | Z 这是零标志,当累加器内容为零时,此标志将为1。 |
5 | V 这是溢出标志。 |
6 | Cy 这是进位标志。 |
在8085 MPU中,有奇偶校验(P)标志。该标志位在此微处理器中被省略,因为它不是很有用。对于IM标志,当IM为1时,这意味着中断请求将被屏蔽或禁用。因此,即使**IRQ**被激活,它也将被忽略。但是,如果同时激活了更高优先级的**NMI**,则将中断。可以使用CLI(清除中断屏蔽)指令将IM标志复位为0。可以使用SEI(设置中断屏蔽)指令执行逆操作。
广告