mov

功能:用来进行数据传输。

以 “mov A, B”为例,相当于A=B。

具有以下形式:mov 寄存器, 数据;mov 寄存器, 寄存器;mov 寄存器, 内存单元;mov 内存单元, 寄存器;mov 段寄存器,寄存器;

add

功能:用来做加法。

以“add A, B”为例,相当于A=A+B。

具有的形式,和 mov 一样。

sub

功能:用来做减法。

以“sub A, B”为例,相当于A=A-B。

具有的形式,和 mov 一样。

inc,dec

功能:用来自增,自减

以“inc A”为例,相当于A=A+1。

以“dec A”为例,相当于A=A-1。

push

功能:入栈

以“push A”为例,大概相当于:SP=SP-2 ;将A中的内容送入SS:SP指向的内存单元处。

具有以下形式:push 寄存器;push 内存单元;push 段寄存器

pop

功能:出栈

以“pop A”为例,大概相当于:将SS:SP指向的内存单元处的数据送入A中;SP=SP+2。

具有形式和push相同

Loop

功能:实现基于cx的循环功能

以“loop S“为例,大概相当于:cx=cx-1,判断cx中的值,不为0则转至标号处执行程序。

and

功能:逻辑与指令,按位进行与运算。

通过该指令可将操作对象的相应位设置为0,其他位不变。

or

功能:逻辑或指令,按位进行或运算。

通过该指令可将操作对象的相应位设置为1,其他位不变。

mul

功能:乘法指令

当乘数是字节操作数时,把AL中的无符号数与乘数相乘,结果16位放入AX中

当乘数是字操作数时,把AX中的无符号数与乘数相乘,结果32位,高位放入DX中,低位放入AX中。

div

功能:除法指令

除数:有8位和16位两种,在一个reg或内存单元中。

被除数:默认放在AX或DX和AX中,如果除数为8位,被除数则为16位,默认在AX中存放;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。

结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。

jmp

1. 依据位移进行转移的 jmp 指令:

(1) jmp short 标号

这种 jmp指令实现的是段内短转移,它对IP的修改范围为 -128-127 。

实际上,“jmp short 标号”的功能为:(IP)=(IP)+8位位移

8位位移=标号处的地址-jmp指令后的第一个字节的地址。

short指明此处的位移为8位位移。

8位位移用补码表示。

8位位移由编译程序在编译时算出。

(2)jmp near ptr 标号

这种 jmp 指令实现的是段内近转移。

实际上,“jmp near 标号”的功能为:(IP)=(IP)+16位位移

2. 转移的目的地址在指令中的 jmp 指令

jmp far ptr 标号  实现的是段间转移,又称为远转移。

功能:(CS)= 标号所在段的段地址,(IP)= 标号所在段中的偏移地址

3. 转移地址在寄存器中的 jmp 指令

指令格式:jmp 16位 reg

功能:(IP)=(16位reg)

4.转移地址在内存单元中的 jmp 指令

(1)jmp word ptr 内存单元地址

功能:从内存单元地址处开始存放着一个字,是转移的目的偏移地址。

(2)jmp dword ptr 内存单元地址(段间转移)

功能:从内存单元地址处开始存放着两个字,高地址处的字是转移的目的地址,低地址处是转移的目的偏移地址。

jcxz(jump if cx = zero)

指令格式:jcxz 标号

操作:当 cx=0 时,(IP)=(IP)+8位位移

ret

ret指令用栈中的数据,修改IP的内容,从而实现近转移;

CPU执行 ret 指令时,进行下面两步操作:

(1)(IP)=((ss)*16+(sp))

(2)(sp)=(sp)+ 2

retf

retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移;

CPU执行 retf 指令时,进行下面4步操作:

(1)(IP)=((ss)*16 + (sp))

(2)(sp)=(sp)+ 2

(3)(CS)=((ss)*16 + (sp))

(4)(sp)=(sp)+ 2

call

一.  依据位移进行转移的call指令

1. call 标号(将当前的 IP 压栈后,转到标号处执行指令)

CPU执行这种格式的call指令后,进行如下的操作:

(1)(sp)=(sp)- 2

