首页 微型计算机原理及应用

微型计算机原理及应用

举报
开通vip

微型计算机原理及应用《微型计算机原理及应用》 《微型计算机原理及应用》 课程辅导材料(习题解答) 马义德 张在峰 徐光柱 袁敏 李柏年编 兰州大学信息科学与工程学院 目 录 第1章​ 微型计算机发展概述..........................……..................…...................................................................1 第1章​ 8086/8088 16位微处理器..........….......................

微型计算机原理及应用
《微型计算机原理及应用》 《微型计算机原理及应用》 课程辅导材料(习 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 解答) 马义德 张在峰 徐光柱 袁敏 李柏年编 兰州大学信息科学与工程学院 目 录 第1章​ 微型计算机发展概述..........................……..................…...................................................................1 第1章​ 8086/8088 16位微处理器..........…....................….............................................……..…2 第1章​ 存储器技术...............................……………...................................................................….6 第四章 指令与寻址方式.....................................………..................................................................................10 第五章 汇编语言程序设计................….........………................…........................................................…....17 第六章 输入输出处理方法.....................………........................................................................................….41 第七章 微型计算机综合应用与发展......……………................................................................................41 第一章 微型计算机的发展概述习题解答 1.​ 从第一代计算机第四代计算机体系结构都是相同的,都是由运算器、控制器、存储器以及输入输出组成的、这种体系结构称为什么体系结构? 答:冯`诺依曼体系结构。 1.​ 一个完整的计算机系统通常包括系统软件和应用软件、硬件系统和软件系统、计算机及其外部设备、系统硬件和系统软件这四种组合中的哪一种? 答:硬件系统和软件系统。 1.​ 通常我们所说的32位机,指的是这种计算机CPU是什么样的? 答:总线的数据宽度为32位。 1.​ 若某台微型计算机的型号是486/25,则其中25 的含义是什么? 答:25的含义是运算速度是25MB/s。 1.​ 操作系统是计算机发展到第几代出现的? 答:操作系统是计算机发展到第三代期间出现的。 1.​ 决定微机性能的主要是CPU、总线、I/O接口电路的处理速度、价格、耗电量还是质量? 答:CPU、总线和I/O接口电路的处理速度。 1.​ 现代计算机之所以能自动地连续进行数据处理,主要是它有什么功能? 答:它有程序计数器和指令寄存器。 1.​ 微机的主要性能指标有哪些? 答:主要有CPU的处理速度,总线的数据宽度,内存数据宽度,带外设的能力等。 1.​ 有些高级语言程序在计算机中执行时,采用的是解释方式。源程序由哪一种程序边翻译边执行? 答:解释程序。 10.在计算机中为什么要使用局部总线?什么是PCI总线?它和AGP总线有什么区别? 答:局部总线是在ISA总线和CPU总线之间增加了一级总线,这样可将一些高速外设从ISA总线上卸下来,而通过局部总线直接挂到CPU总线上,使之与高速的CPU相匹配。 PCI总线时钟为33MHz,总线数据宽度为32位,并可扩展为64位,具有高速的数据通道,是一种局部总线。 AGP总线的时钟为66MHz,传输速率也比PCI快,为264 MB/s。目前,AGP总线时钟发展到4X66MHZ。 第二章 8086/8088 16位微处理器习题解答 1.​ 试说明8086/8088CPU中有哪些寄存器?各有哪些用途? 答:寄存器组有(1)数据寄存器,含AX、BX、CX、DX四个通用寄存器,用来暂时存放计算过程中所遇到的操作数,结果和其它信息。(2)指针及变址寄存器,含SP、BP、SI、DI四个十六位寄存器,它们可以像寄存器一样在运算过程中存放操作数只能以字为单位使用。还用来在段内寻址时提供偏移地址。(3)段寄存器,含CS、DS、SS、ES,用来专门存放段地址。(4)控制寄存器,包括IP和PSW两个16为寄存器。IP是指令指针寄存器,用来存放代码段中的偏移地址。 PSW为程序状态字寄存器,由条件码标志和控制标志构成。条件码标志用来纪录程序运行结果的状态信息。包括OF、SF、ZF、CF、AF、PF。控制标志位有三个寄存器DF、IF、TF组成。 1.​ 是说明8086/8088CPU中标志位寄存器中各标志位的意义? 答:OF溢出标志,在运算过程中,如操作数超出了机器能 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示的范围则置1,否则置0。SF符号标志,运算结果为负时置1,否则置0。 ZF零标志,运算结果为0置1,否则置0 。 CF进位标志,记录运算是最高有效位产生的进位。 AF辅助进位标志,记录第三位的进位情况。 PF奇偶标志位,用来为机器中传送信息时可能产生的出错情况提供检验条件,当结果操作数中的1的个数为偶时置1。 DF方向标志位,在串处理指令中控制处理信息的方向。当DF=1时,每次操作后变址寄存器减量,这样就使串处理从高地址向低地址方向处理。IF中断标志,当IF=1时,允许中断,否则间断中断。TF陷阱标志,用于单步操作方式,当TF为1时,每条指令执行完后产生陷阱,由系统控制计算机。当TF为0时,CPU正常工作不产生陷阱。 3.哪些操作只能隐含使用某个段寄存器,而不能用其它段寄存器代替?哪些操作出隐含使用某个段寄存器外,还可以使用其它段寄存器? 答:计算程序的地址隐含使用CS,正在执行的程序隐含使用SS,而数据的地址隐含使用ES和DS。 4.8086/8088系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的? 答:由段地址和偏移地址两部分构成。 5.设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示: (1)​ 1234H:___H (1)​ ____H:0345H 答:(1)1234H:05H (2) 1200H:0345H 6.假设某程序执行过程中,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部物理地址是多少? 答:(SS)*10H+(SP)=09564H 7.设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。 答:物理地址为:3E4B0H, SP的初始值为200H,指向的物理地址为:3E6B1H.。 8.设某用户程序(SS)=0925H,SP=30H,(AX)=1234H,(DX)=5678H,问堆栈的地址范围是多少?如现有两条进展指令: PUSH AX PUSH DS 试问两指令执行后,(SP)=? 答:寻址范围:09250H~09280H,SP减4为2CH。 9.8086CPU与 8088CPU由哪些相同之处?又有哪些区别? 答:他们内结构基本相同,不同之处仅在于8088有8条外部数据总线,因此为准16位。 8088有16条外部数据总线,两个CPU的软件完全兼容,程序的编制也完全相同。 10.8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么? 答:8086CPU从功能上分外两大部分,一是执行部件(EU),二是总线接口部件(BIU)。 执行部件是由以下四部分组成:(1)4个通用寄存器AX,BX,CX,DX。(2)4个专用寄存器BP,SP,XI,DI。(3)标志寄存器FR。(4)算术逻辑部件ALU。功能是负责执行所以的指令,向总线接口部件(BIU)提供指令执行的结果数据和地址,并对通用寄存器和标志寄存器进行管理。 总线接口部件(BIU)由以下部件组成:(1)四个段寄存器,代码段寄存器,数据段寄存器,附加段寄存器,堆栈段寄存器。(2)指令指针寄存器。(3)地址加法器。(4)指令领队列。功能:执行外部总线周期,负责存储器与I/O端口传送数据。也就是负责CPU与存储器和外设之间的信息交换。 12.8086系统中的物理地址是如何的得到的?假如CS=2000H,IP=2100H,其物理地址是多少? 答:8086系统的物理地址是将段地址乘10H,加上偏移地址。 2000H*10H+2100H=22100H (物理地址) 13 什么叫总线周期?一个总线周期包括多少时钟周期,什么情况下要插入TW等待周期?插入多少个TW取决于什么因素? 答:CPU把总线接口部件BIU完成一次访问存储器或外设操作所需要的时间称为一个总线周期,它包括了四个时钟周期。 当访问存储器或外设时,存储器或外设不能及时配合CPU传输数据时,存储器或外设通过“READY”信号在T3之前向CPU发出一个“数据未准备好”信号,CPU会在T3之前插入一个或多个等待时间周期。当存储器或外设准备好数据,通过“READY”发“准备好”信号,CPU接受此信号后,会自动脱离 TW状态进入T4状态。因此,插入多少个TW由“READY”信号决定。 14 什么是最大模式?什么是最小模式?用什么方法将8086/8088置于最大模式和最小模式? 答:最小模式,即系统中只有一个微处理器,所有的总线控制信号都直接由8086/8088,因此,系统总线控制电路被减到最小。 最大模式,即系统里包括两个或多个微处理器,主处理器就是8086/8088,其它均为协助主处理器工作的协处理器。它主要用于中等规模或大型的8086/8088系统中。 将8086/8088的第33脚接地时,系统处于最大模式,接+5V时,为最小模式 15 什么是地址锁存器?8086/8088系统中为什么要用地址锁存器?锁存的是什么信息? 答:地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。 16 8086/8088系统中的8286是什么器件?起什么作用? 答:8286为总线驱动器(收发器,双向数据缓冲器),当一个系统中所含外设接口较多时,用来增强数据总线的驱动能力。 17 8086/8088系统用的时钟发生器产生哪些信号? 答:时钟发生器8284A产生恒定的时钟信号(CLK),复位信号(RESET),准备就绪信号(READY)。 18 8086/8088的执行部件EU由多少个通用寄存器,多少个专用寄存器,几个标志寄存器和什么组成? 答:执行部件由以下几部分组成:1、四个通用寄存器 AX BX CX DX;2、四个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;3一个标志寄存器FR;4算术逻辑部件ALU。 19 8086/8088的指令队列长度分别为多少个字节? 答:8086的指针队列为6个字节,8088的指针队列有4个字节。 20 8086与8088的16位寄存器中,有多少个寄存器可拆分为8位寄存器使用。它们分别是什么?它们又被统称为什么? 答:在8086与8088的16位寄存器中,有四个寄存器可拆分为八位寄存器使用,它们分别是AX,BX,CX,DX。统称为通用寄存器。 21​ PU从主存取出一条指令并执行该指令的时间称( ),它通常用若干个( )来表示,而后者又包括若干个( )。 ①指令周期 ②机器周期 ③时钟周期 答:1-2-3 22 计算机时钟脉冲的频率称为什么?,其倒数又称为什么? 答:计算机的时钟脉冲频率称为时钟频率,即主频。其倒数为时钟周期。 21​ 计算机主频为8MHz,每个机器周期平均含两个时钟周期,每条指令平均有2.5个机器周期,则该机器的平均指令执行速度为多少MIPS? 答:该机器执行一条指令所用时间为:1/8*10-6*2*2.5=5/8*10-6t;平均指令执行速度为: 1/ (5/8)=1.6MIPS。 24 8086/8088的存储器可以寻址1MB的空间,在对I/O进行读写操作时,20位地址中只有哪些位是有效的?这样,I/O地址的寻址空间为多大? 答:在对I/O进行读写操作时,20位地址中只有A0-A15有效,I/O地址的寻址空间为216B。 25 指令队列的作用是什么? 答:指令队列存放内存中取下的将被执行的下一条或下几条指令,使CPU执行完一条指令就可立即执行下一条,提高CPU的效率。 26 8086CPU可访问的存储空间为1MB,实际上分为奇数存储体和偶数存储体两部分,对奇数存储体的选择信号是什么,对偶数存储体的选择信号是什么,对每个存储体单元的选择信号是什么? 答:奇数存储体的选择信号为BHE,偶数存储体的选择信号为A0。对每个存储体内存储单元的选择信号是READY。 27 8086有两种工作方式,即最小模式和最大模式,它由什么信号决定?最小模式的特点是什么?最大模式的特点是什么? 答:8086的两种工作模式由 信号决定。当接入+5V时,系统处于最小模式,只有一个微处理器,总线控制逻辑部件被减到最小。当接地时,系统处于最大模式,实现多处理器控制系统,主要应用于大中型系统。 28 当 =0, =0, =1时,CPU完成的操作是什么? 答:CPU完成一个对I/O设备端口的读操作。 29 8088与8086在软件上是否完全兼容? 答:8086/8088内部都采用16位字进行操作及存储器寻址。因此两者软件完全兼容。 第三章 存储器技术习题解答 1 半导体存储器从器件原理的角度可分为哪两种类型? 答:半导体存储器从器件原理角度分为ROM和RAM两种。 2 磁盘和磁带属于哪种类型的存储器? 答:磁盘和磁带同属于外存储器。 3 半导体静态RAM和半导体动态RAM分别靠什么原理存储信息? 答:静态RAM:用一个触发器电路作为1个Bit的基本存储单元,每个触发器能置位存储1,或复位存储0。 动态RAM:每Bit只需一个管子和一个电容,存放的信息是1还是0,决定于电容中是否储存电荷。 4 为保证动态RAM中的内容不消失,需要进行哪一步操作? 答:由于电容有漏放电现象,为保证RAM中的内容不消失,必须另外设计一种电路,定时(一般为2ms),使电容上泄放的电荷得到补充,即进行内存刷新。 5 存储器片内的地址译码有哪两种方式? 答:存储芯片内的地址译码有全地址译码和独立译码两种。 6 存储器是计算机系统的记忆设备,它主要用来存储哪些东西? 答:存储器用来存储地址、数据和程序。 7 存储字长和存取周期分别指什么? 答:存储字长是指存放在一个存储单元中的二进制代码个数。存取周期是指存储器进行连续读写操作所允许的最短时间间隔。 8 和外存相比,内存的特点有哪些? 答:和外存相比,内存的特点是容量小、速度快、成本高。 9 某计算机主存容量为2048KB,这里的2048KB表示多少个字节? 答:2048KB表示2048*1024个Byte,即2(11)*2(10)=2(21)个。 10 某计算机的主存为3KB,则内存地址寄存器需多少位就足够了? 答:主存为3KB,则地址线有12条,所以内存地址寄存器需12位。 11 若256KB的SRAM具有8条数据线,则它具有多少条地址线? 答:具有18条地址线。 12 计算机的内存可采用ROM、RAM、磁盘中的哪几种?EPROM指的又是什么? 主存和CPU之间增加高速缓存的目的是什么?采用虚拟存储器的目的是什么? 答:可采用ROM和RAM。EPROM指可编程并可擦除的ROM,兼有ROM和RAM的功能。由于主存储器的存/取时间比CPU慢一个数量级,从而严重影响了微型机的速度,而RAM线路的读写时间可与CPU的处理速度处于同一个数量级,因此在主存储器和CPU之间增加高速缓冲存储器Cache,以提高机器的速度。虚拟存储器的容量比实际物理上主存储器的容量大,软件可根据需要将所需的存储区域调入物理存储器,也可以提高处理速度。 13 某以8088为CPU的微型计算机内存RAM区为00000H~3FFFFH,若采用6264、 62256、2164或21256各需要多少片芯片? 答: 采用6264(8k*8bit)需要32片;采用62256(32k*8bit)需要8片;采用2164 (64k*1bit) 需要32片;采用21256 (256k*1bit)需要8片。 14 利用全地址译码将6264芯片接在8088的系统总线上,其所占地址范围为BE000H~BFFFFH,试画连接图。 解答:采用全地址译码连接图如下: 15 试利用6264芯片,在8088系统总线上实现00000H~03FFFH的内存区域,试画连接电路图。 解答:采用全地址译码。 16 叙述EPROM的编程过程,说明EEPROM的编程过程。 答: PROM的编程有两种方式,即标准编程和灵巧编程两种方式。标准编程的过程为:使Vcc为+5v ,Vpp加上+21v 。而后,加上要编程的单元地址,数据线加上要写入的数据,使CE保持低电平,OE为高电平。当上述信号稳定后,在PGM端加上50±5ms的负脉冲。这样就将一个字节的数据写到了相应的地址单元中。重复上述过程,即可将要写入的数据逐一写入相应的存储单元中。灵巧编程方式要比标准方式快5倍左右。当加上 Vcc= 5v, Vpp=21v 后,对一个写入地址,用1ms编程脉冲进行编程,接着进行校验,如不成功,再加1 ms编程脉冲。最多可进行15次,若15次仍不能将数据正确写入,则认为芯片本身已损坏。若某一单元用X次1 编程脉冲已正确写入,校验到这种情况后,立即对该单元加入4倍 X的编程覆盖脉冲,则认为该单元编程已完成。重复上述过程,将所有要写入的单元编程。将数据写入EEPROM有两种方式,即字节方式和自动页写入。在对EEPROM编程时,可以在线操作。 17 有2片6116,现欲将它们接到8088系统中去,其地址范围为40000H到40FFFH, 试画连接电路图。利用写入某数据并读出比较,若有错,则在DL中写入01H;若每个单元均对,则在DL写入EEH,试编写此 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 程序。 解答:连接电路图见下一页。 18 若用全地址译码将EPROM 2764(128或256)接在首地址为A0000H的内存区,试画出电路图。 解答:电路图如下: 19 第15题中,若8088的时钟频率为5MHz,6264芯片的读写时间均200 ns,试粗 略估计该芯片能否直接使用。 答:8088的时钟频率为5MHZ,则读写时间为200ns,与6264芯片的读写时间相同,若该芯片直接使用,容易出错。 17 连接电路图如下: 第四章 指令与寻址方式习题解答 1.试分别说明下列各指令中源操作数和目的操作数使用的寻址方式: (1)​ AND AX,0FFH (1)​ AND BL,[OFFH] (1)​ MOV DS,AX (1)​ CMP [SI],CX (1)​ MOV DS:[0FFH],CL (1)​ SUB [BP][SI],AH (1)​ ADC AX,0ABH[BX] (1)​ OR DX,-35[BX][DI] (1)​ PUSH DS (1)​ CMC 答: 目的操作数 源操作数 (1)寄存器直接寻址 立即数寻址 (2)寄存器直接寻址 直接寻址 (3)寄存器直接寻址 寄存器直接寻址 (4)寄存器间接寻址 寄存器直接寻址 (5)直接寻址 寄存器直接寻址 (6)基址变址寻址 寄存器直接寻址 (7)寄存器直接寻址 寄存器相对寻址 (8)寄存器直接寻址 基址变址相对寻址 (9)无 寄存器直接寻址 (10)隐含寻址 2.试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。 (1)​ MOV [BX][BP],AX (1)​ TEST [BP],BL (1)​ ADD SI,ABH (1)​ AND DH,DL (1)​ CMP CL,1234H (1)​ SHR [BX][DI],3 (1)​ NOT CX,AX (1)​ LEA DS,35[SI] (1)​ INC CX,1 (1)​ PUSH 45[DI] 答:(1)应将BP,BX其中之一该为SI或DI (2)正确 (3)ABH改为0ABH (4) (5)是字操作,CL改为CX (6)移位数大于1时,应用CL (7)NOT指令只有一个操作数 (8)LEA指令的源操作数应为一内存单元地址 (9)此指令不用指出1 (10)45改为45H 3.下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态? MOV DL,86 ADD DL,0AAH 答: 0101,0110 + 1010,1010 = 1,0000,0000 CF=1 AF=1 ZF=1 SF=1 OF=1 4.在8086/8088CPU中可用于作地址指针的寄存器有哪些? 答:有BX,CX,DX,BP,SI,DI (IP,SP,) 5.已知(DS)=09lDH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。下列各指令或程序段分别执行后的结果如何? (1)​ MOV CL,20H[BX][SI] (1)​ MOV [BP][DI],CX (1)​ LEA BX,20H[BX][SI] MOV AX,2[BX] (1)​ LDS SI,[BX][DI] MOV [SI],BX (1)​ XCHG CX,32H[BX] XCHG 20H[BX][SI],AX 答(1) (CX)=56F6H; (2) (09226H)=5678H; (3) (AX)=1E40H; (4) (1E4F6H)=0024H; (5) (09226H)=1234H,(AX)=5678H. 6.已知(SS)=09l 5H,(DS)=0930H,(SI)=0A0H,(DI)=1C0H,(BX)=80H,(BP)=470H。现有一指令“MOV AX,OPRD”,如源操作数的物理地址为095C0H,试用四种不同寻址方式改写此指令(要求上述每个已知条件至少要使用一次)。 答:(1)MOV AX,[BP] (2)MOV AX,[BP+DI+80H] (3)MOV AX,[DI+0100H] MOV AX,[SI+0220H] (4)MOV AX,[02C0H] 7.试按下列要求分别编制程序段: (1)​ 把标志寄存器中符号位SF置‘1’。 (1)​ 寄存器AL中高低四位互换。 (1)​ 由寄存器AX,BX组成一个32位带符号数(AX中存放高十六位),试求这个数的负数。 (1)​ 现有三个字节存储单元A,B,C。在不使用ADD和ADC指令的情况下, 实现(A)+(B)=>C。 (1)​ 用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1形成奇数)。 答:(1)MOV AH, 80H SAHF (2 ) MOV BL, 0FH AND BL, AL SAL 4 SHR 4 XOR AL, BL (3 ) MOV DX, 7FH SUB AX, DX MOV DX, 0FFH SUB DX, BX MOV BX, DX (4 ) MOV AH, FFH MOV BL, [B] SUB AH, BL MOV BH, [A] SUB BH, AH MOV [C], BH (5 ) MOV AX, CX NOT AX TEST 01H JNZ NEXT HLT NEXT: INC CX HLT 8.试给出下列各指令的机器目标代码: (1)​ MOV BL,12H[SI] (1)​ MOV 12H[SI],BL (1)​ SAL DX,1 (1)​ ADD 0ABH[BP][DI],1234H 答: (1) 10001010,11011111=8ADF; (2) 10001000,01011100=885C; (3) 11010001,11100010=D1E2; (4) 10000001,10000001=8181. 9.执行下列指令后: STR1 DW ‘AB’ STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT 寄存器CL的值是多少?寄存器AX的值是多少? 答:寄存器CL的值为12H,寄存器AX的值为4241H。 10.JMP FAR PTR ABCD(ABCD是符号地址)的转移方式是什么? 答:JMP FAT PTR ABCD 的转移方式是段间直接转移. 11.MOV AX,ES:[BX][SI]的源操作数的物理地址是多少(用CS、DS、ES、SS、BX、SI表示出即可)? 答 :MOV AX,ES:[BX] [SI]的源操作数的物理地址是[ES]×10H+[BX]+[SI]. 12.运算型指令的寻址和转移型指令的寻址,其不同点在什么地方? 答:运算型指令的寻址包括立即数寻址。寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址和基址加变址寻址方式。这些寻址方式中,CS,IP寄存器的内容不会发生变化。 转移型指令的寻址方式包括段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址。在后三种寻址方式中,CS,IP寄存器的内容发生改变。 13.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令”MOV AX,TABLE”和”LEA AX,TABLE”后,(AX)中的内容分别为多少? 答:执行MOV AX , TABLE后(AX)=1234H 执行LEA AX, TABLE 后 (AX)=0032. 14.当指令”SUB AX,BX”执行后,CF=1,说明最高有效位发生了什么现象?对无符号 数来说,操作结果发生了什么现象? 答:执行指令SUB AX,BX后,CF=1,说明最高位发生了借位对无符号来说,操作结果发生了溢出。 15.在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为 30H、6CH、0B8H,则转向地址LAB的值分别为多少? 答:转向地址LAB的值分别为: 1000×10H+2H+30H=10032H 1000×10H+2H+6CH=1006EH 1000×10H+2H+B8H=100BAH 16.下面两个语句的区别在什么地方: X1 EQU 1000H X2=1000H 答:“EQU”和“=”都可以作为赋值语句,但二者的区别是EQU伪操作中的表达式是不许重复定义的,而“=”伪操作则许重复定义。 17.调用指令CALL可进行哪四种调用? 答:调用指令CALL可进行段内直接调用,段内间接调用。段间直接调用。段间间接调用。 18.(AL)=9AH,(BL)=0BCH,当分别进行下列指令运算后,请写出标志位ZF、PF、CF、 SF的内容:( P8050) (1)​ ADD AL,BL (1)​ SUB AL,BL (1)​ AND AL,BL (1)​ OR AL,BL (1)​ XOR AL,BL 答:(1)ADD AL,BL 1 0 0 1 1 0 1 0 +)1 0 1 1 1 1 0 0 1,0 1 0 1 0 1 1 0 ∴ZF=0,PF=1 CF=1 SF=0 (2)SUB AL,BL 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 —)1 0 1 1 1 1 0 0 —〉 +)0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 ∴ ZF=0 PF=1 CF=1 SF=1 (3)AND AL,BL 1 0 0 1 1 0 1 0 AND)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=0 CF=0 SF=0 1 0 0 1 1 0 0 0 (4)OR AL,BL 1 0 0 1 1 0 1 0 OR)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=1 CF=0 SF=0 1 0 1 1 1 1 1 0 (5)XOR AL,BL 1 0 0 1 1 0 1 0 XOR)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=0 CF=0 SF=0 0 0 1 0 0 1 1 0 19.若(SP)=2800H,试用两种方法实现(SP)=27FEH. 答:方法一:执行一次PUSH指令 PUSH CX 方法二:执行一次PUSHF指令 20.试简述LES REG,SRC所完成的操作? 答:LES REG,SRC 是将SRC和SRC+1中的偏移量送到REG 寄存器,而将SRC+2和SRC+3中的段基址送ES段寄存器。 21.关系操作符EQ、NE、LT、GT、LE、GE计算的结果为逻辑值,试问0FFFFH代表 假,0代表真是否正确? 答:0FFFFH代表真。0表示结果为假。 22.堆栈存取操作是以字节为单位的.试分析当堆栈存入数据和从堆栈取出数据时SP 的变化? 答:当堆栈存入一个字时,(SP)<—SP—2 从堆栈中取出一个字时(SP)<—SP+2 23.试编写汇编程序段完成以下功能:将1000个字符的字符串从内存的BUFFER1搬 移到内存的BUFFER2中去。 解答 LEA SI,BUFFER1 LEA DI,BUFFER2 MOV CX,1000 CLD REP MOVSb 24.试编写汇编程序段完成以下功能:将数据段中100个字的数据块BLOCK1搬移到 同一个数据段的BLOCK2中去。 解答: LEA SI,BLOCK1 LEA DI,BLOCK2 MOV CX,100 CLD REP MOVSW 25.试编写汇编程序段完成以下功能:比较DEST和SOURCE中的500个字节,找出 第一个不相同的字节,如果找到,则将SOURCE中的这个数送AL中。 解答: CLD LEA DI,DEST LEA SI,SOURCE MOV CX,500 REPE CMPB JCXZ NEXT DEC SI MOV AL,BYTE PTR[SI] NEXT:HLT 26.试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区中, 有100个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。 解答:MOV BX,OFFSET BLOCK MOV AX,[BX] MOV CX,100 ADD BX,2 F0:CMP AX,[BX] JGE F1 MOV AX,BX F1:ADD BX,2 JCXZ NEXT JMP F0 MOV MAX,AX NEXT:HLT 27.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据 21H的物理地址是多少? 解答: 07H 21H <—原栈顶20100 存放数据21H的物理地址是200FFH 第五章 汇编语言程序设计习题解答 1. 指出下列指令的错误: (1)MOV AH,BX (2)MOV [BX],[SI] (3)MOV AX,[SI][DI] (4)MOV MYDAT[BX][SI],ES:AX (5)MOV BYTE PTR[BX],1000 (6)MOV BX,OFFSET MYDAT[SI] (7)MOV CS,AX 答:(1)MOV AH,BX AH 为八位,BX为16位 (2)MOV [BX],[SI] 两个操作数不能都是存储单元 (3)MOV AX,[SI][DI] 一个操作数中不能用两个变址寄存器 (4)MOV MYDAT [BX][SI],E8:AX ES ES 后应为一个变址寄存器,表示偏移量 (5)MOV BYTE PTR[BX],1000 BYTE 说明时BX进行字节操作。 而1000为字 (6)MOV BX,OFFSET MYDAT [SI] OFFSET 为取某个地址的偏移量,故后面不应用[SI],而应是一个符号地址。 (7)MOV 是数据寻址,不应用程序段寄存器CS. 2.下面哪些指令是非法的?(假设OPl,OP2是已经用DB定义的变量) (1)CMP l5,BX (2)CMP OPl,25 (3)CMP OPl,OP2 (4)CMP AX,OPl 答:(1) CMP 15,BX 非法,两个操作数不能一个为字,一个为字节 (2)CMP OP1,25 正确 (3)CMP OP1,OP2 正确 (4)CMP AX,OP1 非法,两操作数不能一个为字,一个为字节 3.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么? (1)MOV BP,AL (2)MOV WORD_OP[BX+4*3][DI],SP (3)MOV WORD_OPl,WORD_OP2 (4)MOV AX,WORD_OPl[DX] (5)MOV SAVE_WORD,DS (6)MOV SP,SS:DATA_WORD[BX][SI] (7)MOV [BX][SI],2 (8)MOV AX,WORD_ OPl+WORD_OP2 (9)MOV AX,WORD_ OPl-WORD_OP2+100 (10)MOV WORD_ OPl,WORD_ OPl-WORD_OP2 答:(1)MOV BP,AL 非法,BP为16位 AL为八位 (2)MOV WORD_OP[BX+4*3][DI] ,SP 正确 (3)MOV WORD_OP1 ,WORD_OP2 非法,两个操作数不能都是变量 (4)MOV AX , WORD_OP1[DX] 非法,[DX]应改为[BX],[BP],[SI]或[DI],则为寄存器相对寻址。 (5)MOV SAVE_WORD ,DS 非法,未指明数据段地址DS的偏移量 (6)MOV SP,SS:DATA_WORD[BX][SI] 非法,SS与[BX],[SI]不匹配,SS的偏移量用SP (7)MOV [BX][SI] ,2 正确 (8) MOV AX,WORD_OP1+WORD_OP2 正确 (9) MOV AX, WORD_OP1—WORD_OP2+100 正确 (10)MOV WORD_OP1,WORD_OP1—WORD_OP2 非法 4.假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处: (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LAB[SI] (4)JNZ VARl (5)JMP NEAR LAB 答:(1) ADD VAR1,VAR2 ADD指令中,目的操作数必须是寄存器或存储单元。 (2)SUB AL,VAR1 AL为8位的,而VAR为字变量16位 (3)JMP LAB [SI] 格式不对,LAB处应为一偏移量,而不是标号。 (4)JNZ VAR1 JNZ 为非零转移,应转移到某个程序段,故后面应为一个标号。 (5)JMP NEAR LAB 段内直接转移,格式应为 JMP NEAR PTR LAB 5.画图说明下列语句所分配的存储空间及初始化的数据值。 BYTE-VAR DB ‘BYTE’,12,-12H,3DUP(0,?,2DUP(1,2),?) WORD-VAR DW 5DUP(0,1,2),?,-5,’BY’,’TE’, 256H 解答:(1)BYTE-VAR (2)WORD-VAR 42 59 54 45 OC F4H 0 1 2 1 2 - 0 - 1 2 1 2 - 0 - 1 2 1 2 - ┊ 00 00 01 00 02 00 ┊ ┊ 00 00 01 00 02 00 - - FB FF 59 42 45 54 56 02 ┊ B Y T E 12 -12H 6.试列出各种方法,使汇编程序把5150H存入一个存储器字中。 解答:(1) DW 5150H;(2)DB 50H,51H;(3)DB ‘PQ’ 7.请设置一个数据段DATASG,其中定义以下字符变量或数据变量。 FLD1B为字符串变量:‘personal computer’; FLD2B为十进制数字节变量:32; FLD3B为十六进制数字节变量:20; FLD4B为二进制数字节变量:01011001; FLD5B为数字的ASCII字符字节变量:32654; FLD6B为10个零的字节变量; FLD7B为零件名(ASCII码)及其数量(十进制数)的表格: PART1 20 PART2 50 PART3 14 FLD1W为十六进制数字变量:FFF0; FLD2W为二进制数字变量:01011001; FLD3W为(7)中零件表的地址变量; FLD4W为包括5个十进制数的字变量:5,6,7,8,9; FLD5W为5个零的字变量; FLD6W为本段中字数据变量和字节数据变量之间的地址差。 解答: DATASG SEGMENT FLD1B DB ‘personal computer’ FLD2B DB 32D FLD3B DB 14H FLD4B DB 01011001B FLD5B DB 32654 FLD6B DB 10DUP(0) FLD7B DB ‘PART1’,20D,‘PART2’,50D,‘PART3’,14D FLD1W DW 0FFFOH FLD2W DW 01011001B FLD3W DW [FLD7B] FLD4W DW 5,6,7,8,9 FLD5W DW 5DUP(0) FLD6W DW FLD1W-FLD1B DATASG ENDS 8.假设程序中的数据定义如下: PARTNO DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $-PARTNIO 问PLENTH的值为多少?它表示什么意义? 解答:PLENTH代表着PARTNO至PLENTH的地址差,也即三段数据的字节数PLENTH=22。 9.有符号定义语句如下: BUFF DB 1,2,3,‘123’ EBUFF DB 0 L EQU EBUFF-BUFF 问L的值为多少? 解答:L=6 10.假设程序中的数据定义如下: LNAME DB 30 DUP(?) ADDRESS DB 30 DUP(?) CITY DB 15 DUP(?) CODE-LIST DB 1,7,8,3,2 (1)用一条MOVE指令将LNAME的偏移地址放入AX。 (2)用一条指令将CODE-LIST的头两个字节的内容放入SI。 (3)写一条伪操作使CODE-LENGTH的值等于CODE-LIST域的实际长度。 解答:(1)MOVE AX,0FFSET LNAME;(2)MOVE SI,0701H; (3)DE-LENGTH EQU LENGTH CODE-LIST。 11.试写出一个完整的数据段DATA​_SEG,它把整数5赋与一个字节,并把整数-1,0,2,5和4放在10字数组DATA​_LIST的头5个单元中。然后写出完整的代码段,其功能为:把DATA​_LIST中头5个数中的最大值和最小值分别存入MAX和MIN单元中。 解答:DATA_SEG SEGMENT LENGTH DB 5 DATA_LIST DW –1,0,2,5,4,5DUP(?) MAX DW ? MIN DW ? DATA_SEG ENDS CODE_SEG SEGMENT ASSUME CS:CODE_SEG,DS:DATA_SEG START:MOV AX,DATA_SEG MOV DS,AX MOV SI,OFFSET DATA_LIST MOV AX,[SI] MOV BX,[SI] MOV CX,LENGTH XOR AX,AX XOR BX,BX CLC AGAIN:CMP AX,[SI] JG NEXT1 MOV AX,[SI] NEXT1:CMP BX,[SI] JNG NEXT2 MOV BX,[SI] NEXT2:JNZ AGAIN MOV MAX,AX MOV MIN,BX CODE ENDS END START 12.给出等值语句如下: ALPHA EQU 100 BETA EQU 25 GAMMA EQU 2 下列表达式的值是多少? (1)ALPHA*100+BETA (2)ALPHA MOD GAMMA+BETA (3)(ALPHA+2)*BETA-2 (4)(BETA/3)MOD5 (5)(ALPHA+3)*(BETA MOD GAMMA) (6)ALPHA GE GAMMA (7)BETA AND 7 (8)GAMMA OR 3 解答: (1)=10025;(2)=19;(3)=2548;(4)=3;(5)=103;(6)=0;(7)=01H;(8)=03H。 13.对于下面的数据定义,三条指令分别汇编成什么? TABLEA DW 10 DUP(?) TABLEB DB 10 DUP(?) TABLEC DB ‘1234’ ┊ ┊ MOVE AX,LENGTH TABLEA MOVE BL,LENGTH TABLEB MOVE CL,LENGTH TABLEC 解答: MOVE AX,10 MOVE BL,10 MOVE CL,1 14.对于下面的数据定义,各条MOVE指令单独执行后,有关寄存器的内容是什么? FLDB DB TABLEA DW 20DUP(?) TABLEB DB ‘ABCD’ MOVE AX,TYPE FLDB MOVE AX,TYPE TABLEA MOVE CX,LENGTH TABLEA MOVE DX,SIZE TABLEA MOVE CX,LENGTH TABLEB 解答: AX=0001H AX=0002H CX=0014H DX=0028H CX=0001H。 15.指出下列伪操作表达方式的错误,并改正之。 (1)DATA_SEG SEG (2)SEGMENT ‘CODE’ (3)MYDATA SEGMENT/DATA ┆ ENDS (4)MAIN_PROC PROC FAR ┆ END MAIN_PROC MAIN_PROC ENDP 答:(1) DATA-SEG SEGMENT (2) CODE SEGMENT PARA 'CODE' (3) /DATA错。定义数据段应在代码段中用ASSUME。ENDS缺少‘MYDATA’。 (4) 多余END,MAIN-PROC应删除。 16.按下面的要求写出程序的框架 (1)数据段的位置从0E000H开始,数据段中定义—个l00字节的数组,其类型属性既是字 又是字节; (2)堆栈段从小段开始,段组名为STACK, (3)代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值; (4)程序结束。 答: DATA-SEG SEGMENT ORG 0E000H BYTE-ARRAY LABLE BYTE WORD-ARRAY DW 50 DUP(?) DATA-SEG ENDS STACK-SEG SEGMENT PARA 'STACK' STACK-SEG ENDS CODE-SEG SEGMENT ASSUME CS:CODE-SEG,DS:DATA-SEG,SS:STACK-SEG ORG 1000H START: MOV AX ,DATA-SEG MOV DS ,AX MOV AX ,STACK-SEG MOV SS ,AX . . CODE-SEG ENDS END START 17.假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X,Y和Z。试编制一完整的程序计算 XX+Y+Z 答: X-SEG SEGMENT X DW ? X-SEG ENDS Z-SEG SEGMENT Z DW ? Z-SEG EMDS Y-SEG SEGMENT Y DW ? Y-SEG ENDS CODE SEGMENT MAIN PROC FAR ASSUME ES:Y-SEG,CS:CODE,DS:X-SEG,SS:Z-SEG START PUSH DS SUB AX AX PUSH AX MOV AX ,Y_SEG MOV ES ,AX MOV AX,Z_SEG MOV SS,AX MOV AX,X_SEG MOV DS,AX MOV AX,DS:X MOV BX,ES:Y ADD AX BX JO OVERFLOW MOV BX ,SS:Z ADD AX,BX JO OVERFLOW MOV DS:X,AX OVERFLOW :RET MAIN ENDP CODE ENDS END START 18.写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的AUGEND和附加段E_SEG中的ADDEND相加,并把结果存放在D_SEG段中的SUM中。其中AUGEND、ADDEND和SUM均为双精度数,AUGEND赋值为99251,ADDEND赋值为-15962。 解答:TITLE SUM D_SEG SEGMENT AUGW LABEL WORD AUGEND DD 99251 SUM DW 2 DUPL (?) D_SEG ENDS E_SEG SEGMENT ADDW LABEL WORD ADDEND DD -15962 E_SEG ENDS C_SEG SEGMENT ASSUME DS :D_SEG ,ES:E_SEG ,CS:C-SEG MAIN PROC FAR START :PUSH DS MOVE AX,0 PUSH AX MOV AX,D_SEG MOV DS ,AX MOV AX,E_SEG MOV ES,AX ADDT :MOV AX,AUGW MOV BX,AUGW+2 ADD AX, ES : ADDW ADC BX, ES: ADDW+2 MOV SUM ,AX MOV SUM+2,BX RET MAIN ENDP C_SEG ENDS END START 19.读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH STOP: HLT 解答:AL中的最高位为1时。 20.读程序: START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC AH,0 DEC CL JNZ ADLOP HLT 请问: (1)本程序实现什么功能? (2)结果在哪里? 解答:完成20H*30H,结果在AX中。 21.请编一程序段完成AX*l0的任务(要求不准用乘法指令做)。 解答: MOV BX,AX MOV CL 2 SHL AX, CL ADD AX,BX SHL AX ,1 22.编程序使: (1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位变反。 (4)用TEST指令测试DL寄存器位3、位6是否同时为0,若是,将0送DL;否则l送DH。 解答 :1,AND AX ,0FFF0H 2,OR BX ,000FH 3,XOR CX ,000FH 4,TEST DL ,48H JZ LOOP MOV DH,1 HLT LOOP :MOV DL ,0 HLT 23.编一程序段,完成符号函数(-128≤x≤127): 1 (x.>0) y= 0 (x=0) -1 (x<0) 假设x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND AL,AL
本文档为【微型计算机原理及应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_301140
暂无简介~
格式:doc
大小:409KB
软件:Word
页数:42
分类:理学
上传时间:2010-12-08
浏览量:116