标签:#机器码

共 8 篇文章

Opcode

在计算机领域,操作码(opcode,来源于 operation code 的缩写),是机器语言指令中用于指定要执行操作的部分。除了操作码本身,大多数指令还会通过操作数(operand)的形式指定它们将要处理的数据。opcode是中央处理器(CPU)及算術邏輯單元(ALU)指令集架构中的操作码,但兩者處理方式不同。算術邏輯單元會將opcode匯入到其電路中,而中央处理器的opcode是其要執行机器语言的一部份。 CPU裡的opcode 在…

CPUID

CPUID指令是一条x86架构中的的扩展指令(此处的扩展指相对i80386),其操作码助记符缩写于“CPU识别”(CPU Identification),其作用是返回特定的CPU信息,使得软件可以在运行时检测CPU的硬件特性,以便于识别并决定运行哪些代码。首批支持CPUID指令的处理器是1993年发布的奔腾(i586)和486SL。 通过使用CPUID,软件可以确定处理器的类型和特性支持(例如MMX/SSE)。CPUID操作码为0Fh、…

代码生成

在计算机科学中,代码生成是代码编译过程中的其中一个环节。在这个环节中,代码生成器会将某中間語言(IR)转换为机器可以执行的形式如机器码,或者另一门语言,如C语言代码。 工业级的编译器一般存在多个编译环节(Compiler pass)。第一个环节通常会将源代码转换成抽象语法树,而抽象语法树随后又会被转换成某种中间语言(IR)。编译器的中间环节会对这门中间语言进行各种变换以优化程序的性能。这种具有阶段性的编译方式,其优势在于允许编译器开发者…

間接分支

間接分支(indirect branch)也稱為間接跳躍(indirect jump)或暫存器間接跳躍(register-indirect jump),是机器语言指令集架構中控制流程的一種方法。在機器語言裡,一般的控制流程會直接標示接下來要執行程式的位址(直接分支),而間接分支是在參數中標示要執行的記憶體位址。像「分支到r1寄存器所記錄的位置」即為一例,此例中,接下來要執行程式的位置在r1寄存器裡,要執行完這個指令才知道接下來要執行的程…

机器码监视器

上的机器码监视器,正在显示代码反编译及处处理器寄存器与内存转储]] 机器码监视器]] 机器码监视器(又名机器语言监视器)是允许用户输入命令以预览并修改计算机上内存位置的软件,同时有着保存内存内容从/至次级存储的选项。一些完整功能的机器码监视器提供了对机器语言程序执行(就像调试器一样)的详细控制("单步跟踪"),包括绝对地址的代码汇编和反编译的能力。 机器码监视器于20世纪70年代与80年代的家用电脑时期变得火热,且有时候作为常驻固件在某…

RdRand

RDRAND(之前被称为Bull Mountain)是一个计算机指令,用于从芯片上的硬件随机数生成器中获取随机数。所用到的随机数生成器由芯片上的熵池初始化。 RDRAND指令在架构处理器上可用,该指令也是X86-64和IA-32指令集的一部分。AMD在2015年6月添加了对RdRand指令的支持。 该随机数生成器要遵守安全标准和加密标准,比如, 和 ANSI X9.82。 和2012年的 Analysis of Intel's Ivy …

寻址模式

寻址模式(Addressing modes)是中央处理器(CPU)设计中,指令集架构的一部分。各个指令有不同的寻址模式,这些寻址模式决定此架构下的机器语言指令对应的運算數。寻址模式会通过暂存器中的数值或机器指令中的常数来计算运算数的记忆体位址。 在计算机程序设计中,寻址模式主要是汇编语言使用者和编译器编写者需要關注的。对于一个相关的概念,请参阅正交指令集,它涉及到任何指令使用任何寻址模式的能力。 警告 注意,各种寻址模式都没有一个被普遍…

NOP

计算机科学中,NOP或NOOP(No Operation或No Operation Performed的缩写,意为无操作)是汇编语言的一个指令,一系列编程语句,或网络传输协议中的表示不做任何有效操作的命令。 NOP机器指令 有的计算机指令集包含一条指令,其主要目的是不改变任何程序可访问的寄存器,处理器状态标志或主存,而且可能需要特定的时钟周期来执行。在其它指令集中,NOP是用执行一条具有操作数,具有相同效果的指令来模拟的(例如SPARC…