fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页计算机/网络计算机理论微型计算机原理与接口技术题解及实验指导(第4版)

微型计算机原理与接口技术题解及实验指导(第4版)

主教材习题的分析和解答,以及汇编语言程序设计、Proteus硬件仿真及TD-PITC的接口电路实验。

作者:吴宁 陈文革 出版社:清华大学出版社 出版时间:2018年07月 

ISBN: 9787302499541
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €23.99

类别: 研究生/本科/专科教材, 计算机理论 SKU:5c239c5d421aa985877a5be6 库存: 有现货
  • 描述
  • 评论( 0 )

描述

开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302499541丛书名: 高等学校计算机基础教育教材精选

编辑推荐
在汇编语言程序设计实验中,首先较全面地介绍了汇编程序设计的实验环境和设计步骤,然后由浅入深地引入了7项汇编程序设计中的各类典型问题的实验内容。为进一步扩充硬件实验内容,并为未来进一步开展远程不受限虚拟实验奠定基础,本次改版引入了基于Proteus仿真实验软件的硬件仿真实验。该仿真环境突破了真实物理实验环境的现状,可为读者提供更灵活、多样化的硬件设计。在虚拟实验基础上,本书基于西安唐都科教仪器公司的TDPITC实验平台,设计改编了5项微机接口实验,以帮助读者在真实物理环境下完成接口应用。 
内容简介
本书是与《微型计算机原理与接口技术(第4版)》(清华大学出版社出版)配套的题解及实验指导。全书分为上、下两篇。上篇第1~8章是习题解答,包括主教材中8章全部习题的详细分析和解答。下篇第9~11章是实验指导。其中,第9章是汇编语言程序设计实验,包括汇编语言设计中的各种典型问题;第10章是基于Proteus软件平台的硬件仿真实验;第11章是基于西安唐都科教仪器公司TDPITC实验系统开发的微机接口实验。全部实验共含19项,分为基础实验和综合实验两个层次,以帮助学生进一步巩固课堂所学内容。
本书既是与主教材配套的习题解答及实验操作指导,也可作为普通高等院校计算机硬件类课程的实验指导,可帮助读者更深入地理解和掌握教材内容,提高独立思考、分析和解决问题的能力。
目  录

目录

微型计算机原理与接口技术题解及实验指导(第4版)

上篇主教材习题及解答

 

第1章基础知识3

第2章微型计算机基础6

第3章8086/8088指令系统12

第4章汇编语言程序设计18

第5章存储器系统30

第6章输入输出和中断技术36

第7章常用数字接口电路43

第8章模拟量的输入输出52

 

下篇微型计算机原理与接口技术实验指导

 

第9章汇编语言程序设计实验61

9.1汇编语言程序设计实验介绍61

9.1.1汇编程序及主要功能61

9.1.2汇编语言程序设计过程62

9.1.3汇编语言程序设计实验环境63

9.1.4汇编语言程序设计实验步骤63

9.2数据传送实验68

9.2.1实验目的68

9.2.2实验预习要求68

9.2.3实验任务68

9.2.4实验练习题71

9.2.5实验报告要求72

9.3算术逻辑运算及移位操作实验72

9.3.1实验目的72

9.3.2实验预习要求72

9.3.3实验任务72

9.3.4实验练习题75

9.3.5实验报告要求76

9.4串操作实验76

9.4.1实验目的76

9.4.2实验预习要求76

9.4.3编程提示76

9.4.4实验任务77

9.4.5调试提示79

9.4.6实验报告要求79

9.5字符及字符串的输入输出实验79

9.5.1实验目的79

9.5.2实验预习要求79

9.5.3实验任务80

9.5.4调试提示81

9.5.5实验报告要求81

微型计算机原理与接口技术题解及实验指导(第4版)目录9.6直线与分支程序设计实验81

9.6.1实验目的81

9.6.2实验预习要求82

9.6.3实验内容82

9.6.4实验思考84

9.6.5实验报告要求84

9.7循环程序设计实验84

9.7.1实验目的84

9.7.2实验预习要求84

9.7.3实验内容85

9.7.4编程提示85

9.7.5实验习题88

9.7.6实验报告要求88

9.8综合程序设计实验89

9.8.1实验目的89

9.8.2实验预习要求89

9.8.3实验内容89

9.8.4程序控制流程89

9.8.5编程程序89

9.8.6程序框架91

9.8.7实验报告要求92

第10章硬件仿真实验93

10.1仿真实验平台简介93

