80X86汇编语言程序设计教程+课后习题答案(清华大学版)

合集下载

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)《计算机操作系统原理》《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。

《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。

我首选的是清华版的(朱战立,刘天时)《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。

我的建议是看《实用软件工程》(黄色,清华)《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。

而且前面的那本建议:你还可以在CSDN上阅读到许多书评。

这些书评能够帮助你决定读什么样的书关于编程的网站计算机编程郭新明-FTP服务器体验式学习课程(张孝祥监制)/so/so138.aspx?id=3997快速开发新闻系统在线播放/so/so138.aspx?id=4708数字电路基础[宁波电大]/so/so138.aspx?id=774计算机组成与汇编语言程序设计(赵丽梅)宁波电大/so/so138.aspx?id=1242操作系统(陈访荣)宁波电大(在线播放)/so/so138.aspx?id=4708计算机网络(马敏飞)宁波电大/so/so138.aspx?id=1243 2.0快速入门(12)- 2.0网站快速导航/so/so138.aspx?id=2501Internet和Intranet应用(薛昭旺)宁波电大/so/so138.aspx?id=12452004年电脑硬件安装调试维修视频教学讲授/so/so138.aspx?id=4825 高级排错技巧/so/so138.aspx?id=768SQL Server 2000管理专家系列课程/so/so138.aspx?id=4832开心三人行系列(2):使用Atlas 构建AJAX应用/so/so138.aspx?id=2564Visual Basic 2005开发技巧系列课程(4):在Visual Basic 2005中使用.NET Framework 2.0新增功能/so/so138.aspx?id=2526SQL Server 2005 系列课程-使用ADO 开发SQL Server 2005 OLAP应用/so/so138.aspx?id=2535Visual Basic 2005开发技巧系列课程(1):使用My命名空间简化.NET Framework程序设计/so/so138.aspx?id=2523VB编程与应用(黄文)宁波电大/so/so138.aspx?id=1245Internet和Intranet应用(薛昭旺)宁波电大/so/so138.aspx?id=1246PHP视频教程从入门到精通(php mysql)/so/so138.aspx?id=294增强windows安全全集^/so/so138.aspx?id=3621SQL Server 2005 系列课程-SQL Server 2005与XML的紧密整合(下)/so/so138.aspx?id=2531SQL Server 2005 系列课程-SQL Server 2005与XML的紧密整合(上)/so/so138.aspx?id=2528Launch 2005系列课程(11):AMO与XML/A/so/so138.aspx?id=2604自己动手建设个人网站/so/so138.aspx?id=1236Dreamweaver网站设计系列多媒体教程/so/so138.aspx?id=2075自己动手制作动态网站/so/so138.aspx?id=1125 2.0快速入门(12)- 2.0网站快速导航/so/so138.aspx?id=2501自己动手建设企业网站/so/so138.aspx?id=1235黑客视频教程-用旁注法入侵网站/so/so138.aspx?id=1958电子商务网站系统分析与设计(北京交通大学)/so/so138.aspx?id=1594电子商务网站案例分析(北京交通大学)/so/so138.aspx?id=820自己动手建立个人网站/so/so138.aspx?id=1196http://218.22.21.254:8001/计算机专业/吉林大学CSF计算机课件/吉林大学C语言/第01讲.csf中间自己加http://218.22.21.254:8001/计算机专业/吉林大学CSF计算机课件/吉林大学C语言/第51讲.csf这是VB的(石油大学)/syu200501/01.csf中间自己加/syu200501/30.csf回答者:hywen008 - 高级经理六级7-30 10:15 推荐些不错的编程网站给你,编程论坛非常不错讨论区/bbs注册稍严格,但是论坛回复率很高。

80×86汇编语言程序设计课后习题参考答案

80×86汇编语言程序设计课后习题参考答案

/view/555758b91a37f111f1855b3e.html附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案教案章节:一、汇编语言简介1. 汇编语言的概念2. 汇编语言的特点3. 汇编语言的应用领域二、汇编语言的基本语法1. 数据类型及表示2. 指令格式及分类3. 寄存器使用规则三、汇编语言程序设计步骤1. 分析需求,确定程序功能2. 选择合适的汇编语言及开发环境3. 编写汇编代码,调试程序4. 优化程序性能四、常用汇编指令及功能1. 数据传输指令2. 算术运算指令3. 逻辑运算指令4. 控制流指令5. 字符串操作指令6. 中断指令五、汇编语言与C语言的接口编程1. extern声明汇编函数2. 调用汇编函数的方法3. 汇编函数与C函数的数据交换4. 实例分析:汇编语言实现字符串排序习题答案:一、汇编语言简介1. 汇编语言是一种低级编程语言,用于编写计算机程序。

(正确)2. 汇编语言可以直接操作计算机硬件资源。

(正确)3. 汇编语言程序可读性差,不易维护。

(正确)二、汇编语言的基本语法1. 数据类型及表示a. 字节:8位(正确)b. 字:16位(正确)c. 双字:32位(正确)d. 四字:64位(正确)2. 指令格式及分类a. 操作码(正确)b. 操作数(正确)c. 寄存器(正确)d. 标志位(正确)3. 寄存器使用规则a. 通用寄存器:AX, BX, CX, DX(正确)b. 段寄存器:CS, DS, ES, SS(正确)c. 指令指针:IP(正确)d. 状态寄存器:FLAGS(正确)三、汇编语言程序设计步骤1. 分析需求,确定程序功能(正确)2. 选择合适的汇编语言及开发环境(正确)3. 编写汇编代码,调试程序(正确)4. 优化程序性能(正确)四、常用汇编指令及功能1. 数据传输指令a. MOV:数据传送(正确)b. PUSH:压栈(正确)c. POP:出栈(正确)d. XCHG:交换数据(正确)2. 算术运算指令a. ADD:加法(正确)b. SUB:减法(正确)c. MUL:无符号乘法(正确)d. IMUL:有符号乘法(正确)3. 逻辑运算指令a. AND:逻辑与(正确)b. OR:逻辑或(正确)c. XOR:逻辑异或(正确)d. NOT:逻辑非(正确)4. 控制流指令a. JMP:无条件跳转(正确)b. JE:相等跳转(正确)c. JNE:不相等跳转(正确)5. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)6. 中断指令a. INT:软件中断(正确)b. INTO:中断向量表(正确)五、汇编语言与C语言的接口编程1. extern声明汇编函数(正确)2. 调用汇编函数的方法(正确)3. 汇编函数与C函数的数据交换(正确)4. 实例分析:汇编语言实现字符串排序(正确)汇编语言程序设计教案及习题答案教案章节:六、汇编语言的输入与输出1. 输入输出指令2. 字符串操作指令3. 实例分析:编写一个简单的输入输出程序七、汇编语言的杂项指令1. 杂项指令的概念2. 常用杂项指令及其功能3. 实例分析:杂项指令的应用八、汇编语言的子程序调用1. 子程序调用的概念2. 子程序的定义与调用3. 子程序的返回4. 实例分析:子程序在汇编语言中的应用九、汇编语言的程序举例1. 实例一:计算两个数的和2. 实例二:字符串的复制3. 实例三:数制的转换4. 实例四:文件的读写十、汇编语言程序的调试与优化1. 调试工具的使用2. 调试方法与技巧3. 程序优化的概念4. 程序优化的方法与技巧习题答案:六、汇编语言的输入与输出1. 输入输出指令a. IN:输入指令(正确)b. OUT:输出指令(正确)c. INPUT:输入函数(正确)d. PRINT:输出函数(正确)2. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)3. 实例分析:编写一个简单的输入输出程序(正确)七、汇编语言的杂项指令1. 杂项指令的概念(正确)2. 常用杂项指令及其功能a. NOP:无操作(正确)b. HLT:停止CPU运行(正确)c. CMC:翻转标志位(正确)d. ARPL:寄存器之间交换(正确)3. 实例分析:杂项指令的应用(正确)八、汇编语言的子程序调用1. 子程序调用的概念(正确)2. 子程序的定义与调用a. 定义子程序(正确)b. 调用子程序(正确)3. 子程序的返回(正确)4. 实例分析:子程序在汇编语言中的应用(正确)九、汇编语言的程序举例1. 实例一:计算两个数的和(正确)2. 实例二:字符串的复制(正确)3. 实例三:数制的转换(正确)4. 实例四:文件的读写(正确)十、汇编语言程序的调试与优化1. 调试工具的使用(正确)2. 调试方法与技巧(正确)3. 程序优化的概念(正确)4. 程序优化的方法与技巧(正确)汇编语言程序设计教案及习题答案教案章节:十一、汇编语言与操作系统1. 操作系统的概念2. 汇编语言在操作系统中的应用3. 实例分析:汇编语言编写简单的操作系统十二、汇编语言与设备驱动程序1. 设备驱动程序的概念2. 汇编语言在设备驱动程序开发中的应用3. 实例分析:汇编语言编写简单的设备驱动程序十三、汇编语言与嵌入式系统1. 嵌入式系统的概念2. 汇编语言在嵌入式系统中的应用3. 实例分析:汇编语言编写简单的嵌入式系统十四、汇编语言与汇编器的使用1. 汇编器的概念2. 汇编器的使用方法3. 实例分析:使用汇编器编写和调试汇编程序十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势2. 汇编语言在未来的应用领域3. 汇编语言学习的方法与建议习题答案:十一、汇编语言与操作系统1. 操作系统的概念(正确)2. 汇编语言在操作系统中的应用(正确)3. 实例分析:汇编语言编写简单的操作系统(正确)十二、汇编语言与设备驱动程序1. 设备驱动程序的概念(正确)2. 汇编语言在设备驱动程序开发中的应用(正确)3. 实例分析:汇编语言编写简单的设备驱动程序(正确)十三、汇编语言与嵌入式系统1. 嵌入式系统的概念(正确)2. 汇编语言在嵌入式系统中的应用(正确)3. 实例分析:汇编语言编写简单的嵌入式系统(正确)十四、汇编语言与汇编器的使用1. 汇编器的概念(正确)2. 汇编器的使用方法(正确)3. 实例分析:使用汇编器编写和调试汇编程序(正确)十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势(正确)2. 汇编语言在未来的应用领域(正确)3. 汇编语言学习的方法与建议(正确)重点和难点解析本文主要介绍了汇编语言程序设计的基础知识和应用领域,通过详细的章节安排,从汇编语言的基本概念、语法规则、程序设计步骤、常用指令及其功能、输入输出操作、杂项指令、子程序调用、程序举例、调试与优化等方面进行了深入讲解。

