微机原理课后习题参考答案.pdf

上传人:奔*** 文档编号:89651373 上传时间:2023-05-08 格式:PDF 页数:25 大小:3.86MB
返回 下载 相关 举报
微机原理课后习题参考答案.pdf_第1页
第1页 / 共25页
微机原理课后习题参考答案.pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《微机原理课后习题参考答案.pdf》由会员分享,可在线阅读,更多相关《微机原理课后习题参考答案.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、上册第一章P91.1 微处理器、微型计算机、微型计算机系统的区别是什么?答:(1)微型计算机中的运算器和控制器合起来称为中央处理器,也就是微处理器,又称微处理机。(2)微型计算机是由叩u、主存储器、输入/输出接口电路和系统总线构成。(3)微型计算机系统由微型计算机、输入库立出设备、外存储器、系统软件、电源、面板和机架等组成。1.2微型计算机由哪些基本部分构成?微型计算机是由cpu、主存储器、输入/输出接口电路和系统总线构成。1.4 说明CISC、RISC及其主要区别。CISC是指复杂指令系统计算机,RISC是指精简指令系统计算机。他们的区别在于不同的CPU设计理念和方法。RISC指令系统仅包含

2、哪些必要的经常使用的指令,不经常使用的功能,往往通过基本指令组合来完成。完成特殊功能时效率比较低。CISC的指令系统比较丰富,一些特殊功能都有相应的指令。处理特殊任务效率较高。RISC对存储器操作相对简单,使对存储器访问的控制简化;而 CISC 机器的存储器操作指令较多,对存储器的访问有更多的指令直接操作,要求的控制逻辑比较复杂。R ISC在-条指令执行的适当地方可以响应中断;而 CISC机器是在一条指令执行结束后响应中断。RISC CPU的电路构成比CISC CPU简单,因此面积小、功耗也更低;CISC电路C PU 电路复杂,同水平比RISC CPU面积大、功耗大。RISC CPU结构比较简

3、单,布局紧凑规整,设计周期较短,比较容易采用一些并行计算的最新技术;CISC C PU 结构复杂,设计周期长,技术更新难度大。从使用角度看,RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。A A-.阜2.1 8086CPU由哪两大部分组成?简述它们的主要功能。总线接口部件BIU跟执行部件EUo总线接口部件(BIU)是联系微处理器内部与外部的重要通道,其主要功能是负责微处理器内部与外部的信息传递。主要任务:(1)取 指 令(2)形成物理地址(3)传送数据E U 完成控制器的功能,它负责执行指令并对相应的硬件部分进行控制,它的主要功

4、能就是完成全部指令的执行。EU 完成以下主要任务:(1)指 令 译 码(2)执行 指 令(3)向 BIU传送偏移地址信息(4)管理通用寄存器和标志寄存器2.2 8086CPU有哪些类型的寄存器?有 14个 16位寄存器。分为五类,通用寄存器组、指示器和变址寄存器组、段寄存器组、指令指示器、标志状态寄存器。2.3 8086CPU段寄存器的作用是什么?当前段的基址存放在段寄存器中。代码段寄存器CS:内容指出当前代码段基地址堆栈段寄存器SS:内容指出当前程序所使用的堆栈段的基地址数据段寄存器DS:指出了当前程序使用的数据段基地址,存放程序中的变量附加段寄存器ES:指出了当前程序使用的附加段,附加段用

5、来存放数据或存放处理后结果。2.4 通用寄存器中,八位寄存器与对应十六位寄存器有什么关系?如果AX=89ABH,AH、A L的内容各是什么?16位通用的寄存器可以分成两个8位寄存器,即可将每个通用寄存器的高8位和低8位,作为独立的8位通用寄存器使用。AH:89H AL:ABH2.5 标志寄存器各个位的作用是什么?进位标志CF:当进行加法运算时结果使最高位产生进位,或在减法运算时,结果使最高位产生借位,则C F=1,否则C F=O,也有其他一些指令会影响CF。辅助进位标志AF:当加法运算时,如果低四位向高位有进位,或者低四位向高位有借位,A F=1,否则AF=O。奇偶标志位PF:运算结果低8位所

