68000 汇编/寄存器
外观
< 68000 汇编
除了 16 位状态寄存器之外,所有 68000 寄存器都是 32 位宽。
有八个数据寄存器:d0、d1、d2、d3、d4、d5、d6 和 d7。它们旨在保存数字,这些数字将进行各种数学和逻辑运算。
有七个地址寄存器:a0、a1、a2、a3、a4、a5 和 a6。它们通常用作指针。
有一个活动堆栈指针:SP,也称为 a7。通常情况下,处理器处于用户模式。在用户模式下,SP 指向用户堆栈指针 (USP) 寄存器。(在中断期间,活动堆栈指针 SP 是另一个称为中断堆栈指针或系统堆栈指针的寄存器。68020 及更高版本的处理器有第三个称为主堆栈指针的寄存器。ISP 和 MSP 都不能在用户模式下访问)。
68K 包含特殊的寻址模式,使使用任何地址寄存器操作数据堆栈结构变得容易。
程序计数器 (PC) 指向当前指令。在 68000 上,只有低 24 位输出到任何引脚,最大寻址范围为 16MiB。程序计数器在加载新指令或使用 BRA、Bcc、BSR、JMP、JSR、RTS 或 RTE 指令时会自动更改。它也可以用作 PC 相对寻址模式中的指针。
条件码寄存器 (CCR) 由状态寄存器 (SR) 的低字节组成。只有低字节在用户模式下可访问,其中只有前五个位有用。在监控模式下,整个 16 位寄存器都是可访问的。该寄存器如下所示
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
T1 | T0 | S | M | 0 | I2 | I1 | I0 | 0 | 0 | 0 | X | N | Z | V | C |
以下是解码后的寄存器内容
位 | 描述 |
---|---|
C | 进位 |
V | 溢出 |
Z | 零 |
N | 负 |
X | 扩展 |
I0 | 中断优先级屏蔽位 1 |
I1 | 中断优先级屏蔽位 2 |
I2 | 中断优先级屏蔽位 3 |
M | 主/中断开关。如果设置了 S,则确定要使用的堆栈模式。如果 M 清除,SP 指向 ISP,否则 SP 指向 MSP。此位在低于 68020 的处理器型号上始终清除。 |
S | 监控模式标志。如果清除,SP 指向 USP。如果设置,请查看 M 以确定 SP 指向哪个堆栈。 |
T0 | 跟踪位 1。如果设置,则在程序流更改时跟踪。此位在低于 68020 的处理器型号上始终清除。 |
T1 | 跟踪位 2。如果设置,则允许在任何指令上跟踪。请勿同时设置两个跟踪位! |