asm基础——汇编指令之加减乘除指令
2016-01-30 16:04
155 查看
加法指令
ADD
加法OF | DF | IF | SF | ZF | AF | PF | CF |
* | * | * | * | * | * |
指令格式:
add reg,reg
add reg,imm
add mem,reg
add mem,imm
add reg,mem
add accum,imm (accum指的是AL/AX/EAX)
相对的,还有一个带进位符号的加法指令:
ADC
带进位加OF | DF | IF | SF | ZF | AF | PF | CF |
* | * | * | * | * | * |
指令格式:
adc reg,reg
adcreg,imm
adc mem,reg
adc mem,imm
adc reg,mem
adc accum,imm (accum指的是AL/AX/EAX)
减法指令
SUB
减法OF | DF | IF | SF | ZF | AF | PF | CF |
* | * | * | * | * | * |
指令格式:
sub reg, reg
sub reg, imm
sub mem, reg
sub mem, imm
sub reg, mem
sub accum, imm
相对的,还有一个带进位符号的减法指令:
SBB
带进位减OF | DF | IF | SF | ZF | AF | PF | CF |
* | * | * | * | * | * |
指令格式:
sbb reg, reg
sbb reg, imm
sbb mem, reg
sbb mem, imm
sbb reg, mem
这里的SBB中最后一个B表示Borrow,即借位。
乘法指令
乘法包括有符号数乘法和无符号数乘法。MUL
无符号整数乘法。OF | DF | IF | SF | ZF | AF | PF | CF |
* | ? | ? | ? | ? | * |
指令格式:
mul reg
mul mem
由于存放乘积的寄存器的位数是乘数的位数的两倍,所以不用担心相乘后数据丢失的问题。
IMUL
有符号整数乘法。OF | DF | IF | SF | ZF | AF | PF | CF |
* | ? | ? | ? | ? | * |
指令格式:
单操作数:
imul r/m8
imul r/m16
imul r/m32
双操作数:
imul r16, r/m16
imul r16, imm8
imul r32, r/m32
Imul r32, imm8
imul r16, imm16
imul r32, imm32
三操作数:
imul r16, r/m16, imm8
imul r16, r/m16, imm16
Imul r32, r/m32, imm8
imul r32, r/m32, imm32
单操作数不会发生溢出。如果乘积的高半部分不是低半部分的符号扩展,则进位标志和溢出标志置位,可使用该特点确定乘积的高半部分是否可以忽略。
双操作数中,第一个操作数是存储乘积的寄存器,第二操作数是乘数。
三操作数中,第一个操作数是存储乘积的寄存器,第二、三操作数是两个乘数。
除法指令
DIV
无符号整数除法。OF | DF | IF | SF | ZF | AF | PF | CF |
? | ? | ? | ? | ? | ? |
指令格式:
div reg
div mem
IDIV
有符号整数除法。OF | DF | IF | SF | ZF | AF | PF | CF |
? | ? | ? | ? | ? | ? |
指令格式:
idiv reg
idiv mem
相关文章推荐
- [Spring实战系列](2)Maven创建Spring-HelloWorld项目
- 网上图书商城项目学习笔记-018生成订单
- java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to
- Wunder Fund Round 2016 (Div. 1 + Div. 2 combined)
- 使用栈判断回文
- ubuntu14.04.2安装jdk1.8.0_20
- 360浏览器兼容性问题
- Linux - 正则表达式
- CodeForces 618 D Hamiltonian Spanning Tree(树形DP)
- Linux启动管理
- 解题报告:POJ 1753 Flip Game 简单深搜dfs
- 自定义肩章badge
- 快速排序
- CentOS7编译安装mysql-5.6.28和编译参数
- C# split字符串 依据1个或多个空格
- 使用git和github进行协同开发流程
- 时间分割线:2016年1月的文章都是以前chinaunix的博客文章
- Java Swing界面编程(31)---菜单条:JMenu
- 这些年正Android - 大学
- PageRank算法