返回

红白机大时代

首页
关灯
护眼
字体:
大
中
小
第十九章 破解6502密码(中)
    云来阁 http://www.whcui.com

    一天后,横井俊平终于看到了让他牵挂了一晚上的答案。水印广告测试   水印广告测试看到这个答案的时候,他差点要给自己一拳,因为这个答案点居然是最基础的理论。

    “堆栈!?”

    不错,王秋阳给出的答案就是堆栈。

    所谓堆栈,就是在单片机应用中,有一个特殊的存储区。它的主要功能是暂时存放数据和地址,通常用来保护断点和现场。这个存储区,就是堆栈。

    但堆和栈,又有些许的不同。

    堆,是队列优先,先进先出(fifo—first  first out)。

    栈,是先进后出(filo—first-/last-out)。

    6502堆栈100--1ff最多只能存放127个双字节,所以jsr最大连续的转入深度为127层。如果还有其它数据入栈,子程序转入深度还要减少。所以在设计复杂的程序时,堆栈是会出现溢出的。堆栈溢出,意味着主机会死机。

    死机代表什么?

    横井俊平终于意识到了关键,因为死机不代表结束。对普通人来说死机意味着重启,而在黑客的手上死机意味着bug就要出来了。

    果然,王秋阳的回复中,依据堆和栈的特点,做出了不一样的文章。

    堆,因为是先进先出,理论上是由电脑自行运算。

    栈

第十九章 破解6502密码(中)(1/5)