《80x86汇编语言程序设计》教案及答案

《80x86汇编语言程序设计》教案及答案

《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:20XX年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。

(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。

(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7).第九章说明BIOS和DOS系统功能调用的使用方法。

(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,20XX年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识41.1进位计数制与不同基数的数之间的转换41.2二进制数和十六进制数的运算61.3计算机中数和字符的表示61.4几种基本的逻辑运算7第 2 章80X86计算机组织72.180X86微处理器72.2基于微处理器的计算机系统构成82.3中央处理机82.4存储器102.5外部设备11第 3 章80X86的指令系统和寻址方式113.180X86的寻址方式113.2程序占有的空间和执行时间133.380X86的指令系统13第 4 章汇编语言程序格式294.1汇编程序功能294.2伪操作304.3汇编语言程序格式334.4汇编语言程序的上机过程36第 5 章循环与分支程序设计385.1循环程序设计385.2分支程序设计395.3如何在实模式下发挥80386及其后继机型的优势39第 6 章子程序结构406.1子程序的设计方法406.2子程序的嵌套426.3子程序举例42第7 章高级汇编语言技术427.1宏汇编427.2重复汇编447.3条件汇编44第8 章输入/输出程序设计458.1I/O设备的数据传送方式458.2程序直接控制I/O方式468.3中断传送方式46第9 章BIOS和DOS中断499.1键盘I/O499.2显示器I/O519.3打印机I/O529.4串行通信口I/O53第10 章图形与发声系统的程序设计5410.1显示方式5410.2视频显示存储器5410.3 EGA/VGA 图形程序设计5510.4 通用发声程序5610.5 乐曲程序57第 11 章 磁盘文件存取技术5711.1 磁盘的记录方式5811.2 文件代号式磁盘存取5911.3 字符设备的文件代号式I/O6011.4 BIOS 磁盘存取功能61附录:《IBM —PC 汇编语言程序设计》习题参考答案61第 一 章.习题61第 二 章.习题62第 三 章.习题63第 四 章.习题77第 五 章.习题82第 六 章.习题100第 七 章.习题113第 八 章.习题119第 九 章.习题125第 十 章.习题128第 十一 章.习题138第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。

汇编语言程序设计课后答案

汇编语言程序设计课后答案

汇编语言程序设计课后答案天龙百度@n维空间提供第二章(更新完毕~)1。

在80x86微机的输入输出指令中,i/o端口号通常就是由dx寄存器提供更多的,但是有时也可以在指令中轻易选定00---ffh的端口号。

何况,可以轻易由指令选定的i/0端口数~解答:有256个~~书上有原话~~可以找到~~2。

存有两个16十一位字节1ee5h和2a3ch分别存放在80x86微机的存储器的000b0h 和000b3h单元中,Poissons图则表示出来它们在存储器里的放置情况。

解答:如下图.第一个络子为000b0h字单元,注意,是字单元~~第五个格子为000b3h字单元~e51e3c2a唉,羞愧,学计算机的,竟然连个表格也搞不好!3.图在书上,我就不图画了,太麻烦~~轻易请问吧~解答:30022h字节单元内容:abh30024h字节单元内容:efh30021h字单元内容:ab34h30022h字单元内容:cdabh4.对了,看这个的人.,肯定都有那本书,所以,以后我就不抄题目哈~~~答疑:这三个物理地址都就是3017ah,刚好说明了相同的段地址和偏转地址对应同一物理地址~~5.解答:cs+ip第一个字的物理地址为:0aaa40h6.答疑:图,真的不晓得怎么画,等待我想要办法~~条件标志of,sf,zf,cf,的值依次为:0,0,0,07。

下列操作可使用那些寄存器?(1)乘法和加法ax,bx,cx,dx,当然,除了这几个通用寄存器的多寡位了,如ah,al,.等~~(2)循环计数cx(3)乘法和除法dx,ax,ah,al(4)保存段地址cs,ds,es,ss(5)表示运算结果为oflags(6)将要执行的指令地址ip(7)将要从堆栈抽出数据的地址bp,sp,ss天龙百度@n维空间提供8。

可以用以命令存储器地址的寄存器存有:bx,sp,bp,di,cs,ds,si,es,ss,ip9。

一一对应;5--a4--b2--c3--d12--e9--f11--g10--h13--i8--j7--k6---l1--m15--n14--o第三章1。

80x86微机原理参考答案

80x86微机原理参考答案

80x86微机原理参考答案第一章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。

1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。

以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。

微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。

汇编语言与接口技术习题答案

汇编语言与接口技术习题答案

第3章 80X86的指令系统和寻址方式本章主要讲授:本章主要讲授:80X8680X86的数据类型、寻址方式、指令格式、指令系统(数据传送指令、算术运算指令、逻辑运算指令、串操作数指令、控制转移指令、处理机指令和高级语言指令)和80486指令等。

通过本章的学习,注意下面几方面的内容:一、掌握80X86的数据类型;二、掌握80X86的寻址方式;三、掌握80X86的指令系统及它们的一些使用实例。

四、了解保护属性检查指令、高级语言指令以及Cache 管理指令等。

习题精解1.已知DS DS==2000H 2000H,,BX BX==0100H 0100H,,SI SI==0002H 0002H,存储单元,存储单元,存储单元[20100H][20100H][20100H]~~[20103H][20103H]依次存放依次存放12 34 56 78H 56 78H,,[21200H][21200H]~~[21203H][21203H]依次存放依次存放2A 4C B7 65H 2A 4C B7 65H,说明下列每条指令执行后,说明下列每条指令执行后AX 寄存器的内容。

(1)MOV AX AX,,1200H (2)MOV AX AX,,BX (3)MOV AX AX,,[1200H] (4)MOV AX AX,,[BX] (5)MOV AX AX,,[BX+1100H] (6)MOV AX AX,,[BX + SI] (7)MOV AX AX,,[BX][SI+1100H]参考答案:根据物理地址形成公式:物理地址=段基址×根据物理地址形成公式:物理地址=段基址×161616+有效地址,得:+有效地址,得:(1)1200H(2)0100H(3)4C2AH(4)3412H(5)4C2AH(6)7856H(7) 65B7H分析:本题主要考查点是数据寻址方式,寻址方式就是指令中用于说明操作数所在地址的方法,或者是寻找操作数有效地址的方法。

汇编语言程序设计课后习题答案

汇编语言程序设计课后习题答案
91,89,78,65,75,69,92,85,86,82 count equ $-buff max db ? min db ?
DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS MOV DS,AX mov cx,count dec cx
5.1 L3 5.2 DATAS SEGMENT
x db ? Y db ? DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS MOV DS,AX cmp x,0 jg y01 jl y02 mov y,0 jmp y03
MOV AH,4CH INT 21H CODES ENDS END START
1. REP
REP REPNZ 2.
DF
STD DI
CLD DI
DF 1 DF 0
REPZ REPNZ
MOVS STOS CMPS SCAS
PSW
1
SI
0
SI
MOV DS,AX LEA BX, BUFF MOV CX,10
DEC CX MOV AL,[BX]
LOP: INC BX CMP AL,[BX] JNB NEXT MOV AL,[BX]
NEXT: DEC CX JNZ LOP MOV AH,4CH INT 21H
CODE ENDS END START
3.1 NEXT, 2_NEXT , NEXT2 , NexT N•EXT , NEXT-1 , NEXT, N@EXT NEXT$
2_NEXT
N•EXT
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章答案Tarzan 版题2.1 8086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪些寄存器可作为存储器寻址方式的指针寄存器?答:8086/8088通用寄存器的通用性表现在:这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果;8个通用寄存器的专门用途如下:AX 字乘法,字除法,字I/OBX 存储器指针CX 串操作或循环控制中的计数器DX 字乘法,字除法,间接I/OSI 存储器指针(串操作中的源指针)DI 存储器指针(串操作中的目的指针)BP 存储器指针(存取堆栈的指针)SP 堆栈指针其中BX,SI,DI,BP可作为存储器寻址方式的指针寄存器题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器?答:从程序员的角度看,8086/8088有14个可访问的16位寄存器;有8个可访问的8位寄存器;题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器AX的内容:MOV AX,1234HMOV AL,98HMOV AH,76HADD AL,81HSUB AL,35HADD AL,AHADC AH,ALADD AX,0D2HSUB AX,0FFH答: MOV AX,1234H AX=1234HMOV AL,98H AX=1298HMOV AH,76H AX=7698HADD AL,81H AX=7619HSUB AL,35H AX=76E4HADD AL,AH AX=765AHADC AH,AL AX=D15AHADD AX,0D2H AX=D22CHSUB AX,0FFH AX=D12DH题2.4 8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态?答: 8086/8088标志寄存器中定义了9个标志,如下:CF: Carry FlagZF: Zero FlagSF: Sign FlagOF: Overflow FlagPF: Parity FlagAF: Auxiliary Carry FlagDF: Direction FlagIF: Interrupt-enable FlagTF: Trap Flag这些标志可分为两类,分别为:1、运算结果标志;2、状态控制标志;采用指令SAHF可把AH中的指定位送至标志寄存器低8位SF、ZF、AF、PF、CF;采用CLC可清除CF,置CF到0采用STC可置CF到1采用CLD可置DF到0采用sTD可置DF到1采用CLI可置IF到0采用STI可置IF到1另外,在某些指令执行过程中会改变部分标志的状态;题2.5 请说说标志CF和标志OF的差异。

答:如果把指令中处理的数据按照无符号数看待,则处理结果达到进位是,置CF为1;如果把该处理中的数据按照有符号数看待,则处理结果超过有符号数表达范围的,置OF为1;两个标志同步进行,CPU并不知道该数的类型;题2.6 8086/8088如何寻址1M字节的存储器物理地址空间?在划分段时必须满足的两个条件是什么?最多可把1M字节空间划分成几个段?最少可把1M字节地址空间划分成几个段?答: 8086/8088通过对存储器分段和使用段寄存器的方式寻址1M字节的存储器物理地址空间;在划分段时必须满足的两个条件是:1、逻辑段的开始地址必须是16的倍数;2、逻辑段的嘴道长度是64K;1M的字节空间划分为64K个逻辑段;最少可把1M字节地址划分成16个逻辑段;题2.7 在8086/8088上运行的程序某一时刻最多可访问几个段?程序最多可具有多少个段?程序至少几个段?答:在8086/8088上运行的程序某一时刻最多可访问4个当前段:代码段,数据段,堆栈段和附加段;程序最多可具有4种类型的段,最少要有一个代码段;题2.8 存储单元的逻辑地址如何表示?存储单元的20位物理地址如何构成?答:存储单元的逻辑地址由段值和偏移两部分组成:段值:偏移;存储单元的20位物理地址可以表示为:物理地址=段值×16+偏移;题2.9 当段重叠时,一个存储单元的地址可表示成多个逻辑地址。

请问物理地址12345H可表示多少个不同的逻辑地址?偏移最大的逻辑地址是什么?偏移最小的逻辑地址是什么?答: 12345H可表示1000H(4096)个不同的逻辑地址,偏移最大的逻辑地址是235:0FFF5H 偏移最小的逻辑地址是1234:0005H题2.10 为什么称CS为代码段寄存器?为什么称SS为堆栈寄存器?答:因为在取指令的时候,规定的段寄存器就是CS,所以CS为代码段寄存器;而堆栈操作时规定的寄存器是SS,所以SS为堆栈寄存器;题2.11 请举例说明何为段前缀超越。

什么场合下要使用段前缀超越?答:在存取一般存储器操作数时,段寄存器可以不是DS;当偏移设计BP寄存器时,段寄存器也可以不必是SS;如Mov AX,[si] 默认段地址在DS中,也可以改变:Mov AX, ES:[si]当数据并不在默认的DS指定段时,可以采用段前缀超越;题2.12 8086/8088的基本寻址方式可分为哪三类?他们说明了什么?答: 8086/8088的基本寻址方式可分为以下三类:1、存储器寻址;2、立即寻址;3、寄存器寻址;他们说明了cpu有三类合计七种方式进行基本寻址;题2.13 存储器寻址方式分为哪几种?何为存储器的有效地址?答:存储器寻址方式分为以下几种:1、立即寻址;2、直接寻址;3、寄存器寻址;4、寄存器间接寻址;5、寄存器相对寻址;6、基址加变址寻址;7、相对基址加变址寻址;存储器的有效地址是一个16bit的无符号数;题2.14 什么场合下缺省的段寄存器是SS?为什么这样安排?答:当使用堆栈时,缺省的段寄存器是SS;因为SS定义为堆栈段寄存器,配合SP堆栈指针,用来指向堆栈的栈顶;题2.15 请说明如下指令中源操作数的寻址方式,并作相互比较:MOV BX,[1234H]MOV BX,1234HMOV DX,BXMOV DX,[BX]MOV DX,[BX+1234H]MOV DX,[BX+DI]MOV DX,[BX+DI+1234H]答: MOV BX,[1234H] ;直接寻址MOV BX,1234H :立即寻址MOV DX,BX :寄存器寻址MOV DX,[BX] :寄存器间接寻址MOV DX,[BX+1234H] :寄存器相对寻址MOV DX,[BX+DI] :基址加变址寻址MOV DX,[BX+DI+1234H] :相对基址加变址寻址题2.16 8086/8088提供了灵活多样的寻址方式,如何适当的选择寻址方式?答:每种寻址方式都有其特点,首先应该掌握不同寻址方式之间的区别,以及适用的范围,结合程序中的需要进行灵活选择。

题2.17 设想一下这些寻址方式如何支持高级语言的多种数据结构?答:自己设想!题2.18 为什么目标操作数不能采用立即寻址方式?答:立即寻址表示是一个操作数,并非一个存储空间,作为目标操作数是不合适的;题2.19 处理器的通用寄存器是否越多越好?通用寄存器不够用怎么办?答:处理器的通用寄存器并非越多越好,因为如果处理器的通用寄存器数量太多,势必造成处理器的成本增加,同时也增加了处理器设计的复杂度;如果通用寄存器不够用,应该采用内存中的存储单元代替,不过速度上要有所牺牲;题2.20 哪些存储器寻址方式可能导致有效地址超出64K的范围?8086/8088如何处理这种情况?答:寄存器相对寻址,基址加变址寻址,相对基址加变址寻址这三种寻址方式有可能导致有效地址超出64K的范围,8086/8088将取其64K的模进行访问;题2.21 什么情况下根据段值和偏移确定的存储单元地址会超出1M?8086/8088如何处理这种情况?答:当物理地址的计算超过FFFFFH时,存储单元地址会超出1M,8086/8088将取其1M的模覆盖存取;题2.22 8086/8088的指令集可分为哪6个子集?答: 8086/8088的指令集可分为以下6个子集:1、数据传输2、算术运算3、逻辑运算4、串操作5、程序控制6、处理器控制题2.23 8086/8088的指令集合中,最长的指令有几个字节?最短的指令有几个字节?答: 8086/8088的指令集合中,最长的指令4个字节,最短的指令2个字节;MOV AX,[BX+SI+1234H]题2.24 8086/8088的算术逻辑运算指令最多一次处理多少二进制位?当欲处理的数据长度超出该范围怎么办?答: 8086/8088的算术逻辑运算指令最多一次处理16bit的二进制位;如果处理的数据长度超出则分成若干部分进行逻辑运算,最后进行整合;题2.25 如何时序数据段和代码段相同?答:将数据段的内容写入代码段中,并将代码段的段值赋给DS即可;题2.26 通常情况下源操作数和目的操作数不能同时是存储器操作数。

请给出把存储器操作数甲送到存储器操作数乙的两种方法。

答:法一:MOV AX, [BX]MOV [SI],AX DS:[BX]=甲,DS:[SI]=乙法二:MOV AX,[BX]XCHG AX,[SI]法三:PUSH WORD PTR [BX]POP WORD PTR [SI]题2.27 请用一条指令实现把BX的内容加上123并把和送到寄存器AX。

答: LEA AX, [BX+123H]题2.28 堆栈有哪些用途?请举例说明。

答:堆栈的用途主要有:1、现场和返回地址的保护;MOV AX, OFFSET ADDRESSPUSH AXJMP XXX...RET2、寄存器内容的保护;PUSH AXPUSH BX...POP BXPOP AX3、传递参数;PUSH [BX]CALL XXX...XXX:POP AX...4、存储局部变量;PUSH DSPUSH CSPOP DS...POP DS题2.29 在本章介绍的8086/8088指令中,哪些指令把寄存器SP作为指针使用?8086/8088指令集中,哪些指令把寄存器SP作为指针使用?答:以下指令把寄存器SP作为指针使用:1、PUSH2、POP3、PUSHF4、POPF5、PUSHA6、POPA7、RET8、CALL9、RETF题2.30 请说说标志CF的用途。

请至少给出使标志CF清0的三种方法。

答: CF的用途主要有:1、配合条件转移语句进行条件转移;2、配合移位指令实现操作数之间的位转移;3、常作为子程序的出口参数;如DOS磁盘文件管理功能调用等;CF清0的方法:法一:CLC法二:ADD AX,0FFFFH法三:CMP AX,0题2.31 请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态。

相关文档
最新文档