我正在使用 80C188 对嵌入式系统进行逆向工程,而重定位寄存器 (RELREG) 的使用方式让我感到困惑。
初始化的第一步是通过向 RELREG 写入新值来移动处理器控制寄存器。
默认情况下,RELREG 的值为 20FFH,它将寄存器块放置在地址 0FFxxH 处的 I/O 空间顶部。英特尔应用笔记中给出的示例描述了将 1100H 的值写入 RELREG,然后将寄存器块放置在 100xxH 的内存空间中。够清楚。
但是,在我正在检查的系统中,写入的值是 1804H,我希望将寄存器块放在内存空间中的地址 804xxH 处,但以下将寄存器初始化为操作值的写入都是内存空间中的 0F4xxH。处理器在系统中运行良好,因此这不是编程错误。
我绝对确定这些地址,因为我不仅在 EPROM 上的代码本身中看到它们,而且在启动时代码执行的逻辑分析器跟踪中也看到了它们。
有没有人对此有解释?