6、含1的个数为偶数,PF=1;否则为0。零标志位ZF:运算结果为零时ZF=1;否则为0。符号标志SF:运算结果为负S F=1,否则为0。溢出标志OF:当运算结果超出了本条指令数据长度所能表示的数据范围时,OF为1,表示溢出,否则为0。方向标志DF:串操作的地址变化方向控制标志,当D F=0,地址递增,D F为1,地址递减中断允许标志IF:如果IF=1,则允许微处理器响应可屏蔽中断,IF=0,则禁止可屏蔽中断。陷阱标志TF:若T F为1,则微处理器按单步方式执行指令,执行一条指令就产生一次类型为1的内部中断。2.6 指令指针的作用是什么?如果C S内容为2000H,IP内容为0 200H,下一条执

7、行的指令码存放的对应物理地址是多少?IP指向当前代码中下一条要执行的指令的偏移地址。下一条指令物理地址为:20200H2.1 0什么是物理地址、逻辑地址?逻辑地址2(X)0:2345H对应的物理地址是多少?物理地址:CPU对物理的存储器系统访问时,通过地址线给出在1M字节地址空间里每一个存储单元的唯一 20位地址,称为该存储单元的物理地址。逻辑地址:编程结构里使用的地址。22345H2.12 8086CPU最大模式最小模式有什么区别?为什么设置不同的模式?当组成简单的微型计算机时,8086CPU处于一种最小结构,为最小模式;当组成复杂的微型计算机系统时,8086处于一种最大结构,称为最大模式。

8、原因:适用于不同环境下使用的微型计算机系统。2.1 3 什么是时钟周期、总线周期、指令周期?它们有什么关系?时钟周期:时钟脉冲信号的一个周期时间叫一个时钟周期总线周期:经外部总线执行信息的输入/输出过程指令周期:执行一条指令所需要的时间指令周期包含总线周期,总线周期包含时钟周期。第三章Pentium系列微处理器的基本结构课后答案:3.3 Pentium 的寄存器组包括哪些类型的寄存器?简要说明基本结构寄存器、系统级寄存器的用途是什么?答:Pentium微处理器的寄存器组主要包括以下儿个部分:基本结构寄存器、系统级寄存器。调试寄存器。模型专用寄存器和浮点寄存器。Pentium微处理器有16个基本

9、机构寄存器,这16个寄存器按其用途可分为通用寄存器、专用寄存器和段寄存器三类。通用寄存器有8个,即累加器EAX、机制寄存器EBX、计数寄存器ECX、数据寄存器EDX、堆栈指针ESP、基址指针EBP、源编制寄存器ESI以及目的变址寄存器EDL通用寄存器中,3 2位 寄 存 器EAX、EBX、ECX、EDX、EBP、ESP、ESI和E D I,他们既可保存算术和逻辑运算中的操作数,也可保存地址。专用寄存器有指令指针指示器和标志寄存器。指令指针EIP是32位寄存器,他 的 低16位成为IP,用与兼容16位C PU,其内容是下一条要取入CPU的指令在内存中的偏移地址。标志寄存器EFLAGS是32位寄存

10、器,可分为三类:状态标志,控制标志和系统标志。段寄存器有两部分。一部分是编程可见的6个16位选择符寄存器,即8086、80286处理器中有CS、DS、ES、SS四个段寄存器,80386以上的处理器中增添了 FS和GS两个段寄存器。在80286以上的处理器中,每一个段寄存器都有一个与之相对应的段描述符寄存器,用来描述一个段的段基地址、段限和段的属性。系统级寄存器包括四个系统地址寄存器,用与控制分段存储器管理中数据结构的位置,所以也成为存储管理寄存器。Pentium用这四个寄存器保存保护方式下时常使用的数据结构的基地址,界限以及相关属性保护起来,以便快速访问。Pentium微处理器由于控制管理的需

11、要,又配备了。心0吊CR2CR3和CR,控制寄存器,在这五个控制寄存器中保存着全局性和任务无关的机器状态。3.4 说明寄存器EAX、AX、AH、A L之间的关系。答:累加器EAX既可以保存算术和逻辑运算的操作数,也可以保存地址。它的名称来源于8086处理机的通用寄存器A X,所以,EAX的 低16位可按原来的名字访问。16位寄存器AX每个字节均有另一个名字,字节寄存器命名为AH(高字节)和AL(低字节),这 些8位通用寄存器也可以按原来的名字访问。3.5 IP/EIP寄存器的用途是什么?答:指令指针EIP是32位寄存器,它 的 低16位称为I P,用与兼容16位CPU,其内容是下一条要取入CP

