版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言程序设计Assembly Language Programming高级编程专题(7)32位汇编指令和Win32汇编程序设计32位CPU工作模式实模式8088/8086的自然模式80286-Pentium系列复位后工作于实模式,直到OS引导后,切换到保护模式(通过CR0的PE位)。保护模式支持多任务,虚拟存储和大寻址空间80286-Pentium系列主要工作模式虚拟8086模式运行8086程序保护模式-分页技术12 bits10 bits10 bits32位寄存器 32位寄存器通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP段寄存器: CS,DS,SS,ES,F
2、S,GS其它: EIP,EFLAGSAHALAXEAXEAX = 12345678HAX = 5678HAH = 56H AL = 78H4个系统寄存器:GDTR、LDTR、IDTR、TR5个模式控制寄存器:CR0、CR1、CR2、CR3、CR4CR0用作控制处理器的模式和状态。PE标志使处理器进入保护模式。PG标志设置处理器是否将使用分页机制。CR1被保留。CR2寄存器用来存储发生页错误的线性地址。CR3寄存器在分页机制里物理地址的解析过程中扮演着重要的角色,这个寄存器存放着页目录的基地址。CR4寄存器在一些高级机制中使用,例如,设置PAE标志可以使另外四根地址线被使用,这样,地址线将达到3
3、6根。这两类寄存器使内存管理更加便利。 32位汇编寻址方式寻址方式改变地址寄存器:任一32位寄存器比例寻址方式: index*n(n=1,2,4,8)其它一样MOV EAX,ECXMOV DWORD PTR EBP,1MOV 4ESIEAX,132位汇编指令相同指令MOV EAX, 1;XCHG EAX, EBX改变指令:偏移地址为32位LEA EBX,BUFFERCALL/RET (CS双字)INT/IRET (CS双字)LOOP ECXPUSH SP :8086 先入栈再PUSH;286后入栈32位汇编指令(续)新加指令-数据传送-PUSHA/POPA; 8个16位RegisterPUSH
4、AD/POPAD; 8个32位RegisterPUSHFD/POPFDCWD/CWDE(AXEAX),CDQ(EAX(EDX,EAX);MOVSXMOVSX AX, ALMOVSX EAX,AXMOVZX;MOVZX AX, ALMOVZX EAX,AX-算术-IMUL AX,BX,3; IMUL AX,BX;-移位-SHLD/SHRD;BT(BIT TEST)BTS(BIT TEST AND SET)BTR(BIT TEST AND RESET)BTC(BIT TEST AND COMPLEMENT)BT EAX,0-串操作-MOVSD/LODSD/STOSD/CMPSD/SCASD32位伪
5、指令 处理器伪操作选择哪一个处理器.8086 .286 .386 .386p .586数据定义伪指令DQ DF DT :4字,6字,8字32位编程累加两个8字节数 d1 dq 1111111111111111h d2 dq 2222222222222222h d3 dq ? MOV EAX, DWORD PTR D1 ADD EAX, DWORD PTR D2 MOV EDX, DWORD PTR D1+4 ADC EDX, DWORD PTR D2+4 MOV DWORD PTR D3, EAX MOV DWORD PTR D3+4,EDXWin32汇编Win32与32位汇编程序设计的差别3
6、2位汇编:在32位CPU上进行的汇编Win32:用汇编编写Windows平台下的程序Why win32Win32 汇编是Windows 环境下一种全新的编程语言Win32 汇编可以当做一种功能强大的开发语言使用,使用它完全可以开发出大型的软件来。使用 Win32汇编语言是了解操作系统运行细节的最佳方式在 Windows 环境下进行加密解密、逆向工程,还有病毒、木马等有害代码的分析和防治工作时,Win32 汇编是惟一的选择Win32 ASM VS DOS ASM工作方式。Dos工作在实模式下,可以管理系统的所有资源;而Windows在保护模式下执行,所有应用程序都工作在3级中(Ring3),无法
7、直接访问IO端口,无法访问其他程序运行的内存,连向程序自己的代码段写入数据都是非法的。只有对Ring0的程序来说,系统才是全开放的。内存管理。Windows使用了处理器的分页机制;WIN32 只有一种内存模式,即 FLAT 模式,意思是平坦的内存模式,所有的 WIN32 的应用程序运行在一个连续、平坦、巨大的 4GB 的空间中;无须和段寄存器打交道。Win32 ASM VS DOS ASM(II)Win32下没有“段”(SEGMENT)的概念,但可以把程序分成不同的“分段”, 一个“分段”的开始即是上一个“分段的结束。分段并不是象在 Dos 下一样,为不同的段分别指出不同的段寄存器,因为 Wi
8、ndows 下只有一个 4GB 的段,Windows 程序中的分段表现在当程序装载时,赋予不同的分段不同的属性,比如说当程序加载时,对于 Ring3 程序来说,.code 段是不可写的,而 .data 段是可写的。WIN32中只有两种性质的分段:DATA和CODE。程序结构。Windows程序也有很大的不同,它是“基于消息”的。一个简单例子MessageBox函数申明int MessageBox(HWND hWnd, / handle of owner windowLPCTSTR lpText, / address of text in message boxLPCTSTR lpCaption
9、, / address of title of message box UINT uType / style of message box); ExitProcess 是一个标准的 Win32 API,对应 Dos汇编中的mov ah,4ch int 21h,也就是程序退出invoke为调用宏指令,addr取地址.386option casemap :none ; case sensitive.model flat, stdcallinclude masm32includewindows.incinclude masm32includekernel32.incinclude masm32inc
10、ludeuser32.incincludelib masm32libuser32.libincludelib masm32libkernel32.lib.dataszCaption db Win32汇编例子,0szText db Win32汇编,Simple and powerful!,0.codestart: .if 0 push MB_OK push offset szCaption push offset szText push NULL call MessageBox .else invoke MessageBox, NULL, addr szText, addr szCaption,MB_OK .endifinvoke ExitProcess,NULLend startAssemble & linkMASM v8(ml 6.14, link 5.12)rc file can be generated by VC+ 6.0ml /coff /c *.ASM*.objrc *.rc*.reslink /SUBSYSTEM:WINDOWS *.obj *.res *.exe更多例子C+ VS ASMMAS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加油站建设项目可行性研究报告
- 《描写春天的句子》课件
- 《社会语言学》课件
- 房产建筑工程
- (部编版八年级《政治》课件)第1课时-法不可违
- 《简单的电路计算》课件
- 《柠檬酸发酵机制》课件
- 机构编制培训课件(机构编制政策要点及纪律要求)
- 中型电力施工合同模板
- 用户体验研究保密协议管理办法
- 2024年肠道传染病培训课件:疾病预防新视角
- 2024年度拼多多店铺托管经营合同2篇
- 2023年北京肿瘤医院(含社会人员)招聘笔试真题
- 2024年化学检验员(中级工)技能鉴定考试题库(附答案)
- 旅行社分店加盟协议书(2篇)
- 勘察工作质量及保证措施
- 城镇燃气经营安全重大隐患判定及燃气安全管理专题培训
- 个人和企业间资金拆借合同
- 重大火灾隐患判定方法
- 2024年除雪服务定制协议样本版
- 七年级地理上册 3.2海陆变迁说课稿 (新版)商务星球版
评论
0/150
提交评论