第三版汇编语言程序设计教程课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/6/14汇编语言程序设计教程1汇编语言程序设计教程第三版适用于计算机科学与技术专业卜艳萍周伟编著清华大学出版社2020/6/14汇编语言程序设计教程2内容简介•第1章和第2章介绍汇编语言基础知识和80x86机型的功能与系统结构。•第3章详细介绍IBMPC机的寻址方式和指令系统。•第4章介绍伪指令、汇编语言程序格式等知识。•第5章讲述顺序程序设计、分支程序设计和循环程序设计的基本方法。•第6章详细介绍子程序设计及参数传递的方法。•第7章是输入/输出程序设计技术和方法。•第8章介绍高级汇编技术,包括宏汇编、条件汇编和重复汇编等。•第9章讲述DOS功能调用和BIOS功能调用知识。•第10章是汇编语言程序设计上机实验指导部分。2020/6/14汇编语言程序设计教程3课程的性质与基本要求•汇编语言是一门实践性很强的课程,在教学过程中要训练学生掌握指令的操作过程、程序设计的基本规则和方法以及上机调试的能力。•汇编语言适合于编制在时间和空间要求都很高的程序。汇编语言是能够利用计算机所有硬件特性的一门语言,在涉及到硬件设计的系统中,一般都用汇编语言完成接口部分程序的设计。•本课程的开设,对于训练学生掌握微型计算机的结构、指令的操作过程、汇编语言程序设计技术以及应用汇编语言编制实用程序都有重要的作用。2020/6/14汇编语言程序设计教程4本课程与其它课程的关系•汇编语言是计算机科学专业语言类最基础的课程之一,《计算机文化基础》、《计算机编程基础》等作为本课程的前导课程。•学好这门课程,可为学习相关的专业课打下基础,它是《微机原理及接口技术》、《操作系统》、《计算机组成原理》、《编译原理》和《单片机原理及应用》等的前导课程。2020/6/14汇编语言程序设计教程5第1章汇编语言基础知识第2章微型计算机体系结构第3章微型计算机的指令系统第4章伪指令与汇编语言程序结构设计第5章汇编语言程序设计第6章子程序设计第7章输入/输出程序设计第8章高级汇编技术第9章DOS/BIOS功能调用第10章汇编语言上机实验目录2020/6/14汇编语言程序设计教程6第1章汇编语言基础知识1.1计算机基础知识1.2计算机的基本结构与组成1.3计算机中的数制与码制2020/6/14汇编语言程序设计教程71.1计算机基础知识1.1.1计算机的发展史1.1.2计算机的特性1.1.3计算机的分类1.1.4计算机的主要技术指标2020/6/14汇编语言程序设计教程8计算机的发展史•第一代:电子管计算机时代(从1946年第一台计算机研制成功到50年代后期),其主要特点是采用电子管作为基本器件。•第二代:晶体管计算机时代(从50年代中期到60年代后期),这时期计算机的主要器件逐步由电子管改为晶体管。•第三代:集成电路计算机时代(从60年代中期到70年代前期),随着半导体器件生产工艺与技术上的进步,在一片半导体基片上,可以生产出多个晶体管,并用它们形成具有一定处理功能的逻辑器件,这就是集成电路。•第四代:大规模集成电路计算机时代(70年代初开始)。2020/6/14汇编语言程序设计教程9计算机的特性•高速•高精度•通用•准确•智能化•体积小、重量轻2020/6/14汇编语言程序设计教程10计算机的分类•计算机按其用途来分可以分成专用机和通用机两类。•专用机是专门用于某种用途的,它对于特定用途而言最经济、最快速、最有效,但适应性差,而通用机适应性强。2020/6/14汇编语言程序设计教程11计算机的主要技术指标•机器字长是指该计算机能进行多少位二进制数的并行运算,实际上是指该计算机中的运算器有多少位,通常计算机的数据总线和寄存器的位数与机器字长一致。•CPU速度是指单位时间(秒)内能够执行指令的条数。•主频又称为主时钟频率,是指CPU在单位时间(秒)内产生的时钟脉冲数,以MHz(兆赫兹)为单位。•存储器容量的大小不仅影响着存储程序和数据的多少,而且也影响着运行这些程序的速度。•存储器完成一次数据的读(取)或写(存)操作所需要的时间称为存储器的存取(或访问)时间。存储器执行一次完整的读/写操作所需要的时间称为存取周期。•系统的可靠性通常用平均无故障时间MTBF和平均故障修复时间MTTR来表示。•计算机的数据传输率还常用带宽表示,它反映计算机的通信能力。数据传输率的单位是bps,bps代表每秒传输一位或一比特。2020/6/14汇编语言程序设计教程12存储器的容量2020/6/14汇编语言程序设计教程131.2计算机的基本结构与组成1.2.1计算机的硬件1.2.2计算机的软件1.2.3计算机的程序设计语言1.2.4计算机系统的层次结构2020/6/14汇编语言程序设计教程14计算机硬件组成2020/6/14汇编语言程序设计教程15计算机硬件组成•运算器是对信息或数据进行处理和运算的部件,可以实现各种算术运算和逻辑运算。•控制器(ControlUnit,CU)主要用来实现计算机本身运行过程的自动化,即实现程序的自动执行,是计算机的管理机构和指挥中心。•存储器是计算机的存储和记忆装置,用来存储程序和数据,由存储单元组成。•计算机的输入输出设备(Input/OutputDevice)简称I/O设备或者外设。位于主机之外,实现计算机与外部设备或者计算机与人进行信息交换,所以又称为外围设备(PeripheralDevice)。2020/6/14汇编语言程序设计教程16微型计算机系统结构2020/6/14汇编语言程序设计教程17系统总线•地址总线:在该组信号线上,CPU输出将要访问的内存单元或I/O端口的地址信息。•数据总线:CPU进行读操作时,主存或外设的数据通过该组信号线输入到CPU内部;CPU进行写操作时,CPU内部的数据通过该组信号线输出到主存或外设。•控制总线:控制信号线用于协调系统中各部件的操作。其中,有些信号线将CPU的控制信号或状态信号送往外界;有些信号线将外界的请求或联络信号送往CPU。2020/6/14汇编语言程序设计教程18计算机的软件•计算机的软件是指运行、维护、管理、应用计算机所需要的各种程序及其有关的文档资料。即指计算机系统所用的各种程序的集合,包括系统软件和应用软件两大类。•系统软件的核心称为操作系统(OperatingSystem)。操作系统是系统软件的指挥中枢,它的主要作用是统一管理计算机的所有资源。•用户软件是用户在自己的业务范围内为解决特定的问题而自行编制、开发的程序。2020/6/14汇编语言程序设计教程19计算机的程序设计语言•机器语言:计算机能够直接识别的是二进制数0和1组成的代码。机器指令就是用二进制编码的指令,一条机器指令控制计算机完成一个操作。•汇编语言:汇编语言是一种符号语言,它用助记符表示操作码,比机器语言容易理解和掌握,助记符一般是表明指令功能的英语单词或其缩写。•高级语言:高级语言比较接近于人类自然语言的语法习惯及数学表达形式,它与具体的计算机硬件无关,更容易被广大计算机工作者掌握和使用。2020/6/14汇编语言程序设计教程20汇编语言的应用•程序要具有较快的执行时间,或者只能占用较小的存储容量。•程序与计算机硬件密切相关,程序要直接、有效地控制硬件。•大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动态连接库等。•没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时,暂时没有支持新指令的编译程序。•汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等。2020/6/14汇编语言程序设计教程21计算机系统的层次结构2020/6/14汇编语言程序设计教程22计算机系统的层次结构•数字逻辑层是计算机系统的最底层,它涉及计算机硬件的最基础的数字逻辑和数字门电路知识,解决了如何存储信息、如何传送信息以及如何运算与加工信息等方面的问题。•微体系结构层要实现执行指令所需要的所有功能部件,如运算、控制、存储、输入/输出、接口和总线部件等。•在指令系统层,需要定义机器的指令集,规定每一条指令的格式和功能。•操作系统层主要承担计算机系统中的资源管理与分配,也向使用者和程序设计人员提供简单、方便、高效的服务。2020/6/14汇编语言程序设计教程23计算机系统的层次结构•汇编语言是面向计算机硬件本身的,程序设计人员可以使用的一种符号式的计算机语言,汇编语言的语句可以直接访问CPU、存储器和I/O设备,它是除机器语言外实现速度最快的一种计算机编程语言。汇编语言的程序必须经过汇编程序的翻译才能在机器上执行。•高级语言不像汇编语言那样“靠近”计算机的指令系统,而是着重面向解决实际问题所用的算法,更多的是为方便程序设计人员写出自己解决问题的处理方案和解题过程的程序。•在高级语言层之上,还可以有应用层,这一层是为了使计算机满足某种用途而专门设计的,它由面向问题的应用语言和解决实际问题的处理程序组成。2020/6/14汇编语言程序设计教程241.3计算机中的数制与码制1.3.1数制及数制转换1.3.2机器数的编码1.3.3定点数与浮点数1.3.4码制2020/6/14汇编语言程序设计教程25数制及数制转换进位计数制基本概念:基数(Radix)、权(Weight)、N=Dn-1+Dn-2Rn-2+…+D0R0+D-1R-1+…+D-mR-M=DiRi1nmi常用计数制:二进制(R=2);八进制(R=8);十进制(R=10);十六进制(R=16)。2020/6/14汇编语言程序设计教程26常用的进位计数制二进制R=2基本符号0,1八进制R=8基本符号0,1,2,3,4,5,6,7十进制R=10基本符号0,1,2,3,4,5,6,7,8,9十六进制R=16基本符号0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F2020/6/14汇编语言程序设计教程27进位计数制间的相互转换(1)二进制、八进制、十六进制转换为十进制数。(按权相加)10101101.101B=27+25+23+22+20+2-1+2-3=128+32+8+4+1+0.5+0.125=173.625D(2)十进制数转换为二进制、八进制、十六进制。(按R取余)36512D/16=22822282/16=142142/16=88/16=0(a0=9)(a1=10)(a2=14)(a3=8)∴36521D=8EA9H(3)二进制数与八进制、十进制、十六进制之间的转换。10101001.01101B=(1010)(1001).(0110)(1000)BA968∴10101001.01101B=A9.68H2020/6/14汇编语言程序设计教程28机器数的编码•原码•反码•补码数的最高位表示符号位,其余各位表示真值的绝对值。符号位为0表示该数为正数,符号位为1表示该数为负数。正数的反码与原码相同,负数的反码其符号位仍用1表示,其余数值位则按位取反。用于解决减法转换为加法的问题,简化计算机运算电路。常用方法之一:先取原数反码,再末位加1即得到补码。2020/6/14汇编语言程序设计教程29原码、反码和补码的比较•如果真值x为正数,则有[x]原=[x]反=[x]补。如果真值x为负数,则[x]原、[x]反、[x]补有不同的表示。•如果真值x=0,则[x]补有唯一的编码,[x]原和[x]反都有两个不同的编码。•定点小数中,原码和反码所能表示数的范围为-1x1,补码所能表示的数的范围为-1≤x1。•用[x]原、[x]反、[x]补表示的机器数,最高一位表示符号位,正数用“0”表示,负数用“1”表示。2020/6/14汇编语言程序设计教程30定点数与浮点数•定点数:是指小数点在数中的位置是固定不变的,以定点法表示的实数叫做定点数。•通常定点数的表示有两种形式:一种是定点整数,小数点在数的最右方,即为纯整数;另一种是定点小数,小数点在符号位之后,即为纯小数。2020/6/14汇编语言程序设计教程31浮点数•浮点数是指计算机中数的小数点位置不是固定的,而是“浮动”的。•任意一个二进制数N总可以写成

1 / 480
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功