12、U的指令在内存中的偏移地址。当一个程序开始运行时。系统把EIP清零,每取入一条指令,E IP自动增加取入CPU的字节数目,所以称EIP为指令指针。3.7 Pentium段寄存器由哪几部分构成?与 8086段寄存器有什么区别?答:段寄存器由两部分,一部分是编程课件的6 个 16位选择符寄存器,即8086、80286处理器中有CS、DS、ES、SS四个段寄存器,80386以上的处理器中增添了 FS和 GS两个段寄存器。对应在另一部分的、是编程不可见的6 个 64位的描述符寄存器。在 80286以上的处理器中,每一个段寄存器都有一个与之相对应的段描述符寄存器,用来描述一个短的段基地址、段限和段的属性

13、。3.9 Pentium有那几个系统地址寄存器?为什么设置这些寄存器?答:由于系统存储管理的需要,Pentium有4 个系统地址寄存器,用与控制分段存储器管理中数据结构的位置,所以也称为存储管理寄存器。他们分别是全局描述符表寄存器G D TR,中断描述符表寄存器ID TR,局部描述符表寄存器LDTR和任务状态寄存器TR。Pentium微处理器用这四个寄存器保存保护方式下市场使用的数据结构的基地址、界限以及相关属性保护起来,以便快速访问。3.10 说明 Pentium 引脚 A D S.B R D Y、届 密、CACHE、KEN y 丽的作用。答:ADS:地址选通,有效时表示CPU启动1个总线周

14、期,T1有效BE7-BE0:字节允许,对应每个字节,由地址A2-A0产生。BRDY:突发就绪,类似Ready,结束一个总线周期,此时外设准备好,将进入总线流水,可用于确定受否插入等待状态。Cache:Cache控制,指示目前处于Cache周期。KEN:Cache允许,有效时,指示进入突发读周期,将外部数据复制到内部Cache oNA:下,地址有效,用于支持地址流水线操作。采样到NA有效的两个时钟周期后,CPU可送出新地址。3.11 说明INIT、RESERT信号的作用。设置INIT的目的是什么?Pentium复位后从什么位置开始执行程序?答:INIT:初始化,热复位,与 RESET类似,不清0

15、 Cache、浮点寄存器。RESET:复位,冷复位,1)实地址方式;2)A31-A20为FFFH(12个),3)CS=F000H,EIP=0000FFF0H;4)清 0 Cache和浮点寄存器;5)清0 相关寄存器。Pentium复位后从内存OFFFFFFFOH处开始执行软件。3.12 Pentium总线操作有几种时钟状态?-2、T 2 P、丁。与一般的始终状态有什么区别?答:Pentium微处理器总线操作有6 中时钟状态:Ti、T l、T2、T12、T2p、TD。T12:表示总线上有两个进行的总线周期,在第一个周期传输数据中启动了第二个总线周期。T12对于第一个总线周期是T 2,对于第二个总

16、线周期是T1。T2p:表示总线上有两个进行的总线周期,两个总线周期都处于T 2 或后续的时钟状态。TD:示总线上有一个在进行的总线周期。这个总线周期的地址和状态信息在前 面 T 12时钟送上总线,但由于从读操作到写操作,或者从写操作到读操作要一个时钟的缓冲,或者前一个总线周期的操作占用了数据线和BRDY,使得数据和BRDY信号不能再第二个周期在T 1之后的时钟状态进入T 2,这时插入一个时钟状态TD。3.16 说 明Pentium实地址模式的特点。8086的工作模式、Pentium是地址模式、Pentium虚 拟8086模式之间的异同?答:Pentium实地址模式特点:能有效地使用8086所没

17、有的寻址方式、32位寄存器和大部分指令。实地址方式,Pentium与8086兼容,基本体系结构相同。虚 拟8086方式与实地址方式的不同:1)虚 拟8086方式是一个程序的运行方式。2)实地址方式是处理器的工作方式。3.17 说 明Pentium保护虚拟地址模式特点。为什么引入保护机制?有几个特权级?答:在保护方式下,逻辑地址由选择符和偏移地址两部分组成,选择符存放在段寄存器中,但它不能直接表示段基地址,而由操作系统通过一定的方法取得段基地址,再和偏移地址相加,从而求得所选存储单元的物理地址。在程序运行过程中,应防止应用程序破坏系统程序、某一应用程序破坏其他应用程序、错误地把数据当做程序运行等

