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

下载本文档

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

文档简介

宋军计算机学院信息安全系songjun@12023/10/11汇编语言程序设计教学安排2023/10/112课时48学时:课堂教学(32)+上机实践(16)成绩评定平时成绩:40%考试成绩:60%考试方式闭(开)卷笔试:选择题、程序阅读、程序设计3次作业+Project参考教材2023/10/113高级语言、汇编语言、机器语言汇编语言(低级语言)C语言(高级语言)机器指令(机器语言)2023/10/214课程说明2023/10/215汇编语言程序设计Assembly

Language

and

Programming掌握汇编语言及其程序设计方法,了解计算机软硬件的若干底层细节和基本原理。为后续课程和工程应用打下重要的专业基础。加密解密,系统安全,逆向工程!预备知识2023/10/216Win32:Windows

32位汇编语言程序设计的原理、方法与技术CPU分层:DLL/MA/ISA层ISA-32CPU与IA-32IA-32是一类ISA-32IA-32是CISC下的ISA汇编语言程序设计最古老的程序设计语言深入理解计算机体系结构和操作系统高级汇编语法,MASM,TASM接近MASM什么是汇编语言汇编语言是一种面向机器的低级程序设计语言汇编语言以助记符形式表示每一条计算机指令助记符:易记忆、描述指令功能和指令操作数汇编指令:用助记符表示的指令汇编语言:汇编格式指令、编写规则汇编程序:称汇编语言源程序(.ASM)2023/10/217编译和调试环境编辑器、编译器、链接器和调试器编辑器创建源文件,如文本或代码编辑器编译器把汇编源程序转换为二进制目标文件

链接器是把编译器创建的多个单独的文件组合链接成可执行文件调试器查看程序运行中寄存器和内存状态编辑器编译器.ASM

.OBJ.EXE2023/10/218链接器调试器工作模式2023/10/21916位实地址模式与8086兼容的模式,仅低20位地址线起作用,能寻址第一个1MB的内存空间,MS

DOS运行在实模式下32位保护模式工作于32位80x86

CPU,提供对程序和数据进行安全检查的保护机制,如Windows

9x/NT/2000等32位操作系统虚拟8086模式

在Windows

9x下,运行一个DOS应用程序,该程序即运行在虚拟8086模式下什么是汇编语言机器指令助记符2023/10/2110汇编指令汇编语言ASM:Assembly

Language汇编语言与机器语言机器语言一种二进制(十六进制)语言,纯粹的数字形式特定的处理器才能理解汇编语言使用助记符的语句汇编指令与机器指令一一对应2023/10/2111汇编语言与高级语言高级语言与汇编语言及机器语言是一对多的关系

一条简单的C语言会被扩展成多条汇编语言或机器语言指令moveax,

y;将y送至eax寄存器addeax,

4;eax寄存器加4movebx,

3;立即数送至ebx寄存器imulebx;eax与ebx相乘movx,

eax;将eax寄存器存放的结果送至xx

=

(

y

+

4

)*32023/10/2112汇编语言和高级语言(cont.)2023/10/2113汇编语言功能有限,涉及硬件细节↘汇编语言程序的通用性、可移植性较差↘编写程序比较繁琐,调试起来也比较困难高级语言功能强大,与具体计算机无关↗高级语言程序可在多种计算机上编译后执行↗类似自然语言的语法,易于掌握和应用汇编语言:×高级语言:√汇编语言和高级语言(

cont.)汇编语言本质上就是机器语言↗可以直接、有效地控制计算机硬件↗易于产生速度快、容量小的高效率目标程序高级语言不针对具体计算机系统↘不易直接控制计算机的各种操作↘目标程序比较庞大、运行速度较慢汇编语言:√高级语言:×2023/10/2114汇编语言和高级语言(

cont.)2023/10/2115汇编语言的优点直接控制计算机硬件部件编写在“时间”和“空间”两方面最有效的程序汇编语言的缺点需要熟悉计算机硬件系统、考虑许多细节编写繁琐,调试、维护、交流和移植困难汇编语言:?高级语言:?汇编语言和高级语言(

cont.)2023/10/2116汇编语言的优点使得它在程序设计中占有重要的位置,是不可被取代的汇编语言的缺点使得人们主要采用高级语言进行程序开发工作有时需要采用高级语言和汇编语言混合编程的方法,互相取长补短,更好地解决实际问题混合编程取长补短混和编程—C内联汇编

asm{//关中断climov

eax,

cr0and

eax,

~0x10000mov

cr0,

eax}*(

pBase

+

uIndex

)

=*((PULONG)pOutputBuffer);

asm{//开中断mov

eax,

cr0or eax,

0x10000mov

cr0,

eaxsti}2023/10/2117汇编语言和高级语言2023/10/2118汇编语言的主要特点2023/10/2119与机器相关性汇编语言程序与处理器指令系统密切相关通用性和可移植性低执行效率高程序员可直接、有效地控制系统硬件形成的可执行文件运行速度快、占用内存量少编写程序的复杂性汇编指令单一、具体,源代码编写繁琐程序调试困难汇编语言的应用场合2023/10/2120适用的领域要有较快的执行时间,或者占用较小的存储空间与计算机硬件密切相关,要直接有效地控制硬件大型软件需要提高性能、优化处理的部分没有合适的高级语言、或只能采用汇编语言的时候不宜使用的领域大型软件的整体开发没有特殊要求的一般应用系统的开发分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等几个问题2023/10/2121本课程能学到什么?将了解到高级语言编译器(例如c)是如何将源代码语句翻译成汇编语言和机器语言的。将了解到高级语言是如何在机器语言层次实现算术表达式、循环和逻辑结构。将学习汇编语言代码与c程序之间的接口。将编写全新的汇编语言程序需要具备什么背景知识?一门大学计算机程序设计课程:C语言如何学习2023/10/2122目标:Win32汇编IA-32:8086、16位Windows

API控制台程序,非界面方法:阅读+实践由简到繁:一口吃不成胖子对照高级语言(C语言)熟读唐诗三百首,不会写诗也会吟。学习工具反汇编器

IDAPro开发平台

MS

VisualStudio2023/10/2123虚拟机2023/10/2124L0语言与L1语言假设:L0语是存粹的机器语言,L1语言是基于L0的更加人性化的语言解释方式与翻译方式

解释方式:用L0语言的解释程序对L1程序的每条指令解码并执行

翻译方式:用L0程序将整个L1源程序翻译成L0程序,再执行虚拟机VM1(L1)程序在虚拟机VM0(L0)执行,例如Java虚拟机(JVM)虚拟机层次高级语言5th汇编语言4th操作系统3th指令集体系结构

2nd微结构

温馨提示

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

评论

0/150

提交评论