Win32汇编语言-概述.ppt_第1页
Win32汇编语言-概述.ppt_第2页
Win32汇编语言-概述.ppt_第3页
Win32汇编语言-概述.ppt_第4页
Win32汇编语言-概述.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/9/9,1,宋军 计算机学院信息安全系 ,汇编语言程序设计,2,2020/9/9,教学安排,课时 48学时:课堂教学(32) + 上机实践(16) 成绩评定 平时成绩:40 % 考试成绩:60 % 考试方式 闭(开)卷笔试:选择题、程序阅读、程序设计 3次作业 + Project,3,2020/9/9,参考教材,4,2020/9/9,高级语言、汇编语言、机器语言,汇编语言 (低级语言),C语言 (高级语言),机器指令 (机器语言),5,2020/9/9,课程说明,汇编语言程序设计Assembly Language and Programming 掌握汇编语言及其程序设计方法,了解计算

2、机软硬件的若干底层细节和基本原理。 为后续课程和工程应用打下重要的专业基础。,加密解密,系统安全,逆向工程 !,6,2020/9/9,预备知识,Win32:Windows 32位汇编语言程序设计的原理、方法与技术 CPU分层:DLL/MA/ISA层 ISA-32CPU与IA-32 IA-32是一类ISA-32 IA-32是CISC下的ISA 汇编语言程序设计 最古老的程序设计语言 深入理解计算机体系结构和操作系统 高级汇编语法 ,MASM,TASM接近MASM,7,2020/9/9,什么是汇编语言,汇编语言是一种面向机器的低级程序设计语言 汇编语言以助记符形式表示每一条计算机指令 助记符:易记

3、忆、描述指令功能和指令操作数 汇编指令:用助记符表示的指令 汇编语言:汇编格式指令、编写规则 汇编程序:称汇编语言源程序(.ASM),8,2020/9/9,编译和调试环境,编辑器、编译器、链接器和调试器 编辑器创建源文件,如文本或代码编辑器 编译器把汇编源程序转换为二进制目标文件 链接器是把编译器创建的多个单独的文件组合链 接成可执行文件 调试器查看程序运行中寄存器和内存状态,9,2020/9/9,工作模式,16位实地址模式 与8086兼容的模式,仅低20位地址线起作用,能寻址第一个1MB的内存空间,MS DOS运行在实模式下 32位保护模式 工作于32位80 x86 CPU,提供对程序和数据

4、进行安全检查的保护机制,如Windows 9x/NT/2000等32位操作系统 虚拟8086模式 在Windows 9x下,运行一个DOS应用程序,该程序即运行在虚拟8086模式下,10,2020/9/9,什么是汇编语言,机器指令,助记符,汇编指令,汇编语言,ASM:Assembly Language,11,2020/9/9,汇编语言与机器语言,机器语言 一种二进制(十六进制)语言,纯粹的数字形式 特定的处理器才能理解,汇编语言 使用助记符的语句 汇编指令与机器指令一一对应,12,2020/9/9,汇编语言与高级语言,高级语言与汇编语言及机器语言是一对多的关系 一条简单的C语言会被扩展成多条汇

5、编语言或机器语言指令,mov eax, y;将y送至eax寄存器 add eax, 4;eax寄存器加4 mov ebx, 3;立即数送至ebx寄存器 imul ebx;eax与ebx相乘 mov x, eax;将eax寄存器存放的结果送至x,x = ( y + 4 )*3,13,2020/9/9,汇编语言和高级语言(cont.),汇编语言功能有限,涉及硬件细节 汇编语言程序的通用性、可移植性较差 编写程序比较繁琐,调试起来也比较困难 高级语言功能强大,与具体计算机无关 高级语言程序可在多种计算机上编译后执行 类似自然语言的语法,易于掌握和应用,汇编语言: ,高级语言: ,14,2020/9/

6、9,汇编语言和高级语言( cont. ),汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件 易于产生速度快、容量小的高效率目标程序 高级语言不针对具体计算机系统 不易直接控制计算机的各种操作 目标程序比较庞大、运行速度较慢,汇编语言: ,高级语言: ,15,2020/9/9,汇编语言和高级语言( cont. ),汇编语言的优点 直接控制计算机硬件部件 编写在“时间”和“空间”两方面最有效的程序 汇编语言的缺点 需要熟悉计算机硬件系统、考虑许多细节 编写繁琐,调试、维护、交流和移植困难,汇编语言: ?,高级语言: ?,16,2020/9/9,汇编语言和高级语言( cont. ),汇编语

7、言的优点使得它在程序设计中占有重要的位置,是不可被取代的 汇编语言的缺点使得人们主要采用高级语言进行程序开发工作 有时需要采用高级语言和汇编语言混合编程的方法,互相取长补短,更好地解决实际问题,混合编程,取长补短,17,2020/9/9,混和编程C内联汇编,_asm /关中断 cli mov eax, cr0 and eax, 0 x10000 mov cr0, eax *( pBase + uIndex ) = *(PULONG)pOutputBuffer); _asm /开中断 mov eax, cr0 or eax, 0 x10000 mov cr0, eax sti ,18,2020/

8、9/9,汇编语言和高级语言,19,2020/9/9,汇编语言的主要特点,与机器相关性 汇编语言程序与处理器指令系统密切相关 通用性和可移植性低 执行效率高 程序员可直接、有效地控制系统硬件 形成的可执行文件运行速度快、占用内存量少 编写程序的复杂性 汇编指令单一、具体,源代码编写繁琐 程序调试困难,20,2020/9/9,汇编语言的应用场合,适用的领域 要有较快的执行时间,或者占用较小的存储空间 与计算机硬件密切相关,要直接有效地控制硬件 大型软件需要提高性能、优化处理的部分 没有合适的高级语言、或只能采用汇编语言的时候 不宜使用的领域 大型软件的整体开发 没有特殊要求的一般应用系统的开发 分

9、析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等,21,2020/9/9,几个问题,本课程能学到什么? 将了解到高级语言编译器(例如c)是如何将源代码语句翻译成汇编语言和机器语言的。 将了解到高级语言是如何在机器语言层次实现算术表达式、循环和逻辑结构。 将学习汇编语言代码与c程序之间的接口。 将编写全新的汇编语言程序 需要具备什么背景知识? 一门大学计算机程序设计课程:C语言,22,2020/9/9,如何学习,目标:Win32汇编 IA-32:8086、16位 Windows API 控制台程序,非界面 方法:阅读+实践 由简到繁:一口吃不成胖子 对照高级语言(C语言),熟读唐诗三百首,不会写诗也会吟。,23,2020/9/9,学习工具,反汇编器 IDA Pro,开发平台 MS Visual Studio,24,2020/9/9,虚拟机,L0语言与L1语言 假设:L0语是存粹的机器语言,L1语言是基于L0的更加人性化的语言 解释方式与翻译方式 解释方式:用L0语言的解释程序对L1程序的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论