INC 指令
指令用于将操作数加 1。它对可以在寄存器或内存中的单个操作数起作用。

语法
指令的语法如下:
目标操作数 可以是 8 位,16 位或 32 位操作数。
实例
DEC 指令
指令用于将操作数减 1。它对可以在寄存器或内存中的单个操作数起作用。
语法
指令的语法如下:
目标操作数 可以是 8 位,16 位或 32 位操作数。
实例
ADD 和 SUB 指令
和 指令用于对字节,字和双字大小的二进制数据进行简单的 加/减,即分别用于加或减去 8 位,16 位或 32 位操作数。
语法
和 指令的语法如下:
/ 指令可以发生在:
- 寄存器 到 寄存器
- 内存 到 寄存器
- 寄存器 到 内存
- 寄存器 到 常量数据
- 内存 到 常量数据
但是,像其他指令一样,使用 / 指令也无法进行存储器到存储器的操作。 或 操作设置或清除溢出和进位标志。
实例
下面的实例将要求用户输入两位数字,分别将这些数字存储在 EAX 和 EBX 寄存器中,将这些值相加,将结果存储在 "res" 存储位置中,最后显示结果:
结果如下:
具有硬编码变量的程序:
结果如下:
MUL/IMUL 指令
二进制数据相乘有两条指令。(乘法)指令处理无符号数据,(整数乘法)处理有符号数据。这两条指令都会影响进位和溢出标志。
语法
/ 指令的语法如下:
在这两种情况下,被乘数都将在一个累加器中,具体取决于被乘数和乘数的大小,并且根据操作数的大小,生成的乘积还将存储在两个寄存器中。
以下部分说明了 3 种不同情况下的 指令:
实例
实例
以下实例将 3 乘以 2,并显示结果:
结果如下:
DIV/IDIV 指令
除法运算生成两个元素 —— 商 和 余数。在乘法的情况下,不会发生溢出,因为使用双长度寄存器来保存乘积。然而,在除法的情况下,可能会发生溢出。如果发生溢出,处理器将生成中断。(Divide)指令用于无符号数据,(整数除法)用于有符号数据。
(Divide)指令用于无符号数据,(整数除法)用于有符号数据。
语法
/ 指令的格式:
被除数在累加器中。两条指令都可以使用 8 位,16 位或 32 位操作数。该操作影响所有 6 个状态标志。
以下部分说明了 3 种操作数大小不同的除法情况:
实例
以下实例将 8 除以 2。被除数 8 存储在 16 位 AX 寄存器中,除数 2 存储在 8 位 BL 寄存器 中。
结果如下: