汇编语言程序设计答案.doc
《汇编语言程序设计答案.doc》由会员分享,可在线阅读,更多相关《汇编语言程序设计答案.doc(170页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流汇编语言程序设计答案.精品文档.汇编语言程序设计教案附:习题参考答案IBM-PC汇编语言程序设计 (第2版)沈美明、温冬婵 编著教案编写时间:2007年8月18日前 言1. 汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。2. 汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。3. 本教材共有十一章,其内容安排如下:(1).
2、第一、二章为汇编语言所用的基础知识。(2). 第三章详细介绍80x86系列CPU的指令系统和寻址方式。(3). 第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。(4). 第五、六章说明循环、分支、子程序结构和程序设计的基本方法。(5). 第七章说明宏汇编、重复汇编及条件汇编的设计方法。(6). 第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。(7). 第九章说明BIOS和DOS系统功能调用的使用方法。(8). 第十十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。附:教学参考书1. 沈美明、温冬婵编著,IBMP
3、C汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2. 沈美明、温冬婵编著,IBMPC汇编语言程序设计,清华大学出版社,1991年3. 沈美明、温冬婵编著,IBMPC汇编语言程序设计例题习题集,清华大学出版社,1991年6月4. 沈美明、温冬婵、张赤红编著,IBMPC汇编语言程序设计实验教程,清华大学出版社,1992年5. 周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916. 郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957. 王士元、吴芝芳,IBM PC/XT长城0520 接口技术及其应用,南开大学出
4、版社,19908. 杨素行,微型计算机系统原理及应用,清华大学出版社,19959. 戴梅萼、史嘉权,微型计算机技术及应用从16位到32位(第二版),清华大学出版社,199610. 张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111. 孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312. 吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章 基础知识11.1 进位计数制与不同基数的数之间的转换11.2 二进制数和十六进制数的运算21.3 计算机中数和字符的表示31.4 几种基本的逻辑运算
5、3第 2 章 80X86计算机组织42.1 80x86微处理器42.2 基于微处理器的计算机系统构成42.3 中央处理机52.4 存储器62.5 外部设备7第 3 章 80X86的指令系统和寻址方式83.1 80x86的寻址方式83.2 程序占有的空间和执行时间103.3 80x86的指令系统10第 4 章 汇编语言程序格式264.1 汇编程序功能264.2 伪操作264.3 汇编语言程序格式304.4 汇编语言程序的上机过程33第 5 章 循环与分支程序设计355.1 循环程序设计355.2 分支程序设计365.3 如何在实模式下发挥80386及其后继机型的优势36第 6 章 子程序结构37
6、6.1 子程序的设计方法376.2 子程序的嵌套386.3 子程序举例38第 7 章 高级汇编语言技术397.1 宏 汇 编397.2 重 复 汇 编407.3 条 件 汇 编41第 8 章 输入/输出程序设计428.1 I/O设备的数据传送方式428.2 程序直接控制I/O方式438.3 中断传送方式43第 9 章 BIOS和DOS中断469.1 键盘I/O469.2 显示器I/O489.3 打印机I/O499.4 串行通信口I/O50第 10 章 图形与发声系统的程序设计5110.1 显示方式5110.2 视频显示存储器5110.3 EGA/VGA图形程序设计5210.4 通用发声程序53
7、10.5 乐曲程序54第 11 章 磁盘文件存取技术5511.1 磁盘的记录方式5511.2 文件代号式磁盘存取5611.3 字符设备的文件代号式I/O5711.4 BIOS磁盘存取功能58附录:IBMPC汇编语言程序设计习题参考答案59第 一 章.习 题59第 二 章.习 题60第 三 章.习 题61第 四 章.习 题74第 五 章.习 题79第 六 章.习 题97第 七 章.习 题110第 八 章.习 题117第 九 章.习 题122第 十 章.习 题125第 十一 章.习 题136第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、
8、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。【重点难点】二进制数及其与其它数制的转换、补码及其运算。【课 时 数】3学时。1.1 进位计数制与不同基数的数之间的转换1.1.1 二进制数1. 十进制数:(Decimal)(数后面加D或省略表示的是十进制数)(1). 十进制数表示为:anan -1a0.a -1a -2a -m 其含义如下:1). 基数为102). 10个数码0 、1、2、3、4、5、6、7、8、93). 逢10进1(2). 权:相应于式中每位数字的10 k称为该位数的权。(3). 数的值:每位数字乘以其权所得到的乘积之和即为该数的值。即如上述
9、多项式展开后所得到的和。2. r进制数:(1). r进制数表示为:anan -1a0.a -1a -2a -m 其含义如下:1). 基数为r2). r个数码0 、1、2、 r-13). 逢r进1(2). 权:相应于式中每位数字的r k称为该位数的权。(3). 数的值:每位数字乘以其权所得到的乘积之和即为该数的值。即如上述多项式展开后所得到的和。3. 二进制数:(数后面加B表示二进制数)(1). 二进制数表示为:anan -1a0.a -1a -2a -m 其含义如下:1). 基数为22). 2个数码0 和13). 逢2进1(2). 权:相应于式中每位数字的2 k称为该位数的权。(3). 数的值
10、:每位数字乘以其权所得到的乘积之和即为该数的值。即如上述多项式展开后所得到的和。4. 十六进制数:(Hexadecimal)(数后面加H表示十六进制数)(1). 十六进制数表示为:anan -1a0.a -1a -2a -m 其含义如下:1). 基数为162). 16个数码0 、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F(或a f)3). 逢16进1(2). 权:相应于式中每位数字的16 k称为该位数的权。(3). 数的值:每位数字乘以其权所得到的乘积之和即为该数的值。即如上述多项式展开后所得到的和。1.1.2 二进制数和十进制数之间的转换1. 二进制数转换为十进制数:根据上面
11、的二进制数多项式按权展开求和即为十进制数。2. 十进制数转换为二进制数(1). 降幂法:首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最相近的二进制权值,如够减则减去并在相应位记以1;如不够减则在相应位记以0并跳过此位;如此不断反复,直到该数为0为止。(2). 除法1). 十进制整数转换:采用“除2 (基)取余”法进行转换,即把十进制整数除以2,取出余数1或0作为相应二进制数的最低位,把得到的商再除以2,再取出余数1或0作为相应二进制数的次低位。由此类推,继续上述过程直至商为0止,最后一次的余数为二进制数的最高位,依次所得到的余数序列就是转换成的
12、二进制数。2). 十进制小数转换:采用“乘2 (基)取整”法进行转换,即先将十进制小数乘以2,取其整数1或0作为相应二进制小数的最高位,然后将乘积的小数部分再乘以2,并再取其整数作为次高位。依次重复上述过程,直到小数部分为0或达到要求的精度为止。1.1.3 十六进制数及其与二进制、十进制数之间的转换1. 十六进制数的表示:(参见1.1.1节的第4步)以下是几个概念:(1). 位(bit)。bit(Binary digit的缩写)是量度信息的最小单位,1比特为二进制的一位包含的信息量。(2). 字节(Byte)。作为一个单位来处理的一串二进制数位,通常由8位二进制数位组成一个字节。一个字节可以代
13、表一个数字、一个字母或一个特殊符号。也是计算机存储容量的单位。(3). 字(Word)。在计算机中,一般称两个字节为一个字。(4). 字长(Word Length)。计算机的每个字所包含的位数称为字长。字长是计算机的一项重要指标。一般都选为字节的整数倍。2. 十六进制数与二进制数之间的转换(1). 二进制数转换为十六进制数:从二进制数的小数点位置开始,整数部分向左,小数部分向右,每四位二进制数字为一组用一位十六进制数字表示,不足四位的用0补足,就得到一个相应的十六进制数。(2). 十六进制数转换为二进制数:每一位十六进制数用四位二进制数表示,就形成相应的二进制数了。3. 十六进制数与十进制数之
14、间的转换(1). 十六进制数转换为十进制数:根据上面的十六进制数多项式按权展开求和即为十进制数。(2). 十进制数转换为十六进制数:可类似于十进制数转换为二进制数的降幂法和除法来转换为十六进制数。也可先将十进制数转换为二进制数,再将二进制数转换为十六进制数。1). 降幂法:首先写出要转换的十进制数,其次写出所有小于此数的各位十六进制权值,然后用要转换的十进制数除以与它最相近的十六进制权值,并在相应位记以十六进制的商;再将余数除以下一位权值,并记下商和余数;如此不断反复,直到该数为0为止。2). 除法:同前,整数部分采用除基(16)取余法,小数部分采用乘基(16)取整法直到所需的精度为止来进行转
15、换。1.2 二进制数和十六进制数的运算1.2.1 二进制数的运算1. 加法规则:0+0=0,0+1=1,1+0=1,1+1=0 (进位1)2. 乘法规则:00=0,01=0,10=0,11=11.2.2 十六进制数的运算:按照逢16进1的原则进行计算。1.3 计算机中数和字符的表示1.3.1 数的补码表示1. 机器数:在机器中以数值化表示的连同其符号在内的一个数称为机器数。一般用最高有效位来表示符号,正数用0表示,负数用1表示。2. 补码表示法3. 补码求法(1). 正数的补码就是其本身;(2). 负数的补码 = 其正数的补码按位求反+1。4. 符号扩展(如将8位有符号数扩展成为16位有符号数
16、)(1). 正数的符号扩展是在前面补0;(2). 负数的符号扩展是在前面补1。5. n位补码所表示数的范围:-2 n-1N2 n-1-16. 双字长数或双精度数:在机器里,为了扩大表数范围,可以用两个机器字(高位字和低位字)来表示一个机器数,这种数称为双字长数或双精度数。在80386及其后则有4字(64位)。1.3.2 补码的加法和减法1. 求补运算:对一个二进制数按位求反后在末尾加1的运算称为求补运算。求补求补X补 -X补 X补2. 补码的加法运算规则X+Y补 = X补+ Y补3. 补码的减法运算规则X-Y补 = X补+ -Y补1.3.3 无符号整数:把最高有效位也作为数值处理的数称为无符号
17、整数。1.3.4 字符表示法(ASCII码):80x86机采用目前最常用的美国信息交换标准代码ASCII码表示。1.3.5 BCD码:4位二进制数编码的十进制数称为BCD码(又叫8421码)。BCD码是无符号整数1. 压缩BCD码:用4位二进制数表示一个十进制数位。2. 非压缩BCD码:用8位二进制数表示一个十进制数位。1.4 几种基本的逻辑运算1.4.1 “与”运算(AND)Y = AB = A B = A AND B1.4.2 “或”运算(OR)Y = A + B = A B = A OR B1.4.3 “非”运算(NOT)Y = 1.4.4 “异或”运算(XOR)Y = B = A XO
18、R B所有的逻辑运算都是按位操作的。第 2 章 80x86计算机组织【教学目的】本章内容也是本课程的基础,通过本章学习,使学生明确汇编语言程序设计所要掌握的存储器的组织方式、CPU寄存器的结构(编程结构)。【重点难点】CPU寄存器的结构(编程结构)、存储器的组织方式。【课 时 数】5学时。2.1 80x86微处理器1. 80x86是美国Intel公司生产的微处理器系列。2. 计算机主要由运算器、控制器、存储器和输入输出设备构成。3. 中央处理器(central processing unit, CPU):把运算器和控制器集成在一个芯片上,构成中央处理机。80x86就是这样一组微处理器系列。4.
19、 很多计算机厂商把微处理器芯片作为中央处理机,再配上存储器、输入输出设备和系统软件等构成微计算机系统。80x86微处理器系列的主要技术数据名称:(1). 集成度:晶体管数是指芯片中所包含的晶体管数目,它说明器件的集成度;(2). 主频是指芯片所用的主时钟频率,它直接影响计算机的运行速度。(3). 数据总线负责计算机中数据在各组成部分之间的传送。1). 数据总线宽度是指在芯片内部数据传送的宽度。2). 外部数据总线宽度则是指芯片内和芯片外交换数据的宽度。(4). 地址总线宽度是指专用于传送地址的总线宽度,根据这一数值(如为n)可确定处理机可以访问的存储器的最大范围(寻址空间=2n)。1). 字节
20、(byte):在计算机里,8个二进制位组成一个字节,一般存储器以字节为存储信息的基本单位,用符号B来表示。在存储器里一般用KB、MB、GB为存储容量的单位。2). 1KB=1024B=210B,1MB=1024KB=220B,1GB=1024MB=230B5. 在计算机里,采用层次结构的存储器组织是解决存储器容量、速度、价格三者矛盾的最有效方法。(1). 中间层次是主存储器,又称为内存。(2). 比中间层次速度更高、但容量较小的一层称为高速缓冲存储器(cache)。(3). 比中间层次速度慢、但容量很大的一层称为外存储器。如磁带、磁盘、光盘等。6. 提高计算机的工作速度可以说是微处理器芯片发展
21、的核心问题。从80486起,把协处理器集成到芯片中的目的也是为了提高浮点处理速度。字长的增加有利于提高计算机解题的精度。7. 从80286开始,在机器的工作方式上,除8086提供的实模式外,还增加了保护模式的工作方式。在80386中还增加了一种虚拟8086的工作模式。2.2 基于微处理器的计算机系统构成2.2.1 硬件:是指能看得见、摸得着的物理部件。1. 组成计算机的三要素:CPU、存储器(memory)和输入/输出(I/O)子系统。用系统总线连接。(1). 存储器(内存):计算机的记忆部件。(2). 中央处理器CPU:包括运算器和控制器两部分。1). 运算器执行所有的算术和逻辑运算指令;2
22、). 控制器则负责全机的控制工作。(3). I/O子系统:包括I/O设备及大容量存储器两类外部设备。1). I/O设备是指负责与计算机的外部世界通信用的输入、输出设备;2). 大容量存储器是指可存储大量信息的外部存储器。2. 系统总线:把CPU、存储器和I/O设备连接起来,用来传送各部件之间的信息。系统总线的动作由总线控制逻辑负责指挥。(1). 数据总线:传送信息;(2). 地址总线:指出信息的来源和目的地;(3). 控制总线:规定总线的动作。2.2.2 软件:为运行、管理和维护计算机而编制的各种程序的总和。分为系统软件和用户软件两大类。1. 系统软件:由计算机生产厂家提供给用户的一组程序。其
23、核心是操作系统。它包括:(1). 操作系统的主要部分是常驻监督程序(monitor)。(2). I/O驱动程序:对I/O设备进行控制和管理。(3). 文件管理程序:处理存储在外存储器中的大量信息。(4). 文本编辑程序:建立、输入或修改文本,并存入内存储器或大容量存储器中(如EDIT等)。(5). 翻译程序(translator)1). 汇编程序:把由用户编制的汇编语言源程序翻译成机器语言目标程序。a. 汇编语言:一种与机器语言几乎一 一对应的符号语言,但在书写时使用由字符串组成的助记符。b. 机器语言:由二进制代码组成的语言。c. 指令:计算机能识别并能直接加以执行的二进制的语句。2). 编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 答案
限制150内