收官:写出一段汇编的完整说明

收官:写出一段汇编的完整说明

给一段陌生汇编,交出四段说明:形状 / 用到几个寄存器 / 执行了几条 / 最后结果。

阅读更多 →
⚠️ 换成取小的那个,边界立刻露馅

⚠️ 换成取小的那个,边界立刻露馅

把汇编改成「取小的那个」(jle 那一支反过来),再用相等的两个数试一次,和写成 <= 的版本比一比。

阅读更多 →
多组输入全量对账

多组输入全量对账

用全部 100 组输入(两个数各 0 到 9),验证「解释器跑出来的」和「等价 Python」是不是永远一致。

阅读更多 →
相等的时候走哪一支

相等的时候走哪一支

把两个数都改成 7,再跑一次。把汇编的结果和「写成 >=」的版本都打出来。

阅读更多 →
自己写:把这段汇编翻成 Python

自己写:把这段汇编翻成 Python

把上一题那段汇编翻成等价的 Python,并和解释器跑出来的结果对账。

阅读更多 →
一段陌生汇编跑出来是多少

一段陌生汇编跑出来是多少

运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx"

阅读更多 →
怎么验证自己读对了

怎么验证自己读对了

觉得自己读懂了一段汇编,最硬的验证办法是【0】。

阅读更多 →
读懂一段汇编要说清哪几样

读懂一段汇编要说清哪几样

说自己「读懂了」一段汇编,至少要说清【0】。

阅读更多 →
⚠️ 猜对了形状,猜错了边界

⚠️ 猜对了形状,猜错了边界

把循环猜成「加 k 次」,但如果 ecx 一开始就是 0 呢?⚠️ 汇编里这个循环至少会执行一次。把两种猜法的结果都打出来。

阅读更多 →
数一数循环体被执行了几遍

数一数循环体被执行了几遍

同一段汇编,把循环次数分别设成 3 和 7,数出循环体那四条指令各被执行了多少遍。

阅读更多 →