汇编语言程序设计(8).ppt_第1页
汇编语言程序设计(8).ppt_第2页
汇编语言程序设计(8).ppt_第3页
汇编语言程序设计(8).ppt_第4页
汇编语言程序设计(8).ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

新的一年,新的迹象,心的祝福: 祝大家 身体健康 学习进步 幸福愉快! Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 汇编语言程序设计 余世干 主 讲 Assembly Language Programming Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 课程介绍 w专业基础课、必修课 w计算机组成原理的一个部分 w软件开发的一个组成部分 w一种低级语言的程序设计 w高级语言程序设计的扩展 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 相关课程 q先修课 n高级语言程序设计 q后续课 n微机接口技术 n计算机控制技术 n编译原理 n嵌入式系统等课程 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 第一章 绪论 1.1 为什么要学习和使用汇编语言 1.2 汇编语言程序设计的一般概念 1.3 一个简单的汇编语言源程序举例 1.4 计算机中数和字符的表示 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 1.1为什么要学习和使用汇 编语言 一、汇编语言的主要特点 二、汇编语言可操作的系统硬件资源 三、汇编语言与高级语言之比较 四、汇编语言的应用场合 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 计算机能够直接识别的数据是由二进制数0和1 组成的代码。机器指令就是用二进制代码组成的指 令,一条机器指令控制计算机完成一个基本操作。 用机器语言编写的程序是计算机惟一能够直接 识别并执行的程序,而用其他语言编写的程序必须 经过翻译才能变换成机器语言程序,所以,机器语 言程序被称为目标程序。 机器语言 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 汇编语言 为了克服机器语言的缺点,人们采 用助记符表示机器指令的操作码,用 变量代替操作数的存放地址等,这 样就形成了汇编语言。 汇编语言是一种用符号书写的、 基本操作与机器指令相对应的、并 遵循一定语法规则的计算机语言。 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 用汇编语言编写的程序称为汇编源程序。 汇编语言是一种符号语言,比机器语言 容易理解和掌握,也容易调试和维护。但 是,汇编语言源程序要翻译成机器语言程 序才可以由计算机执行。这个翻译的过程 称为“汇编”,这种把汇编源程序翻译成 目标程序的语言加工程序称为“汇编程序 ”。 汇编语言 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 高级语言 汇编语言虽然较机器语言直观,但仍然 烦琐难懂。于是人们研制出了高级程序设计 语言。高级程序设计语言接近于人类自然语 言的语法习惯,与计算机硬件无关,易被用 户掌握和使用。 目前广泛应用的高级语言有多种,如 BASIC、FORTRAN、PASCAL、C、C+等等。 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 汇编语言的主要特点 面向机器的低级语言,汇编语言程序与处理器指令系统密切 相关,保持了机器语言的优点,具有直接和简捷的特点。 程序员可直接、有效地控制系统硬件资源,如磁盘、存储器 、CPU、I/O端口等。 形成的可执行文件运行速度快、目标代码简短,占用内存少 ,执行速度快,是高效的程序设计语言。 w 编写调试汇编语言源程序比编写调试高级语言源程序烦琐。 w 汇编语言程序比高级语言程序困难。经常与高级语言配合使 用,应用十分广泛 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 编程实现编程实现 c =a+b c =a+b,并在屏幕上显示出结果,并在屏幕上显示出结果 #include “stdio.h“ void main( ) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn“,c); 编译后的目标文 件达到3.59KB Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. data segment a db ? b db ? c db ? string db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax mov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h ret main endp code ends end start 例 2. C = a + b 汇编后的目 标文件只有 208字节 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 二、汇编语言可操作的系统硬件 资源 中央处理单元 存储器(主存储器) 外部设备(接口电路) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 1、中央处理单元 CPU (Intel 80x86) 对汇编语言程序员,最关心其 中的寄存器(Register) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 2、存储器(主存储器) 呈现给汇编语言程序员的,是存储 器地址(Address)。 w 存储器是由大量存储单元组成。 w 微机的每个存储单元存放一个字节的数据 一个字节B(Byte)包含了8个二进制位b( bit) w 为了区别每个单元,我们将它们编号,存储器 地址是存储器中存储单元的编号 w 通常采用十六进制数来表达地址 nIntel 8086具有1兆字节(1MB)存储器容量 n其存储器地址可以表示为:00000H FFFFFH Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 3、外部设备(接口电路) 汇编语言程序员看到的是端口(Port) w I/O接口电路由接口寄存器组成,为了区别它 们,各个寄存器进行了编号,形成I/O地址。 w 端口就是指I/O地址,是微机系统对I/O接口电 路中与程序设计有关的寄存器的编号 w 系统实际上就是通过这些端口与外设进 行通讯的 w 通常采用十六进制数来表达端口 nIntel 8086支持64K个8位端口 n其I/O地址可以表示为:0000H FFFFH Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、汇编语言和高级语言(1) w 汇编语言与处理器密切相关 汇编语言程序的通用性、可移植性 较差 w 高级语言与具体计算机无关 高级语言程序可以在多种计算机上 编译后执行 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、汇编语言和高级语言(2) w 汇编语言功能有限、涉及硬件细节 编写程序比较繁琐,调试起来也比 较困难 w 高级语言提供了强大的功能,不必关心 琐碎问题 类似自然语言的语法,易于掌握和应 用 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、汇编语言和高级语言(3) w 汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件 易于产生速度快、容量小的高效率目 标程序 w 高级语言不针对具体计算机系统 不易直接控制计算机的各种操作 目标程序比较庞大、运行速度较慢 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、汇编语言和高级语言(4) w 汇编语言的优点: n直接控制计算机硬件部件 n可以编写在“时间”和“空间”两方面最有 效的程序 w 汇编语言的缺点: n与处理器密切有关 n需要熟悉计算机硬件系统、考虑许多细 节 n编写繁琐,调试、维护、交流和移植困 难 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、汇编语言和高级语言(5) w 汇编语言的优点使得它在程序设计中占 有重要的位置,是不可被取代的 w 汇编语言的缺点使得人们主要采用高级 语言进行程序开发工作 w 有时需要采用高级语言和汇编语言混合 编程的方法,互相取长补短,更好地解 决实际问题 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 四、汇编语言的应用场合 w 程序要具有较快的执行时间,或者只能占用较小 的存储容量 w 程序与计算机硬件密切相关,程序要直接、有效 地控制硬件 w 大型软件需要提高性能、优化处理的部分 w 某些快速处理、位处理、访问硬件设备等高效程 序是用汇编语言编写的。 w 分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等 w 系统程序、效率代码、I/O驱动程序 w 70%以上的系统软件是用汇编语言编写的。 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 微机的软件环境 w 系统软件:DOS平台 nMS-DOS 6.22 n Windows 9.x的DOS实地址方式 nMS-DOS虚拟环境 w 应用软件:开发汇编语言程序涉及 n文本编辑器 n汇编程序 n连接程序 n调试程序 n集成化开发环境 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 集成化开发环境 w 集成开发环境是进行程序设计所用到的各种软 件的有机集合。其中,有文本编辑器,有语言 翻译程序,有连接程序,还组合有调试程序等 。 w 大型的程序设计项目往往要借助这种集成开发 环境,也就是软件开发工具(包)。 w 集编辑、汇编、连接和调试为一体的综合开发 环境。 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 1.2 汇编语言程序设计的一般 概念 一、汇编语言 二、汇编语言源程序 三、汇编程序 四、目标程序 五、连接程序 六、调试程序 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 一、汇编语言 w 汇编语言是一种面向机器的低级程序设计语言 w 汇编语言以助记符形式表示每一条计算机指令 n助记符(mnemonic)是便于人们记忆、并能 描述指令功能和指令操作数的符号 n助记符一般就是表明指令功能的英语单词或其 缩写 w 用助记符表示的指令就是汇编语言中的汇编格 式指令 w 汇编格式指令以及使用它们编写程序的规则就 形成汇编语言(Assembly Language) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 二、汇编语言源程序 w 用汇编语言书写的程序就是汇编语言程 序,或称汇编语言源程序 w 汇编语言源程序以 .ASM为默认的扩展 名 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、汇编程序(Assembler) w 汇编程序将汇编语言源程序翻译(称为“汇编” )成机器代码目标模块 w 80x86CPU的汇编程序主要有微软的宏汇编程 序MASM。较著名的还有Borland公司的 TASM,无实质差别 w 本课程采用微软的MASM 6.11 n这是MASM的最后一个独立版本 n可免费升级为MASM 6.14(支持奔腾3) n也可升级为MASM 6.15(支持奔腾4) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 四、目标程序 w 机器语言程序 w 汇编语言源程序经汇编程序翻译而成 w 不能直接运行 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 五、连接程序(Linker) w 连接程序将汇编后的目标模块转换为可 执行程序 w 每个程序开发环境都有连接程序 w 连接程序的文件名通常是: LINK.EXE Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 六、调试程序(Debugger) w 调试程序进行程序排错、分析等 w 本课程采用DOS的DEBUG程序 w 其他还有Turbo Debugger等 源程序可执行文件目标模块 文本编辑器汇编程序连接程序调试程序 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 目标: 了解汇编语言的特性及其编程技术, 建立起“机器”和“程序”、“空间 ”和 “时间”的概念。 建议: 充分注意“汇编”课实践性强的特点 , 多读程序,多写程序,多上机调试程序, 熟悉PC机的编程结构, 掌握汇编语言及其程序设计的基本概 念、方法和技巧。 学习汇编的建议 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 1.3 计算机中数和字符的表示 一、数制及数制之间的转换 二、码制 三、BCD码及其表示 四、字符的编码 五、几种基本的逻辑运算 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 一、数制及数制之间的转换 w 汇编语言使用的数制: 十进制数(D) 二进制数(B) 十六进制数(H ) 汇编程序自动完成 整数部分:“除2求余法” 小数部分:“乘2取整法” “4位展开” “按权展开” “4位分组” Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 二、码制(1) w机器数(一般指带符号数) 一个数连同符号在内在机器中都用2 进制数表示的数。 一般用最高有效位表示数的符号,正 数用0表示;负数用1表示。 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. w 机器数的原码、反码和补码表示法 1、原码:数值化的符号位加上真值的绝对值 ,也称真值绝对值表示法。 例:+0原=00000000 -0原=10000000 (8位原码) +127原=01111111 -127原=11111111 二、码制(2) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 二、码制(3) 2、反码:正数的反码和原码相同; 负数的反码:符号位不变,其余各位按位取 反。 3、补码:正数的补码和原码相同;负数的补码 等于反码加1 例:+127补=01111111 -127补=10000000+1=10000001 -128补=10000000 (-128无原码和反码) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. wPC机中的数是用补码表示 的 二、码制(4) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 补码的加法与减法 X+Y补=X补+Y补 X-Y补 =X补+-Y补 例:55+(-67) 127+2 -127+(-2) 溢出问题 Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. 三、BCD码及其表示 7 6 5 4 3 2 1 0 BCD无意义 7 6 5 4 3 2 1 0 BCDBCD 个 位十 位 w用4位二进制数表示1位十进制数 w常用的BCD码存储格式 n组合(压缩)型BCD码(1Byte表示2个BCD码) 非组合(非压缩)型BCD码(1Byte表示1个BCD码) Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile .Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd. BCD码运算及其十进制调整 加法调整规则:运算结果BCD非法或有 进位时

温馨提示

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

评论

0/150

提交评论