x86架构下μop是如何调度的
在CPU的后端会有多个port用于执行uop。每个port只能用于执行某些uop,而一条uop可能可以在多个port执行,这就涉及到了uop的调度问题。
在CPU的后端会有多个port用于执行uop。每个port只能用于执行某些uop,而一条uop可能可以在多个port执行,这就涉及到了uop的调度问题。
最近在做实验的时候遇到了一些奇怪的问题,为了排除一些选项,不得不确定先一条汇编指令的长度,现记录如下。
当然最简单的方法是用ida反汇编之后直接对照。
如果是一段机器码片段,也有在线反编译器可使用12。
本文的运行环境为 ubuntu 20.04
,编译环境为NASM version 2.14.02
。文中代码不使用 pthread
等库。
如果需要在windows下使用汇编编写多线程程序,可以参考这个视频。