- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3课最为枯燥的汇编基础知识教程
第三课 最为枯燥的汇编基础知识
预备知识(死记硬背)
1.机码,又称机码打开编辑exe文件时你会看到许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码就是机器码修改程序时必须通过修改机器码来修改exe文件机码修改程序时必须通过修改机器码来exe等可执行文件修改.修改程序--“字节(byte)97,98,99,100,101(十进制)
A,B,C,D,E-41,42,43,44,45(十六进制)-65,66,67,68,69(十进制)
1,2,3,4,5-31,32,33,34,35(十六进制)-49,50,51,52,53(十进制)
2. 16进制编辑器。16进制编辑器是编辑、修改exe等可执行文件cmp a,b 比较a与bmov a,b 把b的值送给aret 返回主程序nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90) (解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)call 调用子程序je 或jz 若相等则跳(机器码74 或0F84)jne或jnz 若不相等则跳(机器码75或0F85)jmp 无条件跳(机器码EB)jb 若小于则跳ja 若大于则跳jg 若大于则跳jge 若大于等于则跳jl 若小于则跳jle 若小于等于则跳pop出栈push 压栈相应的机器码修改 jnz/jne-nop 75-90 jnz/jne - jmp 75- EB jz/je-nop 74-90 jz/je - jmp 74- EB jnz - jz 75-74 或 0F 85 - 0F 84 jz - jnz 74-75 或 0F 84 - 0F 85 jnz - jz 75-74 或 0F 85 - 0F 84 je- jne 74-75 或 0F 84 - 0F 85
后面的内容慢慢体会,消化
寄存器
汇编语言是创造出来代替原始的只能由处理器理解的二进制代码的。很久以前,没有任何高级语言,程序都是用汇编写的。汇编代码直接描述处理器可以执行的代码,例如:
add eax,edx
add这条指令把两个值加到一起。eax和edx寄存器,它们可以在处理器内部保存值。这条代码被转换为66 03 c2(16进制)。处理器阅读这行代码,并执行它所代表的指令。像C这样的高级语言把它们自己的语言翻译为汇编语言,而汇编器又把它转换为二进制代码:
C 代码a = a + b; C编译器 汇编语言add eax, edx 汇编器 原始输出(十六进制)66 03 C2 处理器中有一些可以保存数据的地方被称作寄存器。
寄存器可以被装入数据,你也可以在不同的寄存器之间移动这些数据,或者做类似的事情。基本上,像四则运算、位运算等这些计算操作,都主要是针对寄存器进行的。
首先一下80386上最常用的4个通用寄存器。先瞧瞧下面的图形,试着理解一下:
上图中,数字表示的是位。我们可以看出,EAX是一个32寄存器。同时,它的低16又可以通过AX这个名字来访问;AX又被分为高、低8两部分,分别由AH和AL来表示。
对于EAX、AX、AH、AL的改变同时也会影响与被修改的那些寄存器的值。从而事实上只存在一个32-bit的寄存器EAX,而它可以通过4种不同的途径访问。
也许通过名字能够更容易地理解这些寄存器之间的关系。EAX中的E的意思是“扩展的”,整个EAX的意思是扩展的AX。X的意思Intel没有明示,我个人认为它表示是一个可变的量 。而AH、AL中的H和L分别代表高和低 。
一些寄存器是别的寄存器的一部分:例如,如果EAX保存了值782345,这里是其他寄存器的值。
EAX 78 23 45 AX 12 78 23 45 AH 12 78 23 45 AL EA 78 23 45 ax,ah,al是eax的一部分。eax是一个32位的寄存器,ax包含了eax的低16位(2字节),ah包含了ax的高字节,而al包含了ax的低字节。因而ax是16位的,al和ax是8位的。在上面的例子中,这些是那些寄存器的值:
eax = ax = 2345ah = 23 al = 45
使用寄存器的例子(不要管那些伪代码,只看寄存器的说明)
mov eax,;Mov把一个值载入寄存器(注意是一个十六进制值,因为h这个后缀。
mov cl, ah;把ax的高字节移入cl
sub cl, 10;从cl的值中减去10(十进制)
mov al, cl;并把cl存入eax的最低字节
让我们来分析上面的代码:
mov指令可以把一个
您可能关注的文档
- 第2章二维草图绘制教程.doc
- 第2章逻辑代数基础教程.doc
- 第2节弹力教学设计教案教程.docx
- 第2讲椭圆、双曲线、抛物线教程.docx
- 第2讲乘法公式教程.docx
- 第2课修饰计划文字教程.docx
- 第2节弹力教程.doc
- 第2课时分数与除法关系自主练习台儿庄郑敏教程.doc
- 2015中国演出市场年度报告(2016.4.20发布)要点.docx
- 2015上-2013年5次教师资格国考真题解析课件(已修改)要点.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)