18、情形的出现。为避免出现这些情形,采取的保护机制。Pentium微处理器有多种保护方式,其中最突出的是环保护方式。环保护是在用户程序与用户程序之间、用户程序与操作系统之间实行隔离,通过特权级实现。特权级:4级,0 3(高 低),0级分配给操作系统核心。第四章4.2DRAM的特点:动 态 RAM是利用电容存储电荷的原理来保存信息的。运行中需要不断刷新,单片存储容量高刷新:将存储单元的内容重新按原值设置一遍,而不是将所有单元都清零为什么要刷新:因为读/写操作本身是随机的,有可能某些存储单元长期得不到访问,无读出就无重写,原信息会丢失。所以必须采用定时刷新的方法。刷新的方法:利用动态RAM控制器来实现

19、刷新的问题;在每个动态RAM芯片上设置刷新逻辑电路4.3SRAM的特点:SRAM是用触发器存储信息,因此即使信息读出后,它仍保持其原状态。但电源掉电时,原存信息丢失,故它属易失性半导体存储器。运行中不需要刷新,速度快,功耗大当微型计算机系统的存储器容量较小时宜采用SRAM芯片而不宜采用DRAM芯片4.4SRAM的引脚类型:地址信号输入引脚、双向数据输入/输出信号引脚、输出允许信号、读/写控制信号输入引脚8K*8存储器芯片有8根数据线,1 3根地址线4.5只读存储器的类型:掩 膜R O M:适合于批量生产和使用可编程的只读存储器(P R O M):只能实现一次编程不可修改可擦除、可编程的只读存储

20、器(EP R O M):长期保存信息,可多次擦除和重新编程电可擦除的可编程只读存储器(EEP R O M):用加电的方法进行在线的擦除和编程,长期保存数据快速擦写存储器:整片擦除,擦除、重写的速度快存储什么类型的信息适合使用只读存储器:常用来保存固定的程序或数据4.6由于多个芯片连接需要选择,片选是C P U高位地址选择存储器芯片4.7总线驱动能力时序配合数据线的连接地址线的连接读写控制线的连接R O M与R A M在存储器中的地址分配对多种宽度数据访问的支持4.8高位地址信号(片选)最低位地址信号(体选)低位地址信号(自选)4.9R A M存放临时数据和当前的应用软件,非易失的R O M存放

