在汇编语言中,1行表示对 CPU 的一个指令。汇编语言指令的语法结构是操作码 +操作数(也存在只有操作码没有操作数的指令)。
操作码表示的是指令动作,操作数表示的是指令对象。操作码和操作数罗列在一起的语法,就是一个英文的指令文本。操作码是动词操作数相当于宾语。例如,用汇编语言来分析“Give me money”这个英文指令的话,Give 就是操作码,me 和 money 就是操作数。汇编语言中存在多个操作数的情况下,要用逗号把它们分割开来,就像 Give me.money 这样。
能够使用何种形式的操作码,是由 CPU 的种类决定的。表 10-1 对代码清单 10-2 中用到的操作码的功能进行了整理,大家可以看一下这些都是 32位 x86 系列CPU 用的操作码。操作数中指定了寄存器名、内存地址、常数等。在表 10-1 中,操作数是用A和B来表示的。
本地代码加载到内存后才能运行。内存中存储着构成本地代码的指令和数据。程序运行时,CPU 会从内存中把指令和数据读出,然后再将其存储在 CPU 内部的寄存器中进行处理(图10-2)。
寄存器是 CPU 中的存储区域。不过,寄存器并不仅仅具有存储指令和数据的功能,也有运算功能。x86 系列 CPU 的寄存器的主要种类和角色如表 10-2 所示。寄存器的名称会通过汇编语言的源代码指定给操作数。内存中的存储区域是用地址编号来区分的。CPU 内的寄存器是用eax 及 ebx 这些名称来区分的。此外,CPU 内部也有程序员无法直接操作的寄存器。例如,表示运算结果正负及溢出状态的标志寄存器及操作系统专用的寄存器等,都无法通过程序员编写的程序直接进行操作。
标签:10,操作数,10.4,汇编语言,操作码,寄存器,CPU From: https://www.cnblogs.com/z1218/p/17099634.html