五. MMU 之 IPvirtual

来源:互联网 发布:黑马19期淘淘商城源码 编辑:程序博客网 时间:2024/06/02 10:42

我们继续向智能芯片添加下列规则:
规则十二.存在一个16位寄存器VAB和一个16位寄存器PAB
规则十三.存在一个IP虚拟访问控制IPvirtual,当IPvirtual打开时,IP每次访问内存读取指令,实际给出的内存物理地址等于IP-VAB+[PAB],[PAB]表示PAB指向的内存物理地址连续两个字节内容
规则十四.当规则十一发生后关闭IPvirtual
规则十五.当IRET指令执行之后打开IPvirtual

 

初始时我们安排:
寄存器SP的内容为0x0050
寄存器VAB的内容为0x0000
寄存器PAB的内容为0x0100
寄存器IP的内容为0x0000,并且打开IPvirtual
物理内存内容为:
0x0000:        MOV SP, 0x0050+((SP-0x0050)+2)%4
0x0003:        MOV PAB, 0x0100+((PAB-0x0100)+2)%4
0x0006:        IRET
  .
  .
  .
0x0050:        0x00
0x0051:        0x00
0x0052:        0x00
0x0053:        0x00
  .
  .
  .
0x0100:        0x00
0x0101:        0x10
0x0102:        0x00
0x0103:        0x20
  .
  .
  .
0x1000:        nop
0x1001:        nop
0x1002:        nop
0x1003:        nop
0x1004:        nop
0x1005:        nop
0x1006:        jmp 0x0000
  .
  .
  .
0x2000:        nop
0x2001:        nop
0x2002:        nop
0x2003:        nop
0x2004:        nop
0x2005:        nop
0x2006:        jmp 0x0000

规则十一中的外部引脚挂接一个定时器,系统运行时这两段指令序列就可以按照我们的意图正确的执行了