dibingfa / flash-linux0.11-talk

你管这破玩意叫操作系统源码 — 像小说一样品读 Linux 0.11 核心代码
19.47k stars 2.64k forks source link

催更了,催更了 #50

Open 244981745 opened 2 years ago

244981745 commented 2 years ago

看开始的几章,一直有个疑惑,使用sub对寄存器置零和跟用xor对寄存器置零有没区别? 我之前看到有文章说,微软常用xor对寄存器置零,开始不太明白,后来想明白了,这个是因为访问速度不同,如果使用直接mov ax,0,这个0实际是存在内存中的,哪怕立即寻址,也是要再次访问内存,内存的访问速度比寄存器的访问速度低一个量级,隔着一个量级,就意味着少运行了几十上百条指令。 看到用sub置零,就疑惑,难道xor是不能对特殊寄存器进行操作吗?