汇编经典基础知识

汇编经典基础知识

ID:19292485

大小:37.00 KB

页数:15页

时间:2018-09-30

汇编经典基础知识_第1页
汇编经典基础知识_第2页
汇编经典基础知识_第3页
汇编经典基础知识_第4页
汇编经典基础知识_第5页
资源描述:

《汇编经典基础知识》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、汇编经典基础知识汇编经典基础知识.txt性格本身没有好坏,乐观和悲观对这个世界都有贡献,前者发明了飞机,后者发明了降落伞。汇编经典基础知识一.机械码,又称机器码.  ultraedit打开,编辑exe文件时你会看到许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码就是机器码.修改程序时必须通过修改机器码来修改exe文件.二.需要熟练掌握的全部汇编知识  不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了  cmpa,b比较a与b  mova,b把b的值送给a  r

2、et返回主程序  nop无作用,英文“nooperation”的简写,意思是“donothing”(机器码90)***机器码的含义参看上面  (解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)  call调用子程序  je或jz若相等则跳(机器码74或0F84)  jne或jnz若不相等则跳(机器码75或0F85)  jmp无条件跳(机器码EB)  jb若小于则跳  ja若大于则跳  jg若大于则跳  jge若大于等于则跳  jl若小于则跳  jle若小于等于则跳  pop出栈  pu

3、sh压栈  三.常见修改(机器码)  74=>7574=>9074=>EB  75=>7475=>9075=>EB  jnz->nop  75->90(相应的机器码修改)  jnz->jmp  75->EB(相应的机器码修改)  jnz->jz  75->74(正常)0F85->0F84(特殊情况下,有时,相应的机器码修改)  四.两种不同情况的不同修改方法  1.修改为jmp  je(jne,jz,jnz)=>jmp相应的机器码EB(出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错

4、信息  xxxxxxxxxxxx出错信息,例如:注册码不对,sorry,未注册版不能...,"FunctionNotAvaibleinDemo"或  "CommandNotAvaible"或"Can'tsaveinShareware/Demo"等(我们希望把它跳过,不让它出现)  。。。  。。。  xxxxxxxxxxxx正确路线所在  2.修改为nop  je(jne,jz,jnz)=>nop相应的机器码90(正确信息向上找到的第一个跳转)  nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利

5、来到紧跟其后的正确信息处  xxxxxxxxxxxx正确信息,例如:注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)  。。。  。。。  xxxxxxxxxxxx出错信息(我们希望不要跳到这里,不让它出现)它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.  1.通用数据传送指令.  MOV传送字或字节.  MOVSX先符号扩展,再传送.  MOVZX先零扩展,再传送.  PUSH把字压入堆栈.  POP把字弹出堆栈.  PUSHA把AX,CX,DX,BX,SP,BP,SI,

6、DI依次压入堆栈.  POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.  PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.  POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.  BSWAP交换32位寄存器里字节的顺序  XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数)  CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX)  XADD先交换再累加.(结果在第一个

7、操作数里)  XLAT字节查表转换.  ──BX指向一张256字节的表的起点,AL为表的索引值(0-255,即  0-FFH);返回AL为查表结果.([BX+AL]->AL)  2.输入输出端口传送指令.  INI/O端口输入.(语法:IN累加器,{端口号│DX})  OUTI/O端口输出.(语法:OUT{端口号│DX},累加器)  输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时,  其范围是0-65535.  3.目的地址传送指令.  LEA装入有效地址.  例:LEADX,string;把

8、偏移地址存到DX.  LDS传送目标指针,把指针内容装入DS.  例:LDSSI,string;把段地址:偏移地址存到DS:SI.  LES传送目标指针,把指针内容装入ES.  例:LESDI,string;把段地址:偏移地址存到ESI.  LFS传送目标指针,把指针内容装入FS.  例:LFSDI,string;把段地址:偏移地址存到FSI.  LGS传送

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。