收藏 分享(赏)

计算机汇编语言程序设计.ppt

上传人:dzzj200808 文档编号:3363916 上传时间:2018-10-18 格式:PPT 页数:46 大小:440KB
下载 相关 举报
计算机汇编语言程序设计.ppt_第1页
第1页 / 共46页
计算机汇编语言程序设计.ppt_第2页
第2页 / 共46页
计算机汇编语言程序设计.ppt_第3页
第3页 / 共46页
计算机汇编语言程序设计.ppt_第4页
第4页 / 共46页
计算机汇编语言程序设计.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、新的一年,新的迹象,心的祝福:,祝大家 身体健康学习进步幸福愉快!,汇编语言程序设计,余世干 主 讲,Assembly Language Programming,课程介绍,专业基础课、必修课 计算机组成原理的一个部分 软件开发的一个组成部分 一种低级语言的程序设计 高级语言程序设计的扩展,相关课程,先修课 高级语言程序设计 后续课 微机接口技术 计算机控制技术 编译原理 嵌入式系统等课程,第一章 绪论,1.1 为什么要学习和使用汇编语言 1.2 汇编语言程序设计的一般概念 1.3 一个简单的汇编语言源程序举例 1.4 计算机中数和字符的表示,1.1为什么要学习和使用汇编语言,一、汇编语言的主要

2、特点 二、汇编语言可操作的系统硬件资源 三、汇编语言与高级语言之比较 四、汇编语言的应用场合,计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。,机器语言,汇编语言,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。,用

3、汇编语言编写的程序称为汇编源程序。 汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为“汇编程序”。,汇编语言,高级语言,汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 目前广泛应用的高级语言有多种,如BASIC、FORTRAN、PASCAL、C、C+等等。,汇编语言的主要特点,面向机器的低级语言,汇编语言程序与处理器指令系统密

4、切相关,保持了机器语言的优点,具有直接和简捷的特点。 程序员可直接、有效地控制系统硬件资源,如磁盘、存储器、CPU、I/O端口等。 形成的可执行文件运行速度快、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 编写调试汇编语言源程序比编写调试高级语言源程序烦琐。 汇编语言程序比高级语言程序困难。经常与高级语言配合使用,应用十分广泛,编程实现 c =a+b,并在屏幕上显示出结果,#include “stdio.h“void main( ) int a,b,c;a=1; b=2;c=a+b;printf(“c=%dn“,c);,data segment a db ? b db ? c

5、db ? string db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start:push dssub ax,ax,push axmov ax,datamov ds,axmov es,axmov a,1mov b,2mov al,aadd al,bmov c,allea dx,stringmov ah,09int 21hadd c,30h,mov dl,cmov ah,2int 21hmov dl,0ahint 21hmov dl,0dhint 21hret main endp code

6、 endsend start,例 2. C = a + b,二、汇编语言可操作的系统硬件资源,中央处理单元 存储器(主存储器) 外部设备(接口电路),1、中央处理单元 CPU (Intel 80x86),对汇编语言程序员,最关心其中的寄存器(Register),2、存储器(主存储器),呈现给汇编语言程序员的,是存储器地址(Address)。 存储器是由大量存储单元组成。 微机的每个存储单元存放一个字节的数据一个字节B(Byte)包含了8个二进制位b(bit) 为了区别每个单元,我们将它们编号,存储器地址是存储器中存储单元的编号 通常采用十六进制数来表达地址 Intel 8086具有1兆字节(1

7、MB)存储器容量 其存储器地址可以表示为:00000H FFFFFH,3、外部设备(接口电路),汇编语言程序员看到的是端口(Port) I/O接口电路由接口寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址。 端口就是指I/O地址,是微机系统对I/O接口电路中与程序设计有关的寄存器的编号 系统实际上就是通过这些端口与外设进行通讯的 通常采用十六进制数来表达端口 Intel 8086支持64K个8位端口 其I/O地址可以表示为:0000H FFFFH,三、汇编语言和高级语言(1),汇编语言与处理器密切相关 汇编语言程序的通用性、可移植性较差 高级语言与具体计算机无关 高级语言程序可以

8、在多种计算机上编译后执行,三、汇编语言和高级语言(2),汇编语言功能有限、涉及硬件细节 编写程序比较繁琐,调试起来也比较困难 高级语言提供了强大的功能,不必关心琐碎问题类似自然语言的语法,易于掌握和应用,三、汇编语言和高级语言(3),汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件 易于产生速度快、容量小的高效率目标程序 高级语言不针对具体计算机系统 不易直接控制计算机的各种操作 目标程序比较庞大、运行速度较慢,三、汇编语言和高级语言(4),汇编语言的优点: 直接控制计算机硬件部件 可以编写在“时间”和“空间”两方面最有效的程序 汇编语言的缺点: 与处理器密切有关 需要熟悉计算机硬件

9、系统、考虑许多细节 编写繁琐,调试、维护、交流和移植困难,三、汇编语言和高级语言(5),汇编语言的优点使得它在程序设计中占有重要的位置,是不可被取代的 汇编语言的缺点使得人们主要采用高级语言进行程序开发工作 有时需要采用高级语言和汇编语言混合编程的方法,互相取长补短,更好地解决实际问题,四、汇编语言的应用场合,程序要具有较快的执行时间,或者只能占用较小的存储容量 程序与计算机硬件密切相关,程序要直接、有效地控制硬件 大型软件需要提高性能、优化处理的部分 某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。 分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等 系

