- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
X86汇编入门资料
X86汇编快速入门
1 寄存器.
主要寄存器如下图所示:
X86处理器中有8个32位的通用寄存器。由于历史的原因,EAX通常用于计算,ECX通常用于循环变量
计数。ESP和EBP有专门用途,ESP指示栈指针(用于指示栈顶位置),而EBP则是基址指针(用于指
示子程序或函数调用的基址指针)。如图中所示,EAX、EBX、ECX和EDX的前两个高位字节和后两个
低位字节可以独立使用,其中两位低字节又被独立分为H和L部分,这样做的原因主要是考虑兼容16
位的程序,具体兼容匹配细节请查阅相关文献。
应用寄存器时,其名称大小写是不敏感的,如EAX和eax没有区别。
2 内存和寻址模式
2.1 声明静态数据区
用汇编指令.DATA声明静态数据区(类似于全局变量),数据可以单字节、双字节、或双字(4字节)
的方式存放,分别用DB,DW,DD指令表示声明内存的长度。在汇编语言中,相邻定义的标签在内存中
是连续存放的。
.DATA
var DB 64 ;声明一个字节,并将数值64放入此字节中.
var2 DB ? ;声明一个为初始化的字节.
DB 10 ;声明一个没有label的字节,其值为10.
X DW ? ;声明一个双字节,未初始化.
Y DD 30000 ;声明一个4字节,其值为30000.
还可以声明连续的数据和数组,声明数组时使用DUP关键字
Z DD 1, 2, 3 ;定义3个DWORD,初始值为1,2,3.
bytes DB 10 DUP(?) ;定义10个未初始化的BYTE空间.
arr DD 100 DUP(0) ;定义100个DWORD,初始化为0.
str DB hello,0 ;定义一个以0结尾的字符串.
2.2 寻址模式
现代X86处理器具有4GB的寻址空间。在上面的例子中,我们用标签(label)表示内存区域,这些标签
在实际汇编时,均被32位的实际地址代替。X86还可以利用最多两个32位的寄存器和一个32位的有符
号常数相加计算一个内存地址,其中一个寄存器可以左移1、2或3位以表述更大的空间。
下面例子是汇编程序中常见的方式
mov eax, [ebx] ;将ebx值指示的内存地址中的4个字节传送到eax中
mov [var], ebx ;将ebx的内容传送到var的值指示的内存地址中.
mov eax, [esi-4] ;将esi-4值指示的内存地址中的4个字节传送到eax中
mov [esi+eax], cl ;将cl的值传送到esi+eax的值指示的内存地址中
mov edx, [esi+4*ebx] ;将esi+4*ebx值指示的内存中的4个字节传送到edx
下面是违反规则的例子:
mov eax, [ebx-ecx] ;只能用加法
mov [eax+esi+edi], ebx ;最多只能有两个寄存器参与运算
2.3 长度规定
在声明内存大小时,在汇编语言中,一般用DB,DW,DD均可声明的内存空间大小,这种现实声明能
够很好地指导汇编器分配内存空间,但是,对于
mov [ebx], 2
如果没有特殊的标识,则不确定常数2是单字节、双字节,还是双字。对于这种情况,X86提供了三个
指示规则标记,分别为BYTE PTR, WORD PTR, and DWORD PTR,如上面例子写成:
mov BYTE PTR [ebx], 2
mov WORD PTR [ebx], 2
mov DWORD PTR [ebx], 2
则意思非常清晰。
3 汇编指令
汇编指令通常可以分为数据传送指令、逻辑计算指令和控制流指令。本节将讲述其中最重要的指令,
以下标记分别表示寄存器、内存和常数。
reg32 32位寄存器 (EAX, EBX, ECX, EDX, ESI, EDI, ESP, or EBP)
reg16 16位寄存器 (AX, BX, CX, or DX)
reg8 8位寄存器(AH, BH, CH, DH, AL, BL, CL, or DL)
reg 任何寄存器
mem 内存地址 (e.g., [eax], [var + 4], or dword ptr [eax+ebx])
con32 32为常数
con16 16位常数
con8 8位常数
con 任何8位、16位或32位常数
3.1 数据传送指令
mov — Move (Opcodes: 88, 89, 8A,
您可能关注的文档
- 温室气体排放核算方法与报告指南——中国发电企业.pdf
- 《中国发电企业温室气体排放核算方法与报告指南(试行)》.pdf
- 迈腾卖点+竞品对比.pdf
- CNAS-GC21:2013《一般工业产品认证业务范围管理实施指南》.pdf
- 北京市第三方碳排放核查机构报告编写指南.pdf
- 城镇污水处理厂污染源排放过程(工况)监控技术指南(审定稿).pdf
- 2、银行业务类型及客户识别.pdf
- 电子电工实习报告-循环流水灯-WHUT.pdf
- 浪潮存储产品及其介绍.pdf
- 2016款Yeti产品自学手册.pdf
- 专题01动物的主要类群(综合题20道).docx
- 中考辅导物理复习注意公式总结归纳.pptx
- 第三单元中国特色社会主义道路(期中期末真题重组卷)(原卷版).docx
- 2020-2021学年八年级历史上学期期中测试卷02(考试版).docx
- 上海城市基层党建高质量发展的创新经验.pptx
- 专题09记叙文阅读(原卷版)-2022年中考语文二模试题分类汇编(江苏).docx
- Unit6Task教案牛津译林版英语八年级下册.docx
- Unit4ExploringLiterature重点词汇语法导学案-高一英语牛津译林版(2020).docx
- 专题十四数字经济(命题预测)-2023年中考三轮时政热点主观题集训.docx
- 第08课列夫托尔斯泰-2022-2023学年八年级语文上册课后培优分级练(原卷版).docx
最近下载
- 期末测试卷(试题)-2024-2025学年人教PEP版(2024)英语三年级上册.docx VIP
- 高二年级第一次月考质量分析化学.doc VIP
- 人教部编版小学语文三年级上册期中质量检测试题(答案+评分标准).pdf VIP
- 小红书2023“家生活”趋势白皮书-青年志&安娜&奥维云网-2023-64页.pdf
- 小学生主题班会 垃圾分类(课件).pptx
- 江西省南昌市八年级上学期期中数学试卷附参考答案.pdf VIP
- QC∕T 948-2013 汽车顶部装载装置.pdf
- 2024年浙江事业单位招聘-宁波慈溪市机关事业单位编外招5人考试备考题库及答案解析.docx VIP
- 风险评估及控制管理流程 2023年ISO15189医学实验室管理体系.docx VIP
- 滴灌在园林绿化中的应用及前景.doc VIP
文档评论(0)