汇编语言 算术指令(汇编算术运算指令)

INC 指令

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

汇编语言 算术指令(汇编算术运算指令)

语法

指令的语法如下:

目标操作数 可以是 8 位,16 位或 32 位操作数。

实例

DEC 指令

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

语法

指令的语法如下:

目标操作数 可以是 8 位,16 位或 32 位操作数。

实例

ADD 和 SUB 指令

和 指令用于对字节,字和双字大小的二进制数据进行简单的 加/减,即分别用于加或减去 8 位,16 位或 32 位操作数。

语法

和 指令的语法如下:

/ 指令可以发生在:

  • 寄存器 到 寄存器
  • 内存 到 寄存器
  • 寄存器 到 内存
  • 寄存器 到 常量数据
  • 内存 到 常量数据

但是,像其他指令一样,使用 / 指令也无法进行存储器到存储器的操作。 或 操作设置或清除溢出和进位标志。

实例

下面的实例将要求用户输入两位数字,分别将这些数字存储在 EAXEBX 寄存器中,将这些值相加,将结果存储在 "res" 存储位置中,最后显示结果:

结果如下:

具有硬编码变量的程序:

结果如下:


MUL/IMUL 指令

二进制数据相乘有两条指令。(乘法)指令处理无符号数据,(整数乘法)处理有符号数据。这两条指令都会影响进位和溢出标志。

语法

/ 指令的语法如下:

在这两种情况下,被乘数都将在一个累加器中,具体取决于被乘数和乘数的大小,并且根据操作数的大小,生成的乘积还将存储在两个寄存器中。

以下部分说明了 3 种不同情况下的 指令:

实例
实例

以下实例将 3 乘以 2,并显示结果:

结果如下:


DIV/IDIV 指令

除法运算生成两个元素 —— 余数。在乘法的情况下,不会发生溢出,因为使用双长度寄存器来保存乘积。然而,在除法的情况下,可能会发生溢出。如果发生溢出,处理器将生成中断。(Divide)指令用于无符号数据,(整数除法)用于有符号数据。

(Divide)指令用于无符号数据,(整数除法)用于有符号数据。

语法

/ 指令的格式:

被除数在累加器中。两条指令都可以使用 8 位,16 位或 32 位操作数。该操作影响所有 6 个状态标志。

以下部分说明了 3 种操作数大小不同的除法情况:

实例

以下实例将 8 除以 2。被除数 8 存储在 16 位 AX 寄存器中,除数 2 存储在 8 位 BL 寄存器 中。

结果如下:

转载请说明出处 内容投诉内容投诉
九幽软件 » 汇编语言 算术指令(汇编算术运算指令)