计算机中MAR是地址寄存器。
8086有四个完全一样的16位暂存器,但也能够当作八个8位暂存器来访问;以及四个16位变址寄存器(包含堆栈索引)。
数据暂存器通常由指令隐含地使用,针对暂存值需要复杂的暂存器配置。它提供64K 8位的输出输入(或32K 16位)端口,以及固定的矢量中断。大部分的指令只能够访问一个存储器地址,所以其中一个运算符必须是一个暂存器。运算结果会存储在运算符中的一个。
地址寄存器结构:
地址寄存器采用单纯的寄存器结构。在对主存或I/O端口进行访问时,地址寄存器存放当前访问的地址,数据缓冲器实现数据的缓冲。CPU通过修改地址寄存器中的值,就可访问不同的存储器单元及不同的I/O端口。
地址寄存器可用LPM库中的元件lpm_latch锁存器来完成。图是地址寄存器的结构图。地址寄存器的数据宽度应当与程序计数器的数据宽度一致。data[7…0]是地址寄存器的数据输入端,q[7…0]是地址寄存器的数据输出端,gate是地址锁存器的控制端。
gate的作用当锁存控制脉冲到来时,高电平时数据进入锁存器,低电平时锁存数据,保持输出数据稳定不变。