同一段汇编,换个乘数
运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx": 0, "ecx"
开始练习 →
自己写:认出这段是不是循环
给一段汇编,判断它有没有「往回跳」。两段各判一次:一段有循环,一段没有。
开始练习 →
把循环反推成一个表达式
这段汇编在做「加 k 次 m」。写一个函数直接算出结果,并和逐条跑出来的结果对一遍账。
开始练习 →
数一数循环体被执行了几遍
同一段汇编,把循环次数分别设成 3 和 7,数出循环体那四条指令各被执行了多少遍。
开始练习 →
⚠️ 猜对了形状,猜错了边界
把循环猜成「加 k 次」,但如果 ecx 一开始就是 0 呢?⚠️ 汇编里这个循环至少会执行一次。把两种猜法的结果都打出来。
开始练习 →
读懂一段汇编要说清哪几样
说自己「读懂了」一段汇编,至少要说清【0】。
开始练习 →
怎么验证自己读对了
觉得自己读懂了一段汇编,最硬的验证办法是【0】。
开始练习 →
一段陌生汇编跑出来是多少
运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx": 0, "ecx"
开始练习 →
自己写:把这段汇编翻成 Python
把上一题那段汇编翻成等价的 Python,并和解释器跑出来的结果对账。
开始练习 →
相等的时候走哪一支
把两个数都改成 7,再跑一次。把汇编的结果和「写成 >=」的版本都打出来。
开始练习 →