- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在除法之后 EAX = 100/9 = 0B(十进制:11) 并且 ECX = 100 MOD 9 = 1 div指令可以标记CF、OF、ZF * * IDIV (整除) 语法: IDIV 除数 IDIV执行方式同div一样,不过IDIV是有符号的除法 idiv指令可以标记CF、OC、ZF IMUL (整乘) 语法:IMUL 数值 IMUL 目标寄存器、数值、数值 IMUL 目标寄存器、数值 IMUL指令可以把让EAX乘上一个数(INUL 数值)或者让两个数值相乘并把乘积放在目标寄存器中(IMUL 目标寄存器, 数值,数值)或者将目标寄存器乘上某数值(IMUL 目标寄存器, 数值) 如果乘积太大目标寄存器装不下,那OF、CF都会被标记,ZF也会被标记 * * 第2324讲 恶意代码-汇编基础 答疑地点:12J810|12J806 网络答疑:QQ:252175436 答疑时间:周三上午9:30-11:00 * * 汇编基础 汇编是逆向工程的基础; 汇编语言是一切程序的起点和终点,毕竟所有的高级语言都是建立在汇编基础之上的。 在许多高级语言中我们都需要相对明确的语法,但是在汇编中,我们会使用一些单词缩写和数字来表达程序。 * * I. 单元、位和字节 BIT(位)?-?电脑数据量的最小单元,可以是0或者1。 例=?1=?2=?3????? ·BYTE(字节)?-?一个字节包含8个位,所以一个字节最大值是255(0-255)。 为了方便阅读,我们通常使用16进制来表示。 ·WORD(字)?-?一个字由两个字节组成,共有16位。一个字的最大值是0FFFFh?(或者是?65535d)?(h代表16进制,d代表10进制)。 ·DOUBLE?WORD(双字DWORD)?-?一个双字包含两个字,共有32位。最大值为0FFFFFFFF?(或者是?4294967295d)。 ·KILOBYTE(千字)?-?千字节并不是1000个字节,而是1024?(32*32)?个字节。 ·MEGABYTE?-?兆字节同样也不是一兆个字节,而是1024*1024=1,048,576?个字节 * * II. 寄存器 * * 寄存器是计算机储存数据的“特别地方”。你可以把寄存器看作一个小盒子,我们可以在里面放很多东西:比如名字、数字、一段话…… 如今Win+Intel CPU组成的计算机通常有9个32位寄存器 (w/o 标志寄存器)。它们是: EAX:?累加器 EBX:?基址寄存器 ECX:?计数器 EDX:?数据寄存器 ESI:?源变址寄存器 EDI:?目的变址寄存器 EBP:?扩展基址指针寄存器 ESP:?栈指针寄存器 EIP:?指令指针寄存器 通常来说寄存器大小都是32位 (四个字节) 。它们可以储存值为从0-FFFFFFFF (无符号)的数据。起初大部分寄存器的名字都暗示了它们的功能,比如ECX=计数,但是现在你可以使用任意寄存器进行计数 (只有在一些自定义的部分,计数才必须用到ECX)。当我用到EAX、EBX、ECX、EDX、ESI和EDI这些寄存器时我才会详细解释其功能,所以我们先讲EBP、ESP、EIP。 * * EBP:?EBP在栈中运用最广,刚开始没有什么需要特别注意的?;)? ESP:?ESP指向栈区域的栈顶位置。栈是一个存放即将会被用到的数据的地方,你可以去搜索一下push/pop?指令了解更多栈知识。? EIP:?EIP指向下一个将会被执行的指令。 * * 寄存器的类型 还有一件值得注意的事:有一些寄存器是16位甚至8位的,它们是不能直接寻址的。 * * 32位寄存器 通常一个寄存器可以这样看: 由图可知,EAX是这个32位寄存器的名字,EAX的低16位部分被称作AX,AX又分为高8位的AH和低8位的AL两个独立寄存器。 * * i. 单字节寄存器 顾名思义,这些寄存器都是一个字节 (8位) AL?and?AH BL?and?BH CL?and?CH DL?and?DH * * ii. 单字(16位)寄存器: 这些寄存器大小为一个字 (=2 字节 = 16 位)。一个单字寄存器包含两个单字节寄存器。我们通常根据它们的功能来区分它们。 1 通用寄存器? AX?(单字=16位)?=?AH?+?AL?-?其中‘+’号并不代表把它们代数相加。AH和AL寄存器是相互独立的,只不过都是AX寄存器的一部分,所以你改变AH或AL?(或者都改变)?,AX寄存器也会被改变。
您可能关注的文档
最近下载
- 深度解析(2026)《YBT 4348-2013刚玉砖》.pptx VIP
- 普通公路沥青路面典型路段使用效果评价技术规程.pdf VIP
- 四川省成都市成华区2024-2025学年九年级上学期期末监测物理试卷.docx VIP
- (高清版)DB11∕T 1987-2022 用水单位节水量计算导则.pdf VIP
- 山东省地标-《电气火灾监控系统设计、施工及验收规范》重点[实用].pdf VIP
- 中国的传统注音法——反切.ppt VIP
- 19BJ8-2 住宅排气道系统-全国各省建筑标准.pdf VIP
- 员工发展规划.doc VIP
- 《普通高中化学课程标准》解读(2025版2025年修订).pptx VIP
- 安阳市无人机培训项目可行性研究报告【参考范文】.docx
原创力文档


文档评论(0)