10、统程序、效率代码、I/O驱动程序 70%以上的系统软件是用汇编语言编写的。,微机的软件环境,系统软件:DOS平台 MS-DOS 6.22Windows 9.x的DOS实地址方式 MS-DOS虚拟环境 应用软件:开发汇编语言程序涉及 文本编辑器 汇编程序 连接程序 调试程序 集成化开发环境,集成化开发环境,集成开发环境是进行程序设计所用到的各种软件的有机集合。其中,有文本编辑器,有语言翻译程序,有连接程序,还组合有调试程序等。 大型的程序设计项目往往要借助这种集成开发环境,也就是软件开发工具(包)。 集编辑、汇编、连接和调试为一体的综合开发环境。,1.2 汇编语言程序设计的一般概念,一、汇编语言

11、 二、汇编语言源程序 三、汇编程序 四、目标程序 五、连接程序 六、调试程序,一、汇编语言,汇编语言是一种面向机器的低级程序设计语言 汇编语言以助记符形式表示每一条计算机指令 助记符(mnemonic)是便于人们记忆、并能描述指令功能和指令操作数的符号 助记符一般就是表明指令功能的英语单词或其缩写 用助记符表示的指令就是汇编语言中的汇编格式指令 汇编格式指令以及使用它们编写程序的规则就形成汇编语言(Assembly Language),二、汇编语言源程序,用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序汇编语言源程序以 .ASM为默认的扩展名,三、汇编程序(Assembler),汇编程

12、序将汇编语言源程序翻译(称为“汇编”)成机器代码目标模块 80x86CPU的汇编程序主要有微软的宏汇编程序MASM。较著名的还有Borland公司的TASM,无实质差别 本课程采用微软的MASM 6.11 这是MASM的最后一个独立版本 可免费升级为MASM 6.14(支持奔腾3) 也可升级为MASM 6.15(支持奔腾4),四、目标程序,机器语言程序 汇编语言源程序经汇编程序翻译而成 不能直接运行,五、连接程序(Linker),连接程序将汇编后的目标模块转换为可执行程序 每个程序开发环境都有连接程序 连接程序的文件名通常是: LINK.EXE,六、调试程序(Debugger),调试程序进行程

13、序排错、分析等 本课程采用DOS的DEBUG程序 其他还有Turbo Debugger等,目标:了解汇编语言的特性及其编程技术,建立起“机器”和“程序”、“空间”和“时间”的概念。 建议:充分注意“汇编”课实践性强的特点,多读程序,多写程序,多上机调试程序,熟悉PC机的编程结构,掌握汇编语言及其程序设计的基本概念、方法和技巧。,学习汇编的建议,1.3 计算机中数和字符的表示,一、数制及数制之间的转换 二、码制 三、BCD码及其表示 四、字符的编码 五、几种基本的逻辑运算,一、数制及数制之间的转换,汇编语言使用的数制:十进制数(D)二进制数(B)十六进制数(H),汇编程序自动完成,整数部分:“除

14、2求余法” 小数部分:“乘2取整法”,“4位展开”,“按权展开”,“4位分组”,二、码制(1),机器数(一般指带符号数)一个数连同符号在内在机器中都用2进制数表示的数。一般用最高有效位表示数的符号,正数用0表示;负数用1表示。,机器数的原码、反码和补码表示法 1、原码:数值化的符号位加上真值的绝对值,也称真值绝对值表示法。例:+0原=00000000 -0原=10000000 (8位原码)+127原=01111111 -127原=11111111,二、码制(2),二、码制(3),2、反码:正数的反码和原码相同;负数的反码:符号位不变,其余各位按位取反。 3、补码:正数的补码和原码相同;负数的补

15、码等于反码加1例:+127补=01111111 -127补=10000000+1=10000001-128补=10000000 (-128无原码和反码),PC机中的数是用补码表示的,二、码制(4),补码的加法与减法,X+Y补=X补+Y补 X-Y补 =X补+-Y补,例:55+(-67)127+2-127+(-2),溢出问题,三、BCD码及其表示,用4位二进制数表示1位十进制数,常用的BCD码存储格式,组合(压缩)型BCD码(1Byte表示2个BCD码),非组合(非压缩)型BCD码(1Byte表示1个BCD码),BCD码运算及其十进制调整,加法调整规则:运算结果BCD非法或有进位时,+6,例:5+

16、3; 5+6;8+9;,减法调整规则:运算结果BCD非法或有借位时,-6,四、字符编码 ASCII码,采用7位编码的ASCII码,用1Byte表示,其中低7位为字符的ASC值,最高位为0非打印字符33个(用于控制)27=128 打印字符95个,BEL(07H) 响铃 DEL(7FH) 删除 CR (0DH) 回车 LF (0AH) 换行,字符编码 ASCII码,用七位二进制编码表示128个字符,占一个字节 的低七位;最高位在机内默认为0。可用作奇偶校验位。,典型编码值:,09: 0110000B 0111001B (30H 39H),AZ:1000001B 1011010B (41H 5AH),az: 1100001B 1111010B (61H 7AH),: 0100100B (24H ),五、几种基本的逻辑运算,“与”运算( AND ) “或”运算( OR ) “非”运算(NOT) “异或”运算(XOR),本章结束,谢谢大家,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报