21、核心系统软件。80 X 86微处理机复位后从物理地址高端开始运行,所以总是在物理地址空间的高地址位置使用只读存储器R O M。4.1 1(题目有问题。今天问过您了4.1 3当访问的数据是一个对准数据时,-个总线周期可以完成读写,如果访问的数据不是对准的数据时,要通过两个总线周期完成读写过程,因此编程时应当应尽量使数据对准存放。4.1 4高速缓存:弥补主存速度,在C P U与主存之间设置的高速、小容量的存储器,构 成C a c h e-主存存储层次,速度是C a c h e的,容量是主存的。主存速度不够f引出C a c h e不可以取代主存,此时引出虚拟存储器4.1 5C P U 访问存储器是通

22、过主存地址进行的。首先进行主存与C a c h e 的地址变换。变换成功(C a c h e 块命中),就得到C a c h e 块 号 n e b,并由n m r 直接送n c r 以拼接成n c,这样,C P U 就直接访问C a c h ea c h e 块未命中(C a c h e 块失效),就通过相关的C a c h e 表,查看有无空余的C a c h e 块空间,当有空余的C a c h e 块空间,就从多字节通路把所需信息所在的一块调入C a c h e,同时把被访问的内容直接送给C P UC a c h e 中无空余空间,就需根据一定的块替换算法,把 C a c h e 中一

23、块送回主存,再把所需信息从主存送入C a c h e.4.1 7从 C a c h e 的地址和主存的地址可以看出,C a c h e 的容量远远小于主存,一个C a c h e 块要对应许多主存块,因此需要按某种规则把主存块装入C a c h e 中全相联映像:主存中的任意一块可装入C a c h e 中的任意块称为全相联映像。在 C a c h e 内,除了必须存放这每一个数据块的内容外,同时还需将每一块的主存储器地址全部记下,每当微处理器要存取一项数据时,C a c h e 的地址映像变换机构将该项数据的地址与存在C a c h e 的标记部分中的所有地址逐个相比,若找到相同的,即将那个

24、C a c h e 位置的内容送给微处理器。直接映像:主存中每一块只能装入到C a c h e 中唯一的特定块位置的方法称为直接映像主存空间按C a c h e 大小等分成区,每区内的各块与C a c h e 的块一一对应,主存地址中直接产生 C a c h e 地址,标志表中比较区号,标志表存储器按地址访问。N路组相联映像:把 C a c h e 增加到N路,且在主存的区与C a c h e 的路之间实行全相联映像,在块之间实行直接映像主存地址中直接产生C a c h e 地 址(2 路对应地址相同),同时比较各路对应块标记4.1 8当新的一块数据装入C a c h e 时,原存储的一块数据

25、必须被替换掉,对于全相联映像和N路组相联映像技术需要种替换算法,为了获得高速度,这种算法必须由硬件实现。最常用的有以下3 种算法:近期最少使用(L R U)算法:每行设置个计数器,C a c h e 每命中一次,命中块计数器清零,其他个块计数器增1,当需要替换时,比较各特定块的计数值,将计数值最大的行换出。最不经常使用(L F U)算法:每块设置个计数器,新块建立后从0开始计数,每访问一次,被访问块的计数器增1,当需要替换时,对这些特定块的计数值进行比较,将计数值最小的块换出,同时将这些特定块的计数器都清零。随机替换:从特定的块位置中随机地选取一块换出即可。第五章作业5.1 设 D S=3 0

26、 0 0 H,S S=2 0 0 0 H,A X=2 A 2 B H,B X=1 2 0 0 H,C X=8 8 9A H,B P=1 2 0 0 H,S P=1 3 5 2 H,S I=1 3 5 4 H,(3 1 3 5 0 H)=3 5 H,(3 1 3 5 1 H)=0 3 C H,(3 1 3 5 2 H)=8 F H,(3 1 3 5 3 H)=8 6 H,(3 1 3 5 4 H)=5 2 H,(3 1 3 5 5 H)=97 H,(3 2 6 A 4)=98 H,(3 2 6 A 5 H)=8 6 H,(2 3 1 5 0 H)=8 8 H,(2 3 1 5 1 H)=3 1

27、H,(2 3 1 52 H)=99H(2 3 1 5 3 H)=7 7 H答:下列指令在上述环境下执行,请填空;(1)M O V A X,1 3 5 2 H ;A X=1 3 5 2 H(2)(3)M O V A X ,1 3 5 2 H ;A X=8 6 8 F HM O V 0 1 5 0 H B X ,C H ;(3 1 3 5 0 H)=8 8 H (3 1 3 5 1 H)=0 3 C H(4)(5)(6)M O V A XP O P A)A D D S I,0 1 5 0 H B P ;A X=3 1 8 8 H:;A X=7 7 99H ,S P=1 3 5 4 H,C X ;(

28、3 1 3 5 4 H)=E C H ,(3 1 3 5 5 H)=1 F H ,S F=0,ZF=(7)0 ,P F=S U B B H0 ,C F=1,O F=1,0 1 5 0 H B X S I ;B H=7 A H ,S F=0,ZF=(8)0 ,P F=I N C0 ,C F=1,0 F=0B Y T E P T R 0 1 5 2 H B X ;(3 1 3 5 2 H)=90 H,(3 1 3 5 3 H)=8 6 HC F=(9)不变I N CW O R D P T R 0 1 5 2 H B X ;(3 1 3 5 2 H)=90 H,(3 1 3 5 3 H)=8 6 H

29、 ,CF=不变5.2阅读下列程序段填空(1)M O VM O VB LA LA LB L=,98 H,2 9H,B L答:A L=A D DD A A2 7 H98 H C F=1(2)M O VA X,B XN O TA XA D DA X,B XI N CA X答:/X=O O O O HC F=0(3)M O VA X,0 F E 6 0 HS T CM O CC X,98X O RC H,O F F HS B BA X,C X答:A X=O F E F E H C F=1(4)M O VD X ,O F F E E HM O VC L,2X A RD X,C L答:D X=F F F

30、B HC F=15.3试指出下列指令中源操作数的寻址方式(1)A D CC X ,3 5 B X S I M O VA X ,3 3 0 0 H A N DB X ,B X(4)I N C W O R DP T R B X M O VE A X ,E B X E S I 答案:L相对基址变址寻址2 .直接寻址3 .寄存器间接寻址4 .寄存器间接寻址5 .基址变址寻址5.4按下列题意要求分别为每一小题写出相应的汇编语言指令(1)以寄存器BX和SI作为基址变址寻址方式把存储器的一个字传送到C X寄存器(2)以寄存器B X和位移量2 5 H作为寄存器相对寻址方式把存储器的一个子和A X相加,把结果送

31、回那个字单元中(3)将一个字节立即数0 B 6 H与偏移地址为8 6 7 H的存储器字节单元内容相比较(4)清除寄存器SI间接寻址的存储器字但愿,同时清零C F标志位答案:1.M O V C X,B X+S I 2.A D D B X+2 5 H ,A X3.C M P B Y T E P T R 8 6 7 H ,0 B 6 H4.A N D W O R D P T R S I ,05.5设X.Y.R.S.Z均 为16位无符号数的变量。按已给定的表达式Z (X+Y)/(R-S)-Z有程序如下,是在空格处填入适当的命令M O V A X,XM O V C X,RS U B C X,SM O V

32、M O VH L T答案:A D DM U LD I VZ,A XZ+2,D XA X,YZC X5.6解释P U S H D I指令是怎样工作的答案:(1)S P-S P T,调整 S P 指针。(2)将 D I 内容的高8 位压入堆栈指针S P 所指的存储单元。(3)S P-S P T,调整 S P 指针。(4)将 D I 内容的低8 位压入堆栈指针S P 所指的存储单元。5.7 P e n t i u m 在指令码中怎么区分数据是字(1 6 位)还是双字(3 2 位)?1 .通过指令操作码中的W 位来区分。2 .通过操作数大小前缀和段描述符中D/B 位联合区分。5.8 8 0 8 6 存

33、储单元寻址时,段的使用是怎么规定的?8 0 8 6 对 1 M 字节的主存空间,从 1 6 的倍数的地址开始(段的基地址),以最大6 4 K 字节为单位划分一些连续的区域,称为段。内存一般分为4 类逻辑段,分别称为代码段、数据段、堆栈段、附加段。存储器操作类型隐含段超越段段内偏移量取指令CS无IP堆栈操作SS无SP数据变量DSCS SS、ES有效地址EA源串变量DSCS、SS、ESSI目的串变量ES无DI基址BP指针SSCS、SS、ES有效地址EA5.9 子程序远返回和近返回的指令助记符都是R E T,怎么确定其为远返回还是近返回?远返回还是近返回要看子程序调用指令C A L L,如果在近类型

34、子程序中R E T是近返回,在远类型子程序中R E T 是远返回。5.1 0 8 0 8 6 中,中断指令和子程序调用指令有什么区别?设置中断指令有什么用途?子程序调用只需要保护断点,即该指令的下一条指令的地址(段内调用只保护I P,段间调用要保护C S和I P);中断指令不但要保护断点(即该指令的下条指令的C S和I P),还要保护标志寄存器F L A G S 设置中断指令用途是调用中断子程序。5.1 1 什么情况下使用串操作指令?使用串操作指令要设置哪些参数?在进行与数据块有关的操作时,可以使用串操作指令。使用串操作指令时,通常要设置几个寄存器参数,主要有:CX、S I、D I、D F o

35、第六章作业6.3 汇编伪指令的作用是什么?答:伪指令是在汇编源程序编译期间由汇编程序处理的操作,而不是像指令那样在程序运行期间由计算机来执行的,它们可以完成如处理器选择,定义程序模式,定义数据,分配存储区,指示程序结束等功能。6.4 一个汇编源程序一般应当包含哪些段?答:包含数据段,代码段,堆栈段,附加数据段。6.5 说明汇编语言中地址计数器的作用。答:用来记录当前指令在内存中的段内偏移值。6.6 什么是数据类型?数据类型是怎样定义的?答:DB,DD,DT,等是数据类型。数据类型是根据数据在存储是所占的字节数,数据的编码方式,数据的存储方式来定义不同的数据类型的。6.7 怎样定义子程序的类型?

36、不同类型的子程序,调用是用什么区别?答:通过指定子程序的类型属性(可以是NEAR或FAR)来定义子程序的类型。调用时:若过程是NEAR型,则CALL和RET指令就确定为NEAR属性;若过程是FAR型,则CALL和RET指令就确定为FAR属性;一般默认是NEAR型。6.8 变量和标号有哪些属性?这些属性是怎样规定的?答:变量的属性:1.段属性。该变量所在的段的段地址。2.偏移属性。该变量的偏移地址。3.类型属性。该变量一个数据的字节数。4.长度属性。该变量在数据区中的单元数。5.字节数属性。该变量在数据区中分配给该变量的字节数。标号的属性:1.段属性。标号所在的段的段地址。2.偏移属性。标号的偏

