call 比 jmp 多做了什么
call 和 jmp 都会跳走,但 call 还会【0】。
阅读更多 →
栈为什么适合放函数的局部变量
函数的局部变量放在栈上,是因为【0】。
阅读更多 →
同一段汇编,两种初值
把循环的次数改成 6,看看结果和步数各变成多少。两组结果都打出来。
阅读更多 →
自己写:把循环跑完
用一个 while 模拟这段汇编的循环,数出 eax 最后的值和一共执行了多少条指令。⚠️ 模板里埋了步数上限 guard,别删。
阅读更多 →
自己写:让解释器认识 cmp 和 jne
补全 cmp(记下差值当标志)和 jne(标志不为 0 就跳)。
阅读更多 →
换个初值,跑出来的完全不同
运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx"
阅读更多 →
一个循环跑出来是多少
运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx"
阅读更多 →
条件跳转和无条件跳转
jne 和 jmp 的差别是【0】。
阅读更多 →
cmp 做完之后留下了什么
cmp ecx, 0 执行完之后【0】。
阅读更多 →
跳转指令改的是什么
一条 jmp 执行完之后,被改掉的是【0】。
阅读更多 →