10.1.1仿真操作界面93

10.1.2电路原理图绘制指南96

10.1.3仿真运行103

10.1.4操作练习107

10.28086小系统构建和I/O地址译码实验108

10.2.1实验目的108

10.2.2实验预习要求108

10.2.3实验内容108

10.2.4实验预备知识109

10.2.5实验操作指导110

10.2.6实验习题114

10.2.7实验报告要求114

10.3存储器扩充实验115

10.3.1实验目的115

10.3.2实验预习要求115

10.3.3实验内容115

10.3.4实验预备知识115

10.3.5实验操作指导116

10.3.6实验习题118

10.3.7实验报告要求118

10.48253定时计数器实验119

10.4.1实验目的119

10.4.2实验预习要求119

10.4.3实验内容119

10.4.4实验预备知识119

10.4.5实验操作指导119

10.4.6实验习题122

10.4.7实验报告要求122

10.58255并行接口实验123

10.5.1实验目的123

10.5.2实验预习要求123

10.5.3实验内容123

10.5.4实验预备知识123

10.5.5实验操作指导124

10.5.6实验习题127

10.5.7实验报告要求127

10.6ADC0808模/数转换实验127

10.6.1实验目的127

10.6.2实验预习要求127

10.6.3实验内容128

10.6.4实验预备知识128

10.6.5实验操作指导128

10.6.6实验习题132

10.6.7实验报告要求132

10.7DAC0832数/模转换实验133

10.7.1实验目的133

10.7.2实验预习要求133

10.7.3实验内容133

10.7.4实验预备知识133

10.7.5实验操作指导134

10.7.6实验习题138

10.7.7实验报告要求138

10.8数字温度计实验138

10.8.1实验目的138

10.8.2实验预习要求138

10.8.3实验内容139

10.8.4实验预备知识139

10.8.5实验操作指导140

10.8.6实验习题147

10.8.7实验报告要求147

第11章微机接口实验149

11.1微机接口实验环境简介149

11.1.1实验箱概述149

11.1.2Tdpit集成操作软件简介151

11.1.3硬件实验注意事项153

11.28254定时/计数器基本应用实验153

11.2.1实验目的153

11.2.2实验预习要求153

11.2.3实验内容153

11.2.4实验预备知识154

11.2.5实验操作指导155

11.2.6实验提示157

11.2.7实验习题157

11.2.8实验报告要求157

11.3电子发声实验157

11.3.1实验目的157

11.3.2实验预习要求157

11.3.3实验内容158

11.3.4实验预备知识158

11.3.5实验操作指导160

11.3.6实验提示161

11.3.7实验习题162

11.3.8实验报告要求162

11.48255可编程并行接口基本应用实验163

11.4.1实验目的163

11.4.2实验预习要求163

11.4.3实验内容163

11.4.4实验预备知识163

11.4.5实验操作指导163

11.4.6实验提示165

11.4.7实验习题166

11.4.8实验报告要求166

11.5步进电机控制实验167

11.5.1实验目的167

11.5.2实验预习要求167

11.5.3实验内容167

11.5.4实验预备知识167

11.5.5实验操作指导168

11.5.6实验提示169

11.5.7实验习题171

11.5.8实验报告要求171

11.6A/D 转换实验172

11.6.1实验目的172

11.6.2实验预习要求172

11.6.3实验内容172

11.6.4实验预备知识172

11.6.5实验步骤及说明173

11.6.6实验习题173

11.6.7实验报告要求174

附录ATD.EXE的使用说明175

A.1TD的启动175

A.2TD中的数制176

A.3TD的用户界面176

A.4代码区的操作180

A.5寄存器区和标志区的操作183

A.6数据区的操作183

A.7堆栈区的操作186

A.8TD使用入门的10个怎么办187

