经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 汇编语言 » 查看文章
常用的汇编指令
来源:cnblogs  作者:一清  时间:2019/1/28 9:40:23  对本文有异议

数据传送类指令:

  1. MOV reg/mem,imm
  2. ;立即数送寄存器或主存
  1. MOV reg/mem/seg,reg
  2. ;寄存器送(段)寄存器或主存
  1. MOV reg/seg,mem
  2. ;主存送(段)寄存器
  1. MOV reg/mem,seg
  2. ;段寄存器送寄存器或主存
  1. MOV al,4 ;al<-4,字节传送
  2. MOV cx,0ffh ;cx<-00ffh,字传送
  3. MOV si,200h ;si<-200h,字传送
  4. MOV byte ptr [si],0ah ;byte ptr 属性修饰符,说明操作数为字节
  5. MOV word ptr [si+2],0bh ;word ptr 说明是字操作

 

交换指令:

寄存器和寄存器可以对换数据

寄存器和储存器可以对换数据

储存器和储存器不能对换数据

  1. XCHG reg,reg/mem
  2. ;reg<->reg/mem
  1. MOV ax,1234h ;ax=1234h
  2. MOV bx,5678h ;bx=5678h
  3. XCHG ax,bx ;ax=5678h bx=1234h
  4. XCHG ah,al ;ax=7856h

 

进栈指令:

  1. PUSH r16/m16/seg

操作过程:

1.sp<-sp-2

2.ss:[sp]<-r16/m16/seg

 

出栈指令:

  1. POP r16/m16/seg

操作过程:

1.r16/m16/seg<-ss:[sp]

2.sp<-sp+2

 

算术运算指令:

加法指令ADD

  1. ADD reg,imm/reg/mem
  2. ;reg<-reg+imm/reg/mem
  3. ADD mem,imm/reg
  4. ;mem<-mem+imm/reg

带进位加法指令ADC

  1. ADC reg,imm/reg/mem
  2. ;reg<-reg+imm/reg/mem+CF
  3. ADC mem,imm/reg
  4. ;mem<-mem+imm/reg+CF

增量指令INC:

  1. INC reg/mem
  2. ;reg/mem<-reg/mem+1

减法指令SUB:

  1. SUB reg,imm/reg/mem
  2. ;reg<-reg-imm/reg/mem
  3. SUB mem,imm/reg
  4. ;mem<-mem-imm/reg

带借位减法指令SBB:

  1. SBB reg,imm/reg/mem
  2. ;reg<-reg-imm/reg/mem-CF
  3. SBB mem,imm/reg
  4. ;mem<-mem-imm/reg-CF

减量指令DEC:

  1. DEC reg/mem
  2. ;reg/mem<-reg/mem-1

求补指令NEG:

  1. NEG reg/mem
  2. ;reg/mem<-0-reg/mem

比较指令CMP:执行功能与SUB一样,但是结果不送回操作数

  1. CMP reg,imm/reg/mem
  2. ;reg-imm/reg/mem
  3. CMP mem,imm/reg
  4. ;mem-imm/reg

 

位操作类指令:

逻辑运算指令AND

  1. AND dest,src
  2. ;dest<-dest^src

逻辑运算指令OR

  1. OR dest,src
  2. ;dest<-destVsrc

其他逻辑运算指令:

XOR:异或指令

NOR:非运算

 

控制转移类指令:

无条件转移指令JMP

原理:程序跳转是通过修改CS和IP的值来实现的

  1. JMP label
  2. ;程序转向label标号指定地址

 

条件转移指令JCC

  1. JCC label
  2. ;条件满足发生转移 IP<-IP+8位位移量
  3. ;条件不满足顺序执行

 

J开头的很多其他指令:都是“比较”有关

 

循环指令LOOP:

利用CX寄存器作为计数器

  1. LOOP lable
  2. ;cx<-cx-1
  3. ;cs!=0,循环到标号label

 

子程序指令:

比如玩游戏时候发技能就是在调用子程序

CALL指令调用子程序

子程序执行完后RET指令返回主程序

 

中断指令:

中断指令INT,中断返回指令INRT

 

处理机控制类指令:

对CPU状态进行控制的指令

NOP:不执行任何操作,但占用字节

 

伪指令:

CPU不能识别,编译器可以翻译

 

具体在逆向和病毒分析方面的使用在后边继续写

原文链接:http://www.cnblogs.com/xuyiqing/p/10328497.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号