我们继续向智能芯片添加下列规则:
规则十二.存在一个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
规则十一中的外部引脚挂接一个定时器,系统运行时这两段指令序列就可以按照我们的意图正确的执行了