logo 轻松的编程学习
  • 首页
  • 题库
  • 学习路径
  • 在线商城
  • 能力地图
  • 下载应用
登录 / 注册

为什么老要先 mov 一下

汇编里到处是「先 mov 进寄存器,算完再 mov 出去」。这是因为【0】。

开始练习 →

两条 mov 加一条 add

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

开始练习 →

自己写:让解释器认识 mov

补全解释器里 mov 那一支:右边是寄存器就取它的值,是数字就当立即数。

开始练习 →

自己写:让解释器认识 add 和 sub

补全 add 和 sub:都是「左边那个又读又写」。

开始练习 →

把一小段汇编跑起来

把三条指令交给解释器,打出三个寄存器最后的值。

开始练习 →

为什么要看编译器的输出

学会看编译器生成的汇编,最实在的用处是【0】。

开始练习 →

push rbp 那两条在干什么

几乎每个函数开头都有 push rbp 和 mov rbp, rsp。它们是在【0】。

开始练习 →

中括号是什么意思

mov eax, dword ptr [rbp - 4] 里的方括号表示【0】。

开始练习 →

为什么没优化时这么啰嗦

这段汇编把 a 和 b 先存进内存,马上又读回来。这是因为【0】。

开始练习 →

数一数 mov 有多少条

下面这段是 clang -S -O0 -masm=intel 在 x86-64 上对那三行 C 的真实输出(只删掉了 .cfi_* 伪指令)。运行这段程序,填写它打印出来的结果。 ASM = """ pu

开始练习 →
  • 上一页
  • 1
  • ...
  • 645
  • 646
  • 647
  • 648
  • 649
  • ...
  • 1095
  • 下一页
🔎 搜索
© 2026 有词 — 青少年编程训练平台