37、移地址。3.类型属性。指出该标号是在本段内引用还是在段内引用。6.9 假 设VAR12和VAR23是字变量,LAB为标号,试指出下列指令的错误之处:(l)ADD VARI2,VAR23;错,SUB AL,VAR 12;错,(3)JMP LAB DI;错,JNZ VAR12;错,操作数不能同时为存储器寻址操作数的长度不-致标号不能当做偏移量来用字变量不能当做标号来用6.10 对于下面的数据定义,各 条MOV指令单独执行后,有关寄存器的内容是什么?FLDB1DB?TABLEA2DW20 DUP(?)TABLEB3DBABCDTABLEA4DW10 DUP(?)TABLEB5DB20DUP(?)TA

38、BLEC6DB1234(1)MOV AX,TYPE FLDB1;(AX)=1(2)MOV AX,TYPE TABLEA2;(AX)=2(3)MOV CX,LENGTH TA.BLEA2;(CX)=20(4)MOV DX,SIZE TABLEA2;(DX)=40(5)MOV CX,LENGTH TABLEA3;(CX)=1(6)MOV AX,LENGTH TABLEA4;(AX)=10(7)MOV BL,LENGTH TABLEA5;(BL)=20(8)MOV CL,LENGTH TABLEA6;(CL)=16.1 2设已知语句为ORG 0024HDATA1 DW 4,12H,$+4则执行语句M

39、OVAX,DATAl+4后A X的值是多少?答:(AX)=0028Ho0024H04H0025HOOH0026H12H0027HOOH0028H28H0029HOOH第七章作业7 2 写统计A X 中 1、0 个数的源程序。1 的个数存入CHQ的个数存入CL。code segmentassume cs:codestart:MOV CX,0MOV DX,17SO:SUB DX,1JZ S3SHLAXJJNC S2INC CHJMP SOS2:INC CLJMP SOMOV CH,DHMOV CL,DLS3:MOVAX,4CHINT21HCODE ENDSEND START7.3编写比较两个字符串

40、STRING 1和 STRING2所含字符是否完全相同的源程序,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。data segmentstring 1 db das$fnl equ$-stringlstring2 db dass$n2 equ$-string2strl db 0AH,0DH:MATCH$str2 db OAH,ODH;NO MATCH$data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea si,string 1lea bx,string2mov cx,nlmov ax,

41、n2cmp ex,axjnz nextnextl:mov dxjbxxor dxjsijjnz nextinc siinc bxcmp byte ptrsi,$jnz nextllea dx,strlmov ah,09hint21hnext2:mov ah,4chint21hnext:lea dx,str2mov ah,09hint 21h jmp next2code endsend start7.4从键盘读入一个四位的十六进制数,CRT显示等值的二进制数.DATA SEGMENTSTRING 1 DB 0AH,0DH:not hexadecimal Please input afresh,O

42、AH,ODH,$;不是十六进缶U,请重新输入STRING2 DB 0AH,0DH,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXs4:MOV BX,0;用于存放四位的16进制数MOV CH,4MOV CL,4SO:SHL BX,CL;将前面输入的数左移4 位MOV AH,1 ;从键盘取数INT 21HCMPAL,30H;0 吗?JS SI;不是,。F 的数重新输入CMP AL,39H;是 0 9 吗?JA S3;不是,转,A F的处AND AL,0FH;转换为:0000B 1001BJMP S2S3:

43、AND AL,110H1 OB;转换为大写字母CMPAL,41H;又F 吗?JA SI;不是A F 的数重新输入ANDAL,0FH;转换为:1010B-1111BADD AL,9S2:OR BL,AL;将键盘输入的数进行组合DEC CHJNZ SODISPN:MOV CX,16;将16位二进制数一位位地转换成ASCII码显示lea DX,STRING2MOV AH,09INT21HDISP:MOV DL,0ROL BX,1RCL DL,1OR DL,30HMOV AH,2;进行显示INT 21HLOOP DISPMOVAH,4CHINT21HSI:lea DX,STRING 1JMP INPU