((ss)* 16 +(sp))=(IP)

(2)(IP)=(IP)+ 16位位移

二.  转移的目的地址在指令中的call指令

1. call far ptr 标号

CPU执行此种格式的call指令时,进行如下的操作:

(1)(sp)=(sp)- 2

((ss)*16 + (sp))=(CS)

(sp)=(sp)- 2

((ss)*16 + (sp))=(IP)

(2)(CS)=标号所在段的段地址

(IP)=标号在段中的偏移地址

三. 转移地址在寄存器中的call指令

call 16位 reg

功能:

(sp)=(sp)- 2

((ss)*16 +(sp))=(IP)

(IP)=(reg)

四. 转移地址在内存中的call指令

1. call word ptr 内存单元地址

功能:

push IP

jmp word ptr 内存单元地址

2. call dwordd ptr 内存单元地址

功能:

push CS

push IP

jmp dword ptr 内存单元地址

adc

adc是带进位加法指令,它利用了CF位上记录的进位值。

指令格式:adc 操作对象1,操作对象2

功能:操作对象1=操作对象1+操作对象2+CF

sbb

sbb是带借位减法指令,它利用了CF位上记录的借位值。

指令格式:sbb 操作对象1,操作对象2

功能:操作对象1=操作对象1-操作对象2-CF

cmp

cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果,关键作用是对标志寄存器的影响。

指令格式:cmp 操作对象1,操作对象2

功能:计算操作对象1-操作对象2但不保存结果,仅仅根据计算结果对标志寄存器进行设置。

检测比较结果的条件转移指令

指令

含义

检测的相关标志位

je

等于则跳转

zf=1

jne

不等于则跳转

zf=0

jb

小于则跳转

cf=1

jnb

不小于则跳转

cf=0

ja

大于则跳转

cf=0且zf=0

jna

不大于则跳转

cf=1且zf=1

movsb

格式:movsb

功能:将ds:si指向的内存单元中的字节送入es:di中,然后根据df的值,将si和di递增1或递减1。

执行movsb指令相于进行下面几步操作

(1)((es)*16+(di))=((ds)*16+(si))

(2)如果df=0则:(si)=(si)+ 1;(di)=(di)+ 1

如果df=1则:(si)=(si)- 1;(di)=(di)- 1

movsw

格式:movsw

功能:将ds:si指向的内存字单元中的字送入es:di中,然后根据标志寄存器df的值,将si和di递增2或递减2 。

rep

一般和movsb,movsw联动

功能:rep的作用是根据cx的值,重复执行后面的串传送指令。

pushf ,popf

pushf的功能是将标志寄存器的值压栈,popf的功能是从栈中弹出数据,放入标志寄存器中。

int

功能:引发中断过程。

指令格式:int n  (n为中断类型码)

cpu执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下。

(1)取中断类型码n;

(2)标志寄存器入栈,IF=0,TF=0;

(3)CS、IP入栈;

(4)(IP)=(n*4),(CS)=(n*4+2)。

iret

功能:从中断例程返回到应用程序。

相当于:

pop IP

pop CS

popf

in   out

在in和out指令中,只能使用ax或al来存放从端口中读入的数据或要发送到端口中的数据。访问8位端口时,要用al;访问16位端口时,要用ax。

对0~255以内的端口进行读写时:

in al,20h  ;从20h端口读入一个字节

out 20h,al  ;往20h端口写入一个字节

对256~65535的端口进行读写时,端口号放在dx中:

mov dx,3f8h  ;将端口号3f8h放入dx

in al,dx  ;从3f8h端口读入一个字节

out dx,al  ;往3f8h端口写入一个字节

shl

shl是逻辑左移指令,它的功能为:

(1)将一个寄存器或内存单元中的数据向左移位;

(2)将最后移出的一位写入CF中;

(3)最低位用0补充。

如果移动位数大于1时,必须将移动位数放在cl中。

shr

shr是逻辑右移指令,它的功能为:

(1)将一个寄存器或内存单元中的数据向右移位;

(2)将最后移出的一位写入CF中;

(3)最高位用0补充。

如果移动位数大于1时,必须将移动位数放在cl中。

