新書推薦:
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:NT$
296.0
《
罗马政治观念中的自由
》
售價:NT$
230.0
《
中国王朝内争实录:宠位厮杀
》
售價:NT$
281.0
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:NT$
203.0
《
未来特工局
》
售價:NT$
254.0
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:NT$
250.0
《
英国简史(刘金源教授作品)
》
售價:NT$
449.0
《
便宜货:廉价商品与美国消费社会的形成
》
售價:NT$
352.0
|
編輯推薦: |
本书为普通高等教育十二五*规划教材,普通高等教育十一五*规划教材,是汇编语言与接口技术经典教材,内容全面,特色突出,被多所高校用作教材。本书是《汇编语言与接口技术(第4版)》的配套教材。本书分为两部分。*部分是知识精要,主要结合《汇编语言与接口技术(第4版)》的知识结构,对知识点进行精练和扩充。共分10章,每章中都系统总结了主教材的主要知识点,并给出主教材大部分课后习题的详细分析讲解和参考答案。第二部分是应用实践,主要是对理论知识实践应用,增进知识内化。包括汇编语言程序设计实验步骤、主要调试工具、汇编语言程序设计实验以及微机原理接口技术实验。其中每个实践项目严格按照教学进度,由易到难,并设计若干提高实验和综合实验以及创新性实验项目。同时本书的实验不拘泥于某个实验箱系统,尽量做到通用。本书可作为高等学校本科信息类相关专业学生和教师的参考书,也可以供广大工程技术人员参考。
|
內容簡介: |
本书是《汇编语言与接口技术(第4版)》知识点精讲、拓展及实践教材,全书分为两个部分。*部分是知识精要,共10章,主要结合主教材的知识结构,对知识点进行精讲、拓展,每一章都系统总结了主教材的主要知识点,并给出主教材的大部分课后习题的详细分析讲解和参考答案。第二部分是应用实践,共4章,主要是对理论知识的实践应用,以增进知识内化,内容包括汇编语言程序设计实验步骤、主要调试工具、汇编语言程序设计实验以及微机原理接口技术实验,每个实践项目严格按照教学进度安排,由易到难,并设计若干提高实验、综合实验以及创新性实验。本书的实验不限于某个实验箱系统,尽量做到通用。 本书可作为高等学校本科信息类相关专业的教材,也可供广大工程技术人员参考。
|
關於作者: |
作者简介:王让定,博士,宁波大学教授、博士生导师,浙江省高校中青年学科带头人,计算机科学与技术国家特色专业建设点负责人,浙江省高等学校省级教学团队负责人,宁波大学教学名师,校计算机科学与技术教学团队负责人。现兼任中国体视学学会理事,中国计算机学会开放系统专委会委员,中国电子学会通信学会多媒体信息安全专委会委员,浙江省高校计算机教学研究会副理事长,浙江省计算机应用与教育学会教育委员会副主任,浙江省物联网专业委员会副主任,浙江省高校计算机教学指导委员会委员,浙江省大学生软件设计竞赛组委会成员。主持了4项国家自然基金项目,获省科技进步奖2项、浙江省高校科研成果奖3项,获国家发明专利授权6项。在发表学术或教学研究论文80多篇,其中被SCIEIISTP检索的论文有30多篇,主编国家十一五规划教材1部,国家十二五规划教材1部。
|
目錄:
|
目录
第一部分知 识 精 要
第1章微型计算机概述3
知识点总结3
习题精解3
第2章80x86微处理器6
知识点总结6
习题精解6
第3章80x86指令系统和寻址方式12
知识点总结12
习题精解12
第4章80x86汇编语言程序设计25
知识点总结25
习题精解25
第5章存储器技术50
知识点总结50
习题精解50
第6章输入输出接口及数据传输控制方式54
知识点总结54
习题精解54
第7章串并行接口技术56
知识点总结56
习题精解56
第8章中断和DMA技术67
知识点总结67
习题精解67
第9章模拟接口技术71
知识点总结71
习题精解71
第10章高速串行总线77
知识点总结77
习题精解77
第二部分应 用 实 践
第11章80x86机器组织81
11.180x86寄存器81
11.280x86数据寻址方式82
11.380x86指令集84
第12章汇编语言程序设计步骤85
12.1软件上机过程简述85
12.2DOS基本命令摘要86
12.3汇编与宏汇编程序87
12.4连接程序及程序执行88
12.5调试工具介绍89
12.5.1DEBUG89
12.5.2TD的使用93
第13章汇编语言程序设计实验96
13.1算术运算类编程实验96
13.1.1实验1: 多字节加减法运算编程
实验96
13.1.2实验2: 十进制数的BCD加减法
编程实验97
13.1.3实验3: 二进制乘除法编程实验97
13.2数值转换实验98
13.3分支程序设计实验101
13.4循环程序设计实验103
13.5字符串操作及输入输出实验105
13.6子程序设计实验106
13.6.1实验1: 求无符号字节序列中的
最大值和最小值108
13.6.2实验2: 求N!108
13.7排序程序设计实验109
13.8查表程序设计实验110
第14章80x86微机接口技术及其应用实验112
14.18086微机系统结构配置及IO地址
译码电路112
14.1.18086微机系统结构配置112
14.1.2IO地址译码电路115
14.2接口技术基础实验116
14.2.18253定时计数器应用实验116
14.2.28255并行接口实验118
14.2.38251串行接口应用实验119
14.2.4DA转换实验121
14.2.5AD转换实验123
14.2.6中断控制器8259A实验124
14.3接口技术综合实验126
14.3.1LED显示实验126
14.3.2电子发声设计实验128
14.3.3竞赛抢答器130
附录A80x86指令集简介133
|
內容試閱:
|
第3章 80x86指令系统和寻址方式〖1〗知识点总结本章主要讲授: 80x86的数据类型、寻址方式、指令格式。8086常用指令(数据传送指令、算术运算指令、逻辑运算指令、串操作数指令、处理机指令等)和80386、80486指令系统等。在本章的学习中,注意下面几方面的内容: 掌握80x86的数据类型。 掌握80x86的寻址方式。 掌握80x86的指令系统及它们的一些应用实例。 了解保护属性检查指令、高级语言指令以及Cache管理指令等。习 题 精 解1. 已知DS=2000H,BX=0100H,SI=0002H,存储单元\[20100H\]~\[20103H\]依次存放12 34 56 78H,\[21200H\]~\[21203H\]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。(1) MOVAX,1200H(2) MOVAX,BX(3) MOVAX,\[1200H\](4) MOVAX,\[BX\](5) MOVAX,\[BX 1100H\](6) MOVAX,\[BX SI\](7) MOVAX,\[BX\]\[SI 1100H\]参考答案: 根据物理地址形成公式: 物理地址=段基址16+有效地址,上述指令执行后AX寄存器的内容如下: (1) 1200H(2) 0100H(3) 4C2AH(4) 3412H(5) 4C2AH(6) 7856H7 65B7H分析: 本题主要考查点是数据寻址方式,寻址方式就是指令中用于说明操作数所在地址的方法,或者是寻找操作数有效地址的方法。包括数据寻址和转移地址寻址两大类。80x86的数据寻址方式总结如下: 1 立即寻址方式。操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式就称为立即数寻址方式。注意: (1) 使用立即寻址的指令主要用来给寄存器赋初值,并且只能用于源操作数字段。(2) 不能直接给段寄存器和标志寄存器赋予立即数。例如: MOV AL,5MOV AX,1234HMOV EAX,12345678H2 寄存器寻址方式。操作数存放在指令规定的某个寄存器中。例如,对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DL、SP或BP;而对8位操作数,寄存器可以是AH、AL、BH、BL、CH、CL、DH或DL。例如: MOV AL,BHMOV AX,CXMOV EAX,EBP3 存储器寻址。操作数存放在存储器中,在寻址时要计算存储单元的有效地址,有效地址可以由以下4种成分组成: 位移量。是存放在指令中的一个8位、16位或32位的数。 基址。其值存放在基址寄存器中。BX、BP以及任何32位通用寄存器都可以作为基址寄存器使用。 变址。其值存放在变址寄存器中。SI、DI以及除ESP外的32位通用寄存器都可以作为基址寄存器使用。 比例因子。是80386及后继机型中新增寻址方式中的术语。其值可为1、2、4、8。根据计算有效地址EA方法不同,存储器寻址又分为以下两种方式: ① 直接寻址direct addressing。操作数的有效地址是指令的一部分,它与操作码一起存放在代码段中,默认操作数在数据段(DS)中。如果操作数定义在其他段中,则应在指令中指定段超越前缀。EA=立即数例: MOV AX,\[200H\]② 寄存器间接寻址(register indirect addressing)。操作数的有效地址EA存放在基址寄存器BX或BP或变址寄存器DI或SI中。计算物理地址的默认段仍然是SI、DI和BX为DS,BP为SS。EA=寄存器中的值例: MOV AX,\[BX\]MOV AX,\[BP\]MOV AX,\[SI\]MOV AX,\[DI\]③ 寄存器相对寻址(register relative addressing)。由指定的寄存器内容,加上指令中给出的8位或16位偏移量(当然要以一个段寄存器作为地址基准)作为操作数的偏移地址。EA=基址或变址寄存器BX、BP、DI、SI8位或16位的位移量注意: 寄存器相对寻址常用于存取表格或一维数组中的元素把表格的起始地址作为位移量,元素的下标值放在间址寄存器中(或反之)。例: MOV AX,\[BX 2\]MOV AX,\[BP 1\]MOV AX,\[SI-1\]MOV AX,\[DI-2\]MOV AX,\[BX 2000H\]MOV AX,\[BP 1000H\]MOV AX,\[SI-1000H\]MOV AX,\[DI-2000H\]④ 基址变址寻址(baseplusindex addressing)。有效地址由基址寄存器(BP或BX)的内容加上变址寄存器(DI或SI)的内容形成。如基址寄存器为BX时,与DS形成的物理地址指向数据段;如基址寄存器为BP时,与SS形成的物理地址指向堆栈段。EA=基址寄存器的内容 变址寄存器的内容例: MOV AX,\[BX SI\]MOV AX,\[BX DI\]MOV AX,\[BP SI\]MOV AX,\[BP DI\]注意: 一条指令中同时使用基址寄存器或变址寄存器是错误的。例: MOV CL, \[BX BP\]或MOV AX, \[SI DI\]均为非法指令。⑤ 基址变址相对寻址(baseplusindex relative addressing)。有效地址由基址寄存器(BP或BX)、变址寄存器(DI或SI)及相对偏移量形成。默认段的使用仍然是DS与BX组合,SS与BP组合。EA=基址寄存器的内容 变址寄存器的内容8位或16位的位移量例: MOV AX,\[BX SI 2\]MOV AX,\[BX DI 1\]MOV AX,\[BP SI-1\]MOV AX,\[BP DI-2\]MOV AX,\[BX SI 2000H\]MOV AX,\[BX DI 1000H\]MOV AX,\[BP SI-1000H\]MOV AX,\[BP DI-2000H\]⑥ 比例变址寻址方式。有效地址为变址寄存器的内容乘以指令中指定的比例因子再加上位移量之和。例: MOV EAX,\[ESI4 100H\]⑦ 基址比例变址寻址方式。有效地址为变址寄存器的内容乘以指令中指定的比例因子再加上基址寄存器的内容之和。例: MOV EAX,\[ESI4 EBX\]⑧ 相对基址比例变址寻址方式。有效地址为变址寄存器的内容乘以指令中指定的比例因子,加上基址寄存器的内容,再加上位移量之和。例: MOV EAX,\[ESI4 EBX 8\] 4 隐含寻址。指令操作数是隐含的,在指令中未显式地指明。例: MULBL上面的指令隐含了被乘数AL及乘积AX。类似的指令还有DIV、CBW、MOVS等。5 IO端口寻址。IO端口寻址可分为以下两种方式:① 直接端口寻址。端口地址用8位立即数(0~255)表示。例: INAL,21H;从IO端口地址为21H的端口中读取数据送到AL中② 间接端口寻址。IO端口地址事先存放在规定的DX寄存器中(0~65 535)。例: MOVDX,0FF03HOUTDX,AL;将AL中的内容输出到地址由DX内容所指定的端口中2. 指出下列指令的错误(1) MOV CX,DL(2) MOV IP,AX(3) MOV ES,1234H(4) MOV ES,DS(5) MOV AL,300(6) MOV \[SP\],AX(7) MOV AX,BX DI(8) MOV 20H,AH参考答案: (1) 字长不同。(2) 不能给IP赋值。(3) 立即数不能直接赋给段寄存器。(4) 给段寄存器赋值一定需要累加器。(5) 立即数300超过8位不能赋给8位寄存器AL。(6) SP不能作为间址寄存器寻址。(7) 两个寄存器不能相加。(8) 立即数不能作为目标操作数。分析: 本题主要考查在应用通用传送指令时需要注意的以下几项(以MOV指令为例): 1 传送指令可传送8位数据,也可传送16位数据,具体取决于指令中涉及的寄存器是8位还是16位,也取决于立即数的形式。例如:MOV AX,\[35AH\];传送DS段中偏移地址为35AH的字单元内容至AXMOV BL,\[35AH\];传送DS段中偏移地址为35AH的字节单元内容至BLMOV \[BP\],WORD PTR 18H ;传送16位数据0018H至SS段中的两个单元MOV \[BP\],BYTE PTR 37H ;传送8位数据37H至SS段中的一个单元2 传送指令中总是既含源操作数,又含目的操作数,两者之中至少有一个是用寄存器指出的,这可减少指令长度。因此,一个立即数不能直接送直接寻址的内存单元。交换指令(XCHG)的两个操作数都不能是立即数。例如:MOV WORD PTR \[1000H\],32A8H;错误MOV WORD PTR \[BX\],32A8H;正确3 传送指令不能在两个内存单元之间直接传送数据。例如:MOV \[2000H\],\[35AH\];错误MOV WORD PTR \[BX\],\[8729H\];错误4 在传送指令中,寄存器既可以作为源操作数,也可以作为目的操作数,但CS寄存器不能作为目的操作数,换句话说,这个寄存器的值不能随意修改。而IP寄存器既不能作源操作数,也不能作目的操作数。例如:MOV CS,\[35AH\];错误MOV CS,AX;错误MOV AX,IP;错误MOV IP,WORD PTR\[BX\];错误5 用BX、SI、DI来间接寻址时,默认的段寄存器为DS;而用BP来间接寻址时,默认的段寄存器为SS。例如,对于MOV WORD PTR\[BP\],1000和MOV WORD PTR\[BX\],2000这两条指令, 设DS=3000H,SS=4000H,BX=5000H,BP=6000H,则前一条指令将立即数1000送到物理地址为46000H和46001H的两个单元中,后一条指令将立即数2000送到物理地址为35000H和35001H的两个单元中。6 8086系统规定,凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行后,又自动恢复对SS寄存器赋值前的中断开放状态。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。了解这一点后,就应该注意在SS和SP的指令之间不要插入其他指令。例如,下述写法是错误的:MOV SS,AXMOV DL,38HMOV AH,2INT 21HMOV SP,BX7 除了一些直接影响FLAGS的指令如POPF外,一般传送指令不改变标志寄存器的内容。8 立即数不能直接送段寄存器DS、ES以及SS。例如: MOV DS,875BH;错误MOV AX,875BHMOV DS,AX;正确MOV WORD PTR\[BX\],32A8HMOV ES,\[BX\];正确实际上,上述几点中有些要求适于其他通用传送型指令,甚至也适用于其他种类的指令,读者可在后面的学习中不断总结和积累。3. 已知数字0~9对应的格雷码依次为18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以TABLE为首地址(设为200H)的连续区域中。为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。LEABX,TABLEMOV AL,8XLAT参考答案: LEA BX,TABLE; 得到表首地址,放在寄存器BX中MOVAL,8;立即数8赋值给AL,即AL中存放的是相对于表首的偏移地址XLAT;利用查表转换指令,实质是查找8的格雷码结果是AL=12H。程序段的功能为把表首地址即200H赋给BX。分析: 本题主要考查查表转换指令XLAT的应用。指令功能: ALDS: \[BX AL\]。用途: 用于查表(或对一维数组操作),表首地址的偏移地址在BX中,表长度可达256B。以BX的值作为内存字节数组首地址,把下标为AL的数组元素的值传送给AL。有两个隐含操作数BX和AL。4. 什么是堆栈?它的工作原则是什么?它的基本操作有哪两个?对应哪两种指令?参考答案: 堆栈是一段具有特殊存取规则的数据区,工作原则是先进后出(FILO),它有两种基本的操作,即进栈和出栈,对应的指令为PUSH和POP。分析: 堆栈的应用很多,应用80868088系统堆栈时要注意下面几点: 堆栈是向下生长的。 堆栈的工作原则是先进后出(FILO)。 堆栈有两种操作,即进栈和出栈,只能进行字操作,且是对准字。 堆栈对应的逻辑地址是SS:SP。6. 给出下列各条指令执行后AL的值以及CF、ZF、SF、OF和PF的状态。MOV AL,89HADD AL,AL
|
|