2 汇编语言指令_第1页
2 汇编语言指令_第2页
2 汇编语言指令_第3页
2 汇编语言指令_第4页
2 汇编语言指令_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息系统安全与对抗实践 汇编语言:指令 指令集的概念 操作码与操作数 常用的汇编指令 2 内容提要 CPU只能识别二进制序列,即机器语言 为了方便进行编程,CPU都给出了指令集手册,用有意义的英文字母代表不同的 二进制序列,如ADD实际上代表着0 x000 x05,0 x80/00 x83/0 不同类型的CPU有不同的指令集 3 指令集 RISC(Reduced Instruction Set Computer) - 每条指令的长度相等 - 编译器优化好 - CPU体积更小、能耗更低、性能功耗比更高 - ARM(手机)、MIPS(路由器) CISC(Complex Instruction Set Computer) - 指令长度不等 - 对常用指令集的计算效率更高,而对一些不常用或者复杂的指令,则以几个 常用指令组合的方式来完成,计算效率明显下降 - X86、X64 4 指令集 mov ax, 1 - 将寄存器ax的值设为1 mov ax, 0 x123 - 将寄存器ax的值设为内存0 x123中的值 mov ax, 0 x123 - 将寄存器ax的值设为291 5 常用的汇编指令-mov 操作数指出指令执行的操作所需要数据的来源 操作码指出指令要执行的行为 MOV EAX,1 - EAX与1均为操作数,MOV为操作码 汇编指令不区分大小写 6 操作码与操作数 交换两个寄存器中存放的值 - XCHG EAX, EBX 交换寄存器和内存中存放的值 - XCHG EAX, EBX 注意 - 无法交换两个内存中存放的值 - XCHG EAX, EBX, 错误 7 常用的汇编指令-xchg ADD,将两个值相加并将结果存到前一个操作数中 - add EAX,EBX,EAX和EBX中的值相加并将结果存储到EAX中 ADC,将两个值相加,然后加上CF的值(1或者0),并将结果存到前一个操 作数中 - adc EAX,EBX 如果此时CF标志位1(上一条指令执行后产生了进位),则执行上述指 令后EAX中存放的值为EAX+EBX+1 如果此时CF标志位0(上一条指令执行后没有产生进位),则执行上述 指令后EAX中存放的值为EAX+EBX 8 常用的汇编指令-add,adc inc - 将寄存器或者存储单元中的值加上1 inc EAX,将EAX中的值增加1 inc EAX,将内存中地址为EAX的内存单元的值增加1 - 注意 inc无法对常数进行运算,例如inc 0 x80 dec - 效果与inc相反 9 常用的汇编指令-inc,dec SUB,将两个值相减并将结果存到前一个操作数中 - sub EAX,EBX,计算EAX减去EBX中的值,并将结果存储到EAX中 SBB,将两个值相减,然后减去CF的值(1或者0),并将结果存到前一个操作 数中 - SBB EAX,EBX 如果此时CF标志位1(上一条指令执行后产生了借位),则执行上述指 令后EAX中存放的值为EAX-EBX-1 如果此时CF标志位0(上一条指令执行后没有产生借位),则执行上述 指令后EAX中存放的值为EAX-EBX 10 常用的汇编指令-sub,sbb CMP目的操作数,源操作数 - 执行时目的操作数与源操作数相减,只根据结果设置标志寄存器的标志位 - 操作数均保持原值不变 - CMP EAX,EBX 假设此时EAX中的值与EBX中的值相等,则ZF被设置为1 其他不相等的情况需要综合考虑ZF与SF的值 ZF=1则EAX=EBXZF=0则EAX和EBX不相等 SF=1则EAX=EBX SF=0并ZF=0则EAXEBX SF=1或ZF=1则EAX=EBX 11 常用的汇编指令-cmp 将数值放到栈中,栈指针ESP减去4(32位系统),或者减去8(64位系统) push ax - 将ax中的值放到栈中,栈指针ESP减去4(32位系统) push 0 x10 - 将16放到栈中 12 常用的汇编指令-push pop ax - 将栈顶的值取出放到ax,栈指针ESP+4(32位系统)或者+8(64位系统) 13 常用的汇编指令-pop 用于调用另一个函数 - 将EIP修改为另一个函数第一条指令的地址 - 将当前的EIP值push到栈中,以便于返回到当前函数 14 常用的汇编指令-call 用于从另一个函数返回当前函数 - 相当于POP EIP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论