sti  cli

sti,设置IF=1

cli,设置IF=0

dx 汇编dec_汇编语言——汇编指令相关推荐

  1. linux汇编 lea,汇编语言lea指令使用方法解析

    这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lea指令变种(按大小分类): leaw #2个字节 ...

  2. dx 汇编dec_汇编语言期末复习笔记(四)

    第二章 8086的指令系统(上) 写在前面:这一部分开始复习汇编语言程序的指令系统,主要是数据传送类指令和算术运算类指令.如有错误欢迎指正,感谢! 一.数据传送类指令 1.传送指令movmov reg ...

  3. 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)...

    汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号 ...

  4. linux汇编语言cmp,汇编语言中cmp指令用法笔记与总结

    这篇文章主要介绍了汇编语言中cmp指令用法,结合实例形式总结分析了汇编语言cmp指令基本功能.使用方法及操作注意事项,需要的朋友可以参考下 本文实例讲述了汇编语言中cmp指令用法.分享给大家供大家参考 ...

  5. 要掌握真正的免杀必须懂汇编---【汇编语言超浓缩教程】(转)

    对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃.所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩 ...

  6. 汇编语言中xor指令_汇编各类指令用法及含义分析 - 全文

    什么是汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指 ...

  7. 初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言

    非科班出身, 现在才接触汇编, 惭愧呀, 好好学!  主选课本是清华大学王爽老师的<汇编语言>. 推荐 王爽老师的汇编网 汇编语言之前是机器语言. 机器语言是机器指令的集合, 机器指令是一 ...

  8. isb 汇编_DSB,ISB,DMB指令

    转载:   http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204hc/CIHJFGFE.html http://www ...

  9. isb 汇编_DSB,ISB,DMB指令 | 学步园

    转载:   http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204hc/CIHJFGFE.html http://www ...

  10. 研究16位汇编NEG求补指令

    转自: http://bbs.pediy.com/showthread.php?t=81209 [文章标题]: 研究16位汇编NEG求补指令  [文章作者]:  hzmslx 我是个菜鸟··学16位汇 ...

最新文章

  1. JS实现HashMap
  2. 人民大学云计算编程的网上评估平台--解题报告 1004-1007
  3. Linux下安装jdk1.6和tomcat
  4. 中兴zxr10路由器重启命令_中兴交换机常用命令
  5. 覃超:从湘西到Facebook,硅谷只是技术人生的一小站
  6. 用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办
  7. [导入]C#中TextBox只能输入数字的代码
  8. 思考:那么些大学生仅凭个人好恶来判断,缺乏是非观
  9. c ++ 链表_C ++程序查找两个单个链表的并集
  10. linux中split函数用法,Linux csplit 命令用法详解-Linux命令大全(手册)
  11. UpdataPanel学习之 RenderMode
  12. C语言__builtin_choose_expr实现函数重载
  13. AcWing 1210.连号区间 (枚举)
  14. CSS3属性选择器(CSS3)
  15. rz、sz (上传下载)命令参数的解释
  16. powershell局域网内同步文件夹,文件脚本
  17. 垃圾回收GC经典算法
  18. python如何移动文件却不覆盖现有文件_在python中创建新文件,不要覆盖现有文件...
  19. Vue中v-model和checkbook的使用
  20. html基本词汇app,背单词APP哪个最好 可以自定义单词卡片的英语学习APP推荐

热门文章

  1. 使用OS X base System在线安装Mac OS到U盘及使用U盘恢复Mac OS
  2. wps如何自己制作流程图_WPS如何绘制流程图? WPS绘图流程图详细教程
  3. hp服务器系统检测,HP服务器检测步骤.pdf
  4. Spring Cloud 篇 :OpenFeign
  5. Windows操作系统双因素身份认证解决方案
  6. unity引用类型序列化_Unity中的序列化与反序列化
  7. Python编程基础 一张图认识Python
  8. jsp mysql demo_ntko: ntko办公插件使用案例demo使用java+jsp+mysql实现
  9. 硅谷女孩火了,更该让他们开始学编程
  10. 非参数统计——第二章 单样本问题