C 的哪一行变成了哪几条
运行下面这段程序,填写它打印出来的结果。 C_LINES = 3 ASM_LINES = 11 print(str(ASM_LINES) + "/" + str(round(ASM_LINES / C_LINES, 2)
自己写:数指令种类
统计一段汇编里每种指令各有多少条,按条数从多到少输出前三种。
把一段汇编翻回 C
看懂这段汇编在算什么,用一行 Python 表达同一件事,并验证结果一致。
跳转指令改的是什么
一条 jmp 执行完之后,被改掉的是【0】。
cmp 做完之后留下了什么
cmp ecx, 0 执行完之后【0】。
条件跳转和无条件跳转
jne 和 jmp 的差别是【0】。
一个循环跑出来是多少
运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx": 0, "ecx"
换个初值,跑出来的完全不同
运行下面这段程序,填写它打印出来的结果。 def run(src, regs=None, guard=200): R = {"eax": 0, "ebx": 0, "ecx"
自己写:让解释器认识 cmp 和 jne
补全 cmp(记下差值当标志)和 jne(标志不为 0 就跳)。
自己写:把循环跑完
用一个 while 模拟这段汇编的循环,数出 eax 最后的值和一共执行了多少条指令。⚠️ 模板里埋了步数上限 guard,别删。