📜  68000系列计算机中的寄存器和地址

📅  最后修改于: 2021-06-28 15:43:24             🧑  作者: Mango

68000处理器的特点是16位外部字长,因为处理器芯片具有16个数据引脚以连接到存储器。但是,数据在包含32位的寄存器中的处理器内部进行处理。该系列的其他型号是68020、68030和68040处理器。它们均采用大型芯片封装,并具有32位外部数据引脚。因此,它们可以在内部和外部以32位的数量处理数据。

68000寄存器结构:
68000寄存器结构具有8个数据寄存器和8个地址寄存器,每个寄存器长32位。数据寄存器用作计数器的通用累加器。以下是相同的结构。

68000指令处理三种不同长度的操作数。据说32位操作数是长字,16位操作数是一个,而8位操作数是一个字节。当指令在寄存器中使用字节或字操作数时,操作数位于寄存器的低位位置。在大多数情况下,此类指令不会影响寄存器的其余高阶位,但是某些指令会将较短的操作数的符号扩展为高阶位。

地址寄存器保存用于确定存储操作数地址的信息。该信息可以长字或字长给出。当给定存储单元的地址为地址寄存器时,地址寄存器将用作该单元的指针。地址和数据寄存器都可以用作索引寄存器。一个地址寄存器A7具有作为处理器堆栈指针的特殊函数。地址寄存器和地址计算涉及32位。但是,在68000的情况下,仅地址的最低有效24位在外部用于访问内存。 68020、68030和68040处理器具有32条外部地址线和32条数据线。

寻址:  

  • 68000计算机的内存以16位字为单位,并且是字节可寻址的。两个连续的字可以解释为单个32位长字。如上图所示分配内存地址。单词必须在偶数边界上对齐(也就是说,其地址必须是偶数)。使用big-endian地址分配。一个单词的高位字节与该单词具有相同的地址,而一个低位的字节具有下一个较高的地址。
  • 由于68000生成24位地址,因此其可寻址空间为2 24 (16,777,216或16M)个字节。可以认为此可寻址空间由每个32K(2 15 )字节的512(2 9 )页组成。因此,十六进制地址0到7FFF构成页面0,地址8000到FFFF组成页面2,依此类推。最后一页由FF8000到FFFFFF的地址组成。
  • 68000有几种寻址模式。 68000的许多指令都适合16位字,但有些指令则需要附加字来获得更多寻址信息。指令的第一个字是OP代码字,它指定要执行的操作并提供一些寻址信息。其余信息以后续字词给出。

寻址的不同类型
以下是可用的不同寻址模式,如下所示。

  1. 即时模式
  2. 绝对模式
  3. 注册模式
  4. 注册间接模式
  5. 自动递增模式
  6. 自动减量模式
  7. 基本索引模式
  8. 全索引模式
  9. 基本相对地址
  10. 完全相对模式 

寻址模式的语法和函数:
让我们看一下寻址模式的评估部分,如下所示。

Name

Assebler Syntax

Addressing Function

Immediate

#Value

Operand = Value

Absolute Short

Value

EA = Sign Extended WValue

Absolute Long

Value

EA = Value

Register

Rn

EA = Rn

Operand = [Rn]

Regsiter Indirect

(An)

EA = [An];

Autoincrement

(An)+

EA = [An]

Increment An

Autodecrement

-(An)

Decrement An

EA = [An]

Indexed Basic

WValue(An)

EA = WValue + [An]

Indexed Full

BValue(An,Rk,S)

EA = BValue + [An] + [Rk]

Relative Basic

WValue(PC) or Label

EA = WValue + [PC]

Relative Full

BValue(PC,Rk,S) or Label (Rk)

EA =BValue + [PC] + [Rk]

在这里,您将看到术语的含义。

EA       = effective address
Value    = a number given either explicitly or represented by a label
BValue   = an 8-bit value 
WValue   = an 16-bit value
An       = an address register
Rk       = an address or a data register
S       = a size indicator: W for sign-extended 16-bit word and L stands for 32-bit long word

例子 –
让我们做一个简单的例子来理解它。考虑指令ADD 100(PC,A1),D0 。当以机器形式编码时,该指令由2个字组成。 OP代码字指定这是一条ADD指令,目标寄存器是数据寄存器D0,并且完整的相对寻址模式用于源操作数。第二个字(也称为扩展字)指定将寄存器A1用作索引寄存器,并且它包含8个位组成的偏移值100。

假定前一条指令存储在位置1000中,并且寄存器A1包含值6。当已提取该指令的OP码字并且在处理器对其进行解码时,程序将指向扩展字,该扩展字表示程序计数器包含值1002。因此,源操作数的有效地址如下。

EA = [PC] + [A1] + 100 = 1002 + 6 +100 = 1108