- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章Win32汇编语言汇编语言程序设计基础指令系统
Windows 32位汇编语言程序设计体系结构—第三节IA-32指令系统 宋军 计算机学院信息安全系 songjun@cug.edu.cn 主要内容 IA-32通用指令集 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理机控制类指令 其他类 IA-32指令系统 计算机的指令系统是指计算机能够执行的全部指令的集合 。 IA-32CPU指令系统包括: ① 通用指令 ② 浮点运算指令 ③ SIMD指令 ④ MMX指令(多媒体扩展指令集 ) ⑤ SSE/SSE2/SSE3指令(单指令多数据流扩展 ) ⑥ 系统指令 ⑦ 64位模式的指令 通用指令集合 ① 数据传送类指令 ② 算术运算类指令 ③ 位操作类指令 ④ 串操作类指令 ⑤ 控制转移类指令 ⑥ 处理机控制类指令 ⑦ 其他类 数据传送指令 数据传送是计算机中最基本、最重要的一种操作 传送指令也是最常使用的一类指令 传送指令把数据从一个位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位 重点掌握 MOV XCHG PUSH POP LEA 要小心段寄存器的操作 不允许立即数传送给段寄存器 MOV DS,100H ;非法指令:立即数不能传送段寄存器 不允许直接改变CS值 MOV CS,[SI] ;不允许使用的指令 不允许段寄存器之间的直接数据传送 MOV DS,ES ;非法指令:不允许段寄存器间传送 地址传送指令 地址传送指令将存储器单元的逻辑地址送至指定的寄存器 有效地址传送指令 LEA 指针传送指令 LDS 和 LES(LFS/LGS/LSS) 注意:不是获取存储器单元的内容 有效地址传送指令LEA 将存储器操作数的有效地址传送至指定的寄存器中。 在实模式下,使用16位寄存器 在保护模式下,使用32位寄存器 该指令通常用来对指针或变址寄存器EBX、EDI或ESI等置初值之用。 LEA 与 OFFSET lea CPU指令 标号/变量、表达式 综合实例 .386 .model flat, stdcall .data val1 WORD 1000h val2 WORD 2000h arrayB BYTE 10h,20h,30h,40h,50h arrayW WORD 100h,200h,300h arrayD DWORD 10000h,20000h .code start: ; 内存与内存之间的数据交换 mov ax,val1 ; AX = 1000h xchg ax,val2 ; AX = 2000h, val2 = 1000h mov val1,ax ; val1 = 2000h ; 字节数组访问 mov al,arrayB ; AL = 10h mov al,[arrayB+1] ; AL = 20h mov al,[arrayB+2] ; AL = 30h ; 字数组访问 mov ax,arrayW ; AX = 100h mov ax,[arrayW+2] ; AX = 200h ; 双字数组访问 mov eax,arrayD ; EAX = 10000h mov eax,[arrayD+4] ; EAX = 20000h mov eax,[arrayD+TYPE arrayD] ; EAX = 20000h lea ebx, [arrayD+4] mov eax, [ebx] END start 算术运算指令 算术运算是IA-32指令系统中另外一种基本的操作,可以用来执行字节,字或双字的二进制加减乘除算术运算。 这类指令根据计算结果设置相应标志位。 ADD、ADC、INC SUB、SBB、DEC MUL、IMUL DIV、IDIV 加法指令 执行双字,字或字节的加法运算。 指令将目的操作数加上源操作数,结果送到目的操作数 ADD:无符号算术运算 ADC:带进位算术运算 INC:加1 加法指令 .data var1 dword 10000h var2 dword 2000h .code start: mov al,0fbh ;al=0fbh add al,07h ;al=02h mov eax, var1 ;eax=10000h add eax, var2 ;eax=12000h ret 增量指令INC(increment) INC指令对操作数加1(增量) INC指令不影响进位CF标志,按定义设置其他状态标志 减法指令 SUB指令将目的操作数减去源操作数,结果送到目的操作数 SUB指令按照定义相应设置状态标志 减量指令DEC(decrement) DEC指令对操作数减1(减量) DEC指令不影响进位CF标志,按定义设置其他状态标
您可能关注的文档
最近下载
- 全套IECQQC080000-2017有害物质过程管理体系文件(HSPM).pdf VIP
- 中国东方资产管理股份有限公司招聘笔试题库2025.pdf
- 市场调查与分析: 数据分析网络调查报告撰写 (慕课版)王晓燕习题答案.docx
- 起重装卸机械操作工高级工培训大纲与教学内容概述.docx VIP
- 2025至2030中国中药饮片行业市场发展现状及竞争格局与投资发展报告.docx
- 2025年教科版六年级上册科学第一单元综合检测试卷及答案.pptx VIP
- 《企业质量管控与应用》课件.ppt VIP
- 吊顶施工合同范本.pdf VIP
- 公共建筑室内温度控制管理办法——空调系统节能运行管理制度.doc VIP
- 统编版八年级语文上册课件《诗词五首-渔家傲》.pptx VIP
文档评论(0)