前  言
出版说明高等学校计算机基础教育教材精选在*关于高等学校计算机基础教育三层次方案的指导下,我国高等学校的计算机基础教育事业蓬勃发展。经过多年的教学改革与实践,全国很多学校在计算机基础教育这一领域中积累了大量宝贵的经验,取得了许多可喜的成果。随着科教兴国战略的实施以及社会信息化进程的加快,目前我国的高等教育事业正面临着新的发展机遇,但同时也必须面对新的挑战。这些都对高等学校的计算机基础教育提出了更高的要求。为了适应教学改革的需要,进一步推动我国高等学校计算机基础教育事业的发展,我们在全国各高等学校精心挖掘和遴选了一批经过教学实践检验的优秀的教学成果,编辑出版了这套教材。教材的选题范围涵盖了计算机基础教育的三个层次,包括面向各高校开设的计算机必修课、选修课,以及与各类专业相结合的计算机课程。为了保证出版质量,同时更好地适应教学需求,本套教材将采取开放的体系和滚动出版的方式(即成熟一本、出版一本,并保持不断更新),坚持宁缺毋滥的原则,力求反映我国高等学校计算机基础教育的成果,使本套丛书无论在技术质量上还是文字质量上均成为真正的“精选”。清华大学出版社一直致力于计算机教育用书的出版工作,在计算机基础教育领域出版了许多优秀的教材。本套教材的出版将进一步丰富和扩大我社在这一领域的选题范围、层次和深度,以适应高校计算机基础教育课程层次化、多样化的趋势,从而更好地满足各学校由于条件、师资和生源水平、专业领域等的差异而产生的不同需求。我们热切期望全国广大教师能够积极参与到本套丛书的编写工作中来,把自己的教学成果与大家分享;同时也欢迎广大读者对本套教材提出宝贵意见,以便我们改进工作,为读者提供更好的服务。我们的电子邮件地址是[email protected]。联系人: 焦虹。
清华大学出版社前言微型计算机原理与接口技术题解及实验指导(第4版)本书是与《微型计算机原理与接口技术(第4版)》配套的题解及实验指导,是在《微型计算机原理与接口技术题解与实验指导(第3版)》基础上的改版。全书分为上、下两篇。上篇是主教材各章的习题分析和解答,对学生进一步理解教材内容并验证对所学知识的掌握程度有一定的帮助,也为从事该课程教学的教师提供了巩固和深化课堂效果的教学环境。本书下篇为汇编语言程序设计实验、硬件仿真实验及基于物理实验环境的微机接口实验的实验指导。在汇编语言程序设计实验中,首先较全面地介绍了汇编程序设计的实验环境和设计步骤,然后由浅入深地引入了7项汇编程序设计中的各类典型问题的实验内容。为进一步扩充硬件实验内容,并为未来进一步开展远程不受限虚拟实验奠定基础,本次改版引入了基于Proteus仿真实验软件的硬件仿真实验。该仿真环境突破了真实物理实验环境的现状,可为读者提供更灵活、多样化的硬件设计。在虚拟实验基础上,本书基于西安唐都科教仪器公司的TDPITC实验平台,设计改编了5项微机接口实验,以帮助读者在真实物理环境下完成接口应用。本书的习题解答深入浅出,对较为复杂的题目都加以简单分析,较易理解。与上一版教材相比,本书主要的修订是引入虚拟仿真实验环境设计各类硬件实验,增加了教材的通用性。同时,也没有放弃真实物理环境下的接口系统设计实验,从而使读者既能灵活设计各类硬件实验,又能对真实系统有直观的认知。本书实验内容的选取符合分层次教学的理念,每项实验都详细讲解了实验内容、实验目的和实验过程,并设计了实验习题或思考题,能够较好地帮助读者理解所学内容,提高自主动手的能力。其中,标有的实验为选做内容。本书硬件仿真实验部分由陈文革编写,其余内容由吴宁编写并统稿。本书硬件接口实验采用了TDPICT实验装置设计者设计的多项实验,在此向该装置的开发者致谢。
作者2018年6月
在线试读
第3章8086/8088指令系统接正文3.1什么叫寻址方式?8086/8088 CPU共有哪几种寻址方式?解: 寻址方式主要是指获得操作数所在地址的方法。8086/8088 CPU具有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址以及隐含寻址8种寻址方式。3.2设DS=6000H,ES=2000H,SS=1500H,SI=00A0H,BX=0800H,BP=1200H,字符常数VAR为0050H。请分别指出下列各条指令源操作数的寻址方式,并计算除立即寻址外的其他寻址方式下源操作数的物理地址。(1) MOV AX,BX (2) MOV DL,80H(3) MOV AX,VAR(4) MOV AX,VAR[BX][SI](5) MOV AL,’B'(6) MOV DI,ES:[BX](7) MOV DX,[BP] (8) MOV BX,20H[BX]解: (1) 寄存器寻址。因源操作数是寄存器,故寄存器BX就是操作数的地址。(2) 立即寻址。操作数80H存放于代码段中指令码MOV之后。(3) 立即寻址。因为这里的VAR是字符常数。(4) 基址变址相对寻址。操作数的物理地址=DS×16 SI BX VAR=60000H 00A0H 0800H 0050H=608F0H(5) 立即寻址。(6) 寄存器间接寻址。操作数的物理地址=ES×16 BX=20000H 0800H=20800H(7) 寄存器间接寻址。操作数的物理地址=SS×16 BP=15000H 1200H=16200H(8) 寄存器相对寻址。操作数的物理地址=DS×16 BX 20H=60000H 0800H 20H=60820H3.3假设DS=212AH,CS=0200H,IP=1200H,BX=0500H,位移量DATA=40H,[217A0H]=2300H,[217E0H]=0400H,[217E2H]=9000H。试确定下列转移指令的转移地址。(1) JMP BX(2) JMP WORD PTR[BX](3) JMP DWORD PTR[BX DATA]微型计算机原理与接口技术题解及实验指导(第4版)第3章8086/8088指令系统解: 转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段内的直接转移和间接转移,以及段间的直接转移和间接转移地址。对直接转移,其转移地址为当前指令的偏移地址(即IP的内容)加上位移量或由指令中直接得出;对间接转移,转移地址等于指令中寄存器的内容或由寄存器内容所指向的存储单元的内容。(1) 段内间接转移。转移目标的物理地址=CS×16 BX=02000H 0500H=02500H(2) 段内间接转移。转移目标的物理地址=CS×16 [BX]=CS [217A0H]=02000H 2300H=04300H(3) 段间间接转移。转移目标的物理地址=[BX DATA]=[217E2H]×16 [217E0H]=90000H 0400H=90400H3.4试说明指令MOV BX,5[BX]与指令LEA BX,5[BX]的区别。解: 前者是数据传送类指令,表示将数据段中以(BX 5)为偏移地址的16位数据送寄存器BX。后者是取偏移地址指令,执行的结果是BX=BX 5,即操作数的偏移地址为BX 5。3.5设堆栈指针SP的初值为2300H,AX=50ABH,BX=1234H。执行指令PUSH AX后,SP=?再执行指令PUSH BX及POP AX之后,SP=?AX=?BX=?解: 堆栈指针SP总是指向栈顶,每执行一次PUSH指令SP-2,执行一次POP指令SP 2。所以,执行PUSH AX指令后,SP=22FEH;再执行PUSH BX及POP AX后,SP=22FEH,AX=BX=1234H。3.6判断下列指令是否正确,若有错误,请指出并改正之。(1) MOV AH,CX (2) MOV 33H,AL(3) MOV AX,[SI][DI](4) MOV [BX],[SI](5) ADD BYTE PTR[BP],256(6) MOV DATA[SI],ES: AX(7) JMP BYTE PTR[BX](8) OUT 230H,AX(9) MOV DS,BP (10) MUL 39H解: (1) 指令错。两操作数字长不相等。(2) 指令错。MOV指令不允许目标操作数为立即数。(3) 指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。(4) 指令错。MOV指令不允许两个操作数同时为存储器操作数。(5) 指令错。ADD指令要求两操作数等字长。(6) 指令错。源操作数形式错,段重设仅针对存储器操作数,寄存器操作数不存在“段”,所以也就不可能加段重设符。(7) 指令错。转移地址的字长至少应是16位的。(8) 指令错。对输入输出指令,当端口地址超出8位二进制数的表达范围时(即寻址的端口超出256个时),必须采用间接寻址。(9) 指令正确。(10) 指令错。MUL指令不允许操作数为立即数。3.7已知AL=7BH,BL=38H,试问执行指令ADD AL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?解: AF=1,CF=0,OF=1,PF=0,SF=1,ZF=0。3.8试比较无条件转移指令、条件转移指令、调用指令和中断指令的异同。解: 无条件转移指令的操作是无条件地使程序转移到指定的目标地址,并从该地址开始执行新的程序段,其转移的目标地址既可以在当前逻辑段,也可以在不同的逻辑段。条件转移指令是在满足一定条件下使程序转移到指定的目标地址,其转移范围很小,只能在当前逻辑段的-128~ 127地址范围内。调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用(入口地址在当前逻辑段内)和段间调用。在执行调用指令后,CPU要保护断点。对段内调用是将其下一条指令的偏移地址压入堆栈,对段间调用则要保护其下一条指令的偏移地址和段基地址,然后将子程序入口地址赋给IP(或CS和IP)。中断指令是因一些突发事件而使CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在响应中断后CPU不仅要保护断点(即INT指令下一条指令的段地址和偏移地址),还要将标志寄存器FLAGS压入堆栈保存。3.9试判断下列程序执行后BX中的内容。MOVCL,3MOVBX,0B7HROLBX,1RORBX,CL解: 该程序段是首先将BX内容不带进位位循环左移1位,再循环右移3位。即相当于将原BX内容不带进位位循环右移2位,故结果为BX=0C02DH。3.10按下列要求写出相应的指令或程序段。(1) 写出两条使AX内容为0的指令。(2) 使BL寄存器中的高4位和低4位互换。(3) 屏蔽CX寄存器的D11、D7和D3位。(4) 测试DX中的D0和D8位是否为1。解: (1) MOV AX,0XOR AX,AX;AX寄存器自身相异或,可使其内容清0(2) MOV CL,4ROL BL,CL;将BX内容循环左移4位,可实现其高4位和低4位的互换(3) AND CX,0F777H ;将 CX寄存器中需屏蔽的位与0,也可用或指令实现(4) AND DX,0101H;将需测试的位与1,其余与0屏蔽掉CMP DX,0101H;与0101H比较JZ ONE;若相等则表示D0和D8位同时为13.11分别指出以下两个程序段的功能。(1) MOV CX,10LEA SI,FIRSTLEA DI,SECONDSTDREP MOVSB(2) CLDLEA DI,[1200H]MOV CX,0FF00HXOR AX,AXREP STOSW解: (1) 该段程序的功能是将数据段中FIRST为首地址的10个字节数据按减地址方向传送到附加段SECOND为首址的单元中。(2) 该段程序的功能是将附加段中偏移地址为1200H单元开始的FF00H个单元清0。3.12执行以下两条指令后,标志寄存器FLAGS的6个状态位各为什么状态?MOV AX,84A0HADD AX,9460H解: 执行ADD指令后,6个状态标志位的状态分别为: CF=1,ZF=0,SF=0,OF=1,PF=1,AF=0。3.13将 46和-38分别乘以2,可应用什么指令来完成?如果除以2呢?解: 因为对二进制数,每左移一位相当于乘以2,右移一位相当于除以2。所以,将 46和-38分别乘以2,可分别用逻辑左移指令(SHL)和算术左移指令(SAL)完成。SHL指令针对无符号数,SAL指令针对有符号数。当然,也可以分别用无符号数乘法指令MUL和有符号数乘法指令IMUL完成。如果是除以2,则进行相反操作,即用逻辑右移指令SHR或无符号数除法指令DIV实现 46除以2的运算,用算术右移指令SAR或有符号数除法指令IDIV实现-38除以2的运算。3.14已知AX=8060H,DX=03F8H,端口PORT1的地址是48H,内容为40H;PORT2的地址是84H,内容为85H。请指出下列指令执行后的结果。(1) OUT DX,AL(2) IN AL,PORT1(3) OUT DX,AX(4) IN AX,48H(5) OUT PORT2,AX解: (1) 将60H输出到地址为03F8H的端口中。(2) 从PORT1读入一个字节数据,执行结果: (AL)=40H。(3) 将AX=8060H从地址为03F8H的端口输出。(4) 由48H端口读入16位二进制数。(5) 将8060H从地址为85H的端口输出。3.15试编写程序,统计BUFFER为起始地址的连续200个单元中0的个数。解: 将BUFFER为首地址的200个单元的数依次与0进行比较,若相等则表示该单元数为0,统计数加1;否则再取下一个数比较,直到200个单元数全部比较完毕为止。程序如下: LEA SI,BUFFER;取BUFFER的偏移地址MOV CX,200 ;数据长度送CXXOR BX,BX ;存放统计数寄存器清0AGAIN: MOV AL,[SI];取一个数CMP AL,0;与0比较JNE GOON;不为0则准备取下一个数INC BX;为0则统计数加1GOON:INC SI;修改地址指针LOOP AGAIN;若未比较完则继续比较HLT3.16写出完成下述功能的程序段。(1) 从地址DS:0012H中传送一个数据56H到AL寄存器。(2) 将AL中的内容左移两位。(3) AL的内容与字节单元DS:0013H中的内容相乘。(4) 乘积存入字单元DS:0014H中。解: (1) MOV DS:BYTE PTR[0012H],56HMOV AL,[0012H](2) MOV CL,2SHL AL,CL(3) MUL DS:BYTEPTR[0013H](4) MOV DS:[0014H],AX3.17若AL=96H,BL=12H,在分别执行指令MUL和IMUL后,其结果是多少?OF=?CF=?解: MUL是无符号数的乘法指令,它将两操作数视为无符号数;IMUL是有符号数的乘法指令,此时,两操作数被看作有符号数。在本题中,(AL)=96H,其位为1,是负数。IMUL指令的执行原理是先求出它的真值(即对它求补),再做乘法运算。执行MUL BL指令后,AX=0A8CH,CF=OF=1;执行IMUL BL指令后,AX=F88CH,CF=OF=1。第4章汇编语言程序设计接正文4.1请分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句。解: DB,DW,DD伪指令分别表示定义的数据为字节型、字类型及双字型。其定义形式分别为: DATA DB 11H,22H,33H,44H,55H,66H,77H,88HDATA DW 2211H,4433H,6655H,8877HDATA DD 44332211H,88776655H4.2若程序的数据段定义如下,写出各指令语句独立执行后的结果。DSEG SEGMENTDATA1 DB10H,20H,30HDATA2 DW 10 DUP(?)STRING DB ‘123’DSEG ENDS(1) MOV AL,DATA1(2) MOV BX,OFFSET DATA2(3) LEA SI,STRINGADD BX,SI解: (1) 取变量DATA1的值。指令执行后,AL=10H。(2) 变量DATA2的偏移地址。指令执行后,BX=0003H。(3) 先取变量STRING的偏移地址送寄存器SI,之后将SI的内容与BX的内容相加并将结果送BX。指令执行后,SI=0017H;BX=0003H 0017H=001AH。4.3试编写求两个无符号双字长数之和的程序。两数分别在MEM1和MEM2单元中,和放在SUM单元。解: DSEG SEGMENTMEM1 DW 1122H,3344HMEM2 DW 5566H,7788HSUM DW 2 DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXLEA BX,MEM1LEA SI,MEM2LEA DI,SUMMOV CL,2CLCAGAIN:MOV AX,[BX]ADC AX,[SI]MOV [DI],AXADD BX,2ADD SI,2ADD DI,2LOOP AGAINHLTCSEG ENDSEND START微型计算机原理与接口技术题解及实验指导(第4版)第4章汇编语言程序设计4.4试编写程序,测试AL寄存器的第4位(D4)是否为0。解: 测试寄存器AL中某一位是否为0,可使用TEST指令、AND指令、移位指令等几种方法实现。如: TEST AL,10HJZ NEXTNEXT:…或者: MOV CL,4SHL AL,CLJNC NEXTNEXT:…4.5试编写程序,将BUFFER中的一个8位二进制数的高4位和低4位分别转换为ASCII码,并按位数高低顺序存放在ANSWER开始的内存单元中。解: DSEG SEGMENTBUFFERDB?;要转换的数ANSWERDB3 DUP(?);ASCII码结果存放单元DSEG ENDSCSEGSEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCX,3;多不超过3位十进制数(255)LEADI,ANSWER;DI指向结果存放单元XORAX,AXMOVAL,BUFFER;取要转换的二进制数MOVBL,0AH;基数10AGAIN:DIVBL;用除10取余的方法转换ADDAH,30H;十进制数转换成ASCII码MOV[DI],AH;保存当前位的结果INCDI;指向下一个位保存单元ANDAL,AL;商为0?(转换结束?)JZSTO;若结束,退出MOVAH,0LOOPAGAIN;否则循环继续STO:MOVAX,4CHINT21H;返回DOSCSEGENDSENDSTART4.6假设数据项定义如下: DATA1 DB’HELLO!GOOD MORNING!’DATA2 DB20 DUP(?)用串操作指令编写程序段,使其分别完成以下功能。(1) 从左到右将DATA1中的字符串传送到DATA2中。(2) 传送完后,比较DATA1和DATA2中的内容是否相同。(3) 把DATA1中的第3和第4个字节装入AX。(4) 将AX的内容存入DATA2 5开始的字节单元中。解: (1) MOV AX,SEG DATA1MOV DS,AXMOV AX,SEG DATA2MOV ES,AXLEA SI,DATA1LEA DI,DATA2MOV CX,20CLDREP MOVSB(2) LEA SI,DATA1LEA DI,DATA2MOV CX,20CLDREPE CMPSB(3) LEA SI,DATA1ADD SI,2LODSW(4) LEA DI,DATA2ADD DI,5MOV CX,7CLDREP STOSW4.7执行下列指令后,AX寄存器中的内容是多少?TABLE DW 10,20,30,40,50ENTRY DW 3MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,[BX]解: AX=1E00H。4.8编写程序段,将STRING1中的后20个字符移到STRING2中(顺序不变)。解: 首先确定STRING1中字符串的长度,因为字符串的定义要求以’$’符号结尾,可通过检测’$’符确定出字符串的长度,设串长度为COUNT,则程序如下: LEA SI,STRING1LEA DI,STRING2ADD SI,COUNT-20MOV CX,20CLDREP MOVSB4.9假设一个48位数存放在DX:AX:BX中,试编写程序段,将该48位数乘以2。解: 可使用移位指令来实现。首先将BX内容逻辑左移一位,其位移入进位位CF,之后AX内容带进位位循环左移,使AX的位移入CF,而原CF中的内容(即BX的位)移入AX的位,后再将DX内容带进位位循环左移一位,从而实现AX的位移入DX的位。SHL BX,1RCL AX,1RCL DX,14.10试编写程序,比较AX,BX,CX中带符号数的大小,并将的数放在AX中。解: 比较带符号数的大小可使用符号数比较指令JG等。LEA SI,SUMCMP AX,BXJG NEXT1XCHG AX,BXNEXT1:CMP AX,CXJG STOMOV AX,CXSTO:HLT4.11若接口03F8H的第1位(D1)和第3位(D3)同时为1,表示接口03FBH有准备好的8位数据,当CPU将数据取走后,D1和D3就不再同时为1了。仅当又有数据准备好时才再同时为1。试编写程序,从上述接口读入200字节的数据,并顺序放在DATA开始的地址中。解: 即当从输入接口03F8H读入的数据满足××××1×1×B时可以从接口03FBH输入数据。LEA SI,DATAMOV CX,200NEXT:MOV DX,03F8HIN AL,DXAND AL,0AH ;判断D1和D3位是否同时为1CMP AL,0AHJNZ NEXT ;D1和D3位同时为1则读数据,否则等待MOV DX,03FBHIN AL,DXMOV [SI],ALINC SILOOP NEXTHLT4.12画图说明下列语句分配的存储空间及初始化的数据值。(1) DATA1 DB’BYTE’,12,12H,2 DUP(0,?,3)(2) DATA2 DW4 DUP (0,1,2),?,-5,256H解: 存储空间分配情况如图41所示。图41题4.12图4.13请用子程序结构编写如下程序: 从键盘输入一个两位十进制的月份数(01~12),然后显示出相应的英文缩写名。解: 可根据题目要求编写如下几个子程序: INPUT从键盘接收一个两位数,并将其转换为二进制数。LOCATE通过字符表查找将输入数与英文缩写对应起来。DISPLAY将缩写字母在屏幕上显示。程序如下: DSEG SEGMENTDATA1 DB 3DATA2 DB 3,?,3 DUP(?)ALFMON DB’???’,’$’MONTAB DB ‘JAN’,’FEB’,’MAR’,’APR’,’MAY’,’JUN’DB ‘JUL’,’AUG’,’SEP’,’OCT’,’NOV’,’DEC’DSEG ENDS;SSEG SEGMENT STACK ‘STACK’DB 100 DUP(?)SSEG ENDS;CSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DSEG,SS:SSEG;MAINPROC FARPUSH DS;恢复断点XOR AX,AXPUSH AXMOV AX,DSEG;段初始化MOV DS,AXMOV ES,AXMOV AX,SSEGMOV SS,AXCALL INPUTCALL LOCATECALL DISPLAYRETMAINENDP;INPUTPROC NEARPUSH DXMOV AH,0AH;从键盘输入月份数LEA DX,DATA2INT 21HMOV AH,DATA2 2 ;输入月份数的ASCII码送AXMOV AL,DATA2 3XOR AX,3030H;将月份数的ASCII码转换为二进制数CMP AH,00H;确定是否为01至09月JZ RETURNSUB AH,AH;若为10至12月,则清高8位ADD AL,10;转为二进制码RETURN:POP DXRETINPUT ENDP;LOCATEPROC NEARPUSH SIPUSH DIPUSH CXLEA SI,MONTABDEC ALMUL DATA1;每月为3个字符ADD SI,AX;指向月份对应的英文缩写字母的地址MOV CX,03HCLDLEA DI,ALFMONREP MOVSBPOP CXPOP DIPOP SIRETLOCATEENDP;DISPLAYPROCPUSH DXLEA DX,ALFMONMOV AH,09HINT 21HPOP DXRETDISPLAYENDP;CSEGENDSEND MAIN4.14给出下列等值语句: ALPHAEQU 100BETAEQU 25GRAMMEQU 4试求下列表达式的值。(1) ALPHA×100 BETA (2) (ALPHA 4)×BETA-2(3) (BETA/3)MOD 5(4) GRAMM OR 3解: (1) 10000 25=10025(2) 104×23=2392(3) (25/3)MOD 5=3(4) 4 OR 3=74.15画图说明以下数据段在存储器中的存放形式。DATA SEGMENTDATA1 DB 10H,34H,07H,09HDATA2 DW 2 DUP(42H)DATA3 DB ‘HELLO!’DATA4 EQU 12图42题4.15图DATA5 DD ABCDHDATA ENDS解: 见图42。4.16阅读下面的程序段,试说明其实现的功能。DATA SEGMENTDATA1 DB ‘ABCDEFG’DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAAAAA:MOV AX,DATAMOV DS,AXMOV BX,OFFSET DATA1MOV CX,7NEXT:MOV AH,2MOV AL,[BX]XCHG AL,DLINC BXINT 21HLOOP NEXTMOV AH,4CHINT 21HCODEENDSEND AAAA解: 该程序段是将ABCDEFG这7个字母依次显示在屏幕上。4.17编写一程序段,把从BUFFER开始的100个字节的内存区域初始化成55H,0AAH,55H,0AAH,…,55H,0AAH。解: 可用串存储指令实现。DSEG SEGMENTBUFFER DB 100 DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DSEGBEGIN:MOV AX,DSEGMOV DS,AXMOV ES,AX MOV AX,0AA55HLEA DI,BUFFERCLDMOV CX,50REP STOSWHLTCSEG ENDSEND BEGIN4.18有16个字节,编程将其中第2、5、9、14、15个字节内容加3,其余字节内容乘2(假定运算不会溢出)。解: DSEG SEGMENTDATADB 16 DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGBEGIN:MOV AX,DSEGMOV DS,AXLEA SI,DATAMOV CL,0AGAIN:MOV AL,[SI]CMP CL,2JE ADDDCMP CL,5JE ADDDCMP CL,9JE ADDDCMP CL,14JE ADDDCMP CL,15JE ADDDSHL AL,1JMP GOONADDD:ADD AL,3GOON: MOV [SI],ALINC SIINC CLCMP,CL,16JB AGAINHLTCSEGENDSEND BEGIN4.19编写计算斐波那契数列前20个值的程序。斐波那契数列的定义如下: F(0)=0F(1)=1F(n)=F(n-1) F(n-2),n≥2解: 根据斐波那契数列的定义,将计算出的前20个值放在DATA1为首地址的内存单元中。程序如下: DATA SEGMENTDATA1 DB 0,1,18 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,DATA1MOV CL,18CLCNEXT: XOR AX,AXMOV AL,[BX]MOV DL,[BX 1]ADC AL,DLMOV [BX 2],ALINC BXDEC CLJNZ NEXTHLTCODE ENDSEND START4.20试编写将键盘输入的ASCII码转换为二进制数的程序。解: DATA SEGMENTBUFFER DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,BUFFERMOV AH,1;从键盘输入一个数INT 21HAND AL,7FH;去掉位CMP AL,’0’JL STO;若小于0则不属于转换范围CMP AL,’9’JG ASCB1SUB AL,30H;对0~9之间的数减去30H转换为二进制数JMP ASCB2ASCB1:CMP AL,’A’;对大于9的数再与A比较JL STOCMP AL,’F’JG STOSUB AL,37H;对A~F之间的数减去37H转换ASCB2:MOV [SI],AL;转换结果存放在BUFFER为首地址的单元中INC SISTO:CMP AL,’$’JNE NEXTHLTCODE ENDSEND START
书摘插画
插图

插图

插图

插图

插图

插图

抢先评论了 “微型计算机原理与接口技术题解及实验指导(第4版)” 取消回复

评论

还没有评论。

相关产品

加入购物车

信息系统开发——方法、案例与实验(21世纪高等学校规划教材·信息管理与信息系统)

EUR €33.99
加入购物车

信息简史(第九届文津图书奖获奖作品,小米董事长雷军、《浪潮之巅》作者吴军作序推荐)

EUR €43.99
加入购物车

算法设计与分析(21世纪高等学校规划教材·计算机科学与技术)

EUR €25.99
阅读更多
缺货

数据结构与算法分析:C语言描述(原书第2版)

EUR €26.99

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略