汇编语言程序设计第1章汇编语言基础知识.ppt
《汇编语言程序设计第1章汇编语言基础知识.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第1章汇编语言基础知识.ppt(57页珍藏版)》请在三一办公上搜索。
1、2023/10/2,1,第1章 汇编语言基础知识,2023/10/2,2,1.1 汇编语言概述,1.2 进位计数制及其转换,1.3 计算机中数和字符的表示方法,第1章 汇编语言基础知识,2023/10/2,3,自然语言是具有特定语音和语法等规范的、用于人类表达思想并实现相互交流的工具。人与人之间只有使用同一种语言才能进行直接交流,否则就必须通过翻译。要使计算机为人类服务,人们就必须借助某种工具,告诉计算机“做什么”甚至“怎么做”,这种工具就是程序设计语言。程序设计语言通常分为三类:机器语言、汇编语言和高级语言。而前两种语言与机器密切相关,统称为低级语言。,1.1.1 汇编语言基本概念,1.1
2、汇编语言概述,2023/10/2,4,计算机语言的发展,机器语言,FORTRANBASICCOBOLPASCALC/C+JAVA.,1.1 汇编语言概述,1.1.1 汇编语言基本概念,2023/10/2,5,计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。8086机器语言片段 B0 0A 04 14,机器语言,1.1 汇编语言概述,1.1.1 汇编语言基本概念,20
3、23/10/2,6,机器语言程序的优缺点,优点:计算机能直接认识、执行。程序紧凑,占用内存空间少,执行速度快。能充分发挥计算机的硬件性能。缺点:机器语言难记,程序难编,易错,调试困难(完全由0、1代码串组成)机器语言通用性差(面向硬件,不同硬件结构,指令代码不同),2023/10/2,7,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。所以汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言(机器语言的符号化)。用汇编语言编写的程序称为汇编源程序。汇编语言是一种符号语言,比机器语言容易理解和掌握,
4、也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。,汇编语言,1.1 汇编语言概述,1.1.1 汇编语言基本概念,2023/10/2,8,例如,在8086机器下,分别用汇编语言和机器语言计算10+20的程序代码如下:汇编语言 机器语言 MOV AL,10 B0 0A ADD AL,20 04 14显然,使用汇编语言编写的程序要比机器语言更容易理解。,1.1 汇编语言概述,1.1.1 汇编语言基本概念,2023/10/2,9,汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出
5、了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。目前广泛应用的高级语言有多种,如BASIC、FORTRAN、PASCAL、C、C+等等。,高级语言,1.1 汇编语言概述,1.1.1 汇编语言基本概念,2023/10/2,10,面向机器的低级语言,通常是为特定的计算机或计算机系列专门设计的。保持了机器语言的优点,具有直接和简捷的特点。可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。经常与高级语言配合使用,应用十分广泛。,1.1 汇编语言概述,1.1.2
6、 汇编语言的特点,2023/10/2,11,#include stdafx.h#include stdio.h int main(int argc,char*argv)int a,b,c;a=1;b=2;c=a+b;printf(“c=%dn,c);return 0;,编程实现 c=a+b,并在屏幕上显示出结果。,编译后的目标文件达到3.59KB,1.1 汇编语言概述,C 语言实现,1.1.2 汇编语言的特点,2023/10/2,12,汇编 语言实现,汇编后的目标文件只有208字节,data segmenta db?b db?c db?string db c=$data endscode se
7、gmentmain proc far assume cs:code,ds:data,es:datastart: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 retmain endpcode ends end start,1.1 汇编
8、语言概述,编程实现 c=a+b,并在屏幕上显示出结果。,1.1.2 汇编语言的特点,2023/10/2,13,汇编语言的应用系统程序、效率代码、I/O驱动程序 70%以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇 编语言编写的。,2023/10/2,14,汇编语言的意义(汇编语言机器的原动力)速度:对于同一个问题,用汇编语言设计出的程序能达到“运行速度最快”。空间:对于同一个问题,用汇编语言设计出的程序能达到“占用空间最少”。功能:汇编语言可以实现高级语言难以胜任甚至不能完成的任务。知识:学习汇编语言,有
9、助于对计算机系统的理解、写出更好的程序。要想用好汇编语言,必须要对硬件原理有所了解,尤其要掌握对应硬件的编程模型。,2023/10/2,15,教师建议目标:了解汇编语言的特性及其编程技术,建立起“机器”和“程序”、“空间”和“时间”的概念。建议:充分注意“汇编”课实践性强的特点,多读程序,多写程序,多上机调试程序,熟悉PC机的编程结构,掌握汇编语言及其程序设计的基本概念、方法和技巧。,2023/10/2,16,参考资料1.沈美明等编著,IBM PC 汇编语言程序设计,清华大学出版社.2.杨季文等编著.80X86汇编语言程序设计教程,清华大学出版社.3.徐建民等编著,汇编语言程序设计,电子工业出
10、版社.,2023/10/2,17,教学日历:40课时+16上机第一章 汇编语言 数制 数制之间的转换 数和字符的表示 运算第二章 计算机组织 CPU 存储器 外部设备第三章 寻址方式 指令系统 BIOS和DOS调用 第四章 伪操作 完整段定义格式 上机过程第五章 基本程序设计 第六章 输入/输出程序设计第七章 循环程序设计 第八章 分支程序设计 第九章 子程序结构 第十一章 高级汇编语言技术,2023/10/2,18,建议和要求:1.学习方法(加强读、写程序的训练,注意与C语言的比较)2.作业和实验3.成绩=平时(30%)+考试(70%)4.答疑,2023/10/2,19,1.1 汇编语言概述
11、,1.2 进位计数制及其转换,1.3 计算机中数和字符的表示方法,第1章 汇编语言基础知识,2023/10/2,20,计算机内部的信息分为两大类:控制信息和数据信息。控制信息是一系列的控制命令,用于指挥计算机如何操作;数据信息是计算机操作的对象,一般又可分为数值数据和非数值数据。对计算机而言,不论是控制命令还是数据,它们都要用“0”和“1”两个基本符号即基2码来编码表示,这是由于以下三个原因:(1)基2码在物理上最容易实现。例如,用高、低两个电位表示“1”和“0”,或用脉冲的有、无表示“1”和“0”等等,可靠性都较高。(2)基2码用来表示二进制数,其编码及加减运算规则简单。(3)基2码的两个符
12、号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。因此,不论是什么信息,在输入计算机内部时,都必须用基2码编码表示,以方便存储、传送和处理。,1.2 进位计数制及其转换,2023/10/2,21,预 备 知 识,存储容量1K=1024B=210(Kilo)1M=1024K=220(Mega)1G=1024M=230(Giga)1个二进制位:bit(比特)8个二进制位:Byte(字节)1Byte=8bit2个字节:Word(字)1Word=2Byte=16bit,1.2 进位计数制及其转换,2023/10/2,22,1.2.1 数与数制,1数的表示,二进制:基数
13、为2,逢二进一 11012=12 3+12 2+12 0=1310十六进制:基数为16,逢十六进一 1001,0001,1000,0111 9 1 8 7=9 16 3+1 16 2+8 16 1+7 16 0,1.2 进位计数制及其转换,2023/10/2,23,任何进制的数都可用如下方法表示:N=Ki*ri 其中:Ki 是任一个数码;ri是各位对应的权 r 是基数,1.2 进位计数制及其转换,1.2.1 数与数制,2023/10/2,24,2计数制的书写规则,为了区别不同的计数制,可采用下列两种方法:(1)在数字后面加写相应的英文字母作为标识,英文字母不分大小写。本书约定采用大写字母形式。
14、如:1100011B。B后缀表示为二进制数(Binary)。2357O。O后缀表示为八进制数(Octal)。由于英文字母O容易和零误会,所以也可以用Q来表示八进制。1000D。D后缀表示为十进制数(Decimal)。3AB5H。H后缀表示为十六进制数(Hexadecimal)。如果记数符号a,b,c,d,e,f打头,头部应加0,如0A8F5H;记数符号 a,b,c,d,e,f不区别大小写,与ABCDEF等效。缺省后缀时,一般约定为十进制数。(2)在括号外面加数字下标。如:(1011)2 表示二进制数的1011(2DF2)16表示十六进制数的2DF2,1.2 进位计数制及其转换,1.2.1 数与
15、数制,2023/10/2,25,1.2.2 不同数制之间的转换,1十进制数与二进制数之间的转换,(1)十进制整数转换成二进制整数方法:除2取余法注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。,(2)十进制小数转换成二进制小数方法:乘2取整法注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对应二进制小数。,1.2 进位计数制及其转换,2023/10/2,26,例:117.8125D=1110101.1101B,(3)一般的十进制数转换成二进制数为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,
16、然后再组合起来。,1.2 进位计数制及其转换,1.2.2 不同数制之间的转换,2023/10/2,27,(4)二进制数转换十进制数方法:按位权展开后相加。注意:用其各位所对应的系数,按“位权展开求和”的方法就可以得到,其基数为2。例1.4 将(101.11)2转换成十进制数。其过程如下:(101.11)2=122+021+120+12-1+12-2=4+0+1+0.5+0.25=(5.75)10,1.2 进位计数制及其转换,1.2.2 不同数制之间的转换,2023/10/2,28,(1)十进制整数转换成八进制整数方法:除8取余法注意:采用基数8连续去除该十进制整数,直至商等于“0”为止,然后逆
17、序排列所得到的余数。,(2)十进制小数转换成八进制小数方法:乘8取整法注意:连续用基数8去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。,(3)八进制数转换成十进制数方法:按位权展开后相加。用其各位所对应的系数,按“位权展开求和”的方法就可以得到,其基数为8。,1.2 进位计数制及其转换,2.十进制与八进制之间的转换,1.2.2 不同数制之间的转换,2023/10/2,29,(1)十进制整数转换成十六进制整数方法:除16取余法注意:采用基数16连续去除该十进制整数,直至商等于“0”为止,然后逆序排列所得到的余数。,例1.8 将十进制整数(2347)10转换为十
18、六进制整数,采用“除16倒取余”的方法,过程如下:16 2347 余数为11,即A0=B(十六进制数为B)16 146 余数为2,即A1=2 16 9 余数为9,即A2=9 0 余数为0,结束 最后结果为:(2347)10(A2 A1 A0)16=(92B)16,1.2 进位计数制及其转换,3.十进制与十六进制之间的转换,1.2.2 不同数制之间的转换,2023/10/2,30,(2)十进制小数转换成十六进制小数方法:乘16取整法注意:连续用基数16去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。例1.9 将十进制小数0.6875转换成十六进制小数。其过程如下
19、:0.6875 16 11.0000 整数部分为11,即A1=B 0.0000 余下的小数部分为0,结束最后结果为:(0.6875)10=(0.A-1)16=(0.B)16,1.2 进位计数制及其转换,1.2.2 不同数制之间的转换,2023/10/2,31,(3)十六进制数转换十进制数方法:按位权展开后相加注意:用其各位所对应的系数,按“位权展开求和”的方法就可以得到,其基数为16。BF3CH=11163+15162+3161+12160=48956D,1.2 进位计数制及其转换,1.2.2 不同数制之间的转换,2023/10/2,32,因为:23=8,所以每三位二进制数对应一位八进制数;2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 基础知识
链接地址:https://www.31ppt.com/p-6171009.html