44、TINPUT:MOV AH,09INT21HJMP S4CODEENDSEND START7.5 设 从 STRING开始存放一个以$为结束标志的字符串,试编写把字符串中的字符进行分类的源程序,数字字符送入NUM开始的内存中,大写字母送入BCHAR开始的内存区中,小写字母存入LCHAR开始的内存中,其他字符存入OTHER开始的内存区中。DATA SEGMENTSTRING DB abcl 23ABe%?$N EQU$-STRINGNUM DB N DUP(?)BCHAR DB N DUP(?)LCHAR DB N DUP(?)OTHER DB N DUP(?)DATA ENDSCODE SEG

45、MENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,STRINGDEC BXLEASRBCHARLEA CX,LCHARLEA DX,OTHERLEA SI,NUMAA1:INC BXMOVALJBX;判断是否为$,是否结束CMP AL,$JZAA5CMPAL,30H;判定数字字符JC AA4CMPAL,39HJAAA2MOV SI,ALINC SIJMPAA1AA2:CMPAL,41H;判定大写字母JC AA4CMP AL,5 AHJAAA3MOV DI,SPMOV DI,ALINC SPJMPAA1AA3:CMPAL,61H

46、;判定小写字母JC AA4CMP AL,7 AHJA AA4MOV DI,CXMOV DI,ALINC CXJMPAA1AA4:MOV DI,DX;判定其他MOV DI,ALINC DXJMPAA1AA5:MOVAH,4CH;返回D O S结束INT21HCODE ENDSEND START7.6试编写找出首地址为BUF数据块中的最小偶数(该数据块中有100个带符号字节数),并以十六进制的形式显示在CRT上的源程序。DATA SEGMENTBUF DB 100 DUP(?);要比较的数DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATaSTART:MOV AX

47、,DATAMOV DS,AXLEA BX,BUF;BUF 首地址送 BXMOV CL,101;循环控制CODE ENDSMOVMOVDLJ26AH,0;DL存放最小偶数;标志是不是有偶数LOOP1:DECCL;循环计数减1JZTOEND;ZF标志0 则跳转MOVALJBX;B X 内存内容送ALINCBX;BX 指向下一内存单元SHRAL,1;AL逻辑右移一位JCLOOP1;是奇数则接着循环SHLAL,1;是偶数,因为上面右移了左移得到原数值MOVAH,1;能进行这一步则说明数值中有偶数CMPAL,DL;与 C H 比较大小JGELOOP1;AL大 D L小则循环MOVDL,AL;保 证 DL

48、存放最小偶数JMPLOOP1;CL不为0 继续循环TOEND:CMPAH,1JCL;有借位则说明数值中无偶数直接返DOSMOVBL,DLSHRDLJSHRDL,1SHRDL,1SHRDLJANDDL,0FHCMPDL,10JBL4ADDDL,7L4:ADDDL,30H;显示高四位对应的十六进制的ascii码MOVAH,2INT 21HMOVDL,BLANDDL,0FHCMPDL,IOJBL6ADDDLJL6:ADDDL,30H;显示低四位对应的十六进制的ascii码MOVAH,2INT21HMOVDL,H;显示HMOVAH,2INT21HL:MOVAH,4CH;返回DOSINT21HEND S

49、TART7.8试编写由键盘输入一个以回车作为结束的字符串,将其按ASCII码由大到小的顺序输入到 CRT上的源程序。DATA SEGMENTBUF DB 100 DUP(?)DATA ENDSCODE SEGMENT;代码段 ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,0;记录输入的字符串个数MOV BX,OFFSET BUFAA1:MOVAH,1;键盘输入字符INT21HCMPDI,101;是否超出缓冲区JNCAA6;超过缓冲区大小CMPAL,0DH;是否为回车,回车表输入结束JZAA6;是回车MOVBX,AL;将字符存入缓冲

50、区INCBXINCDIJMPAA1AA6:MOV DX,DICMPDL0;没有字符则无输出JZAA7CMPDL1;有-个字符则直接输出JZAA8DECDX;外循环计数初值,即遍数,数据个数减1AA2:MOV BX,OFFSET BUFMOVCX,DIDECe x;内循环计数初值,即比较次数,数据个数减AA3:MOV ALJBXCMPALIBX+1;比较JNCAA4;前大后小转XCHGALJBX+1;前小后大交换MOVBXJ,ALAA4:INC BXLOOPAA3DECDXJNZAA2AA8:MOV BX,OFFSET BUF;输出字符MOV CX,DI;循环计数初值AA5:MOV DLJBXM

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