《微机原理与接口技术课后答案--黄玉清版.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术课后答案--黄玉清版.doc(211页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date微机原理与接口技术课后答案-黄玉清版第一章习题一 概 述主要内容:计算机系统的组成和各部分的作用,微型计算机组成,微处理器的结构;计算机中的信息表示; 微机系统的结构特点。1.1 简述微型计算机的组成。【答】微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。1.2 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【答】将运算器与控制器
2、集成在一起,称为微处理器。微处理器是微处理器的核心。微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。微型计算机系统是以微型计算机为主机,配上系统软件和外设之后而构成的计算机系统。三者之间是有很大不同的,微处理器是微型计算机的一个组成部分,而微型计算机又是微型计算机系统的一个组成部分。 1.3 CPU在内部结构上由哪几部分组成?CPU应具备什么功能?【答】CPU在内部结构上由算术逻辑部件(ALU);累加器和通用寄存器组;程序计数(指令指针)、指令寄存器和译码器;时序和控制部件几部分组成。不同CPU的性能指标一般不相同,但一般CPU应具有下列功能:可以进行算术和逻辑运算
3、;可保存少量数据;能对指令进行译码并执行规定的动作;能和存储器、外设交换数据;提供整个系统所需要的定时和控制;可以响应其它部件发来的中断请求。1.4 累加器和其他通用寄存器相比有何不同?【答】累加器是比较特殊的通用寄存器。它在某些指令执行前,可以保存一源操作数,还在执行后又用来保存运算结果,另外它一般也用来完成输入/输出指令。而通用寄存器则一般只用来保存参加运算的数据、运算的中间的结果以及用来保存地址。1.5 从传输的信息类型而言,总线分为哪几种类型?微型计算机采用总线结构有什么优点?【答】(1)分为地址总线,数据总线与控制总线三类,又称三总线。(2)微型计算机的三总线结构是一个独特的结构。采
4、用总线结构,系统中各功能部件之间的相互关系,变成了各功能部件面向总线的单一关系。一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩展。 1.6 控制总线传输的信号大致有哪几类?【答】控制总线用来传输控制信号,其中包括CPU输出到存储器和输入/输出接口电路的控制信号,如读信号、写信号和中断响应信号等;还包括其它部件输入到CPU的信号,比如,时钟信号、中断请求和准备就绪信号。1.7数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?【答】从结构上看数据总线是双向的,而地址总线从结构上看却是单向的
5、。如果一个系统的数据总线和地址总线合用一套总线或者合用部分总线,一般可利用时钟,在总线上采用分时复用技术来区分地址和数据,例如可在总线周期的若干个时钟周期,约定某周期传输地址、在另一周期传输数据。1.8 将下列十进制数转换成8421BCD码:1049 =0001 0000 0100 1001 902=1001 0000 0010851.37=1001 0101 0001 . 0011 0111 0.6259=0000. 0110 0010 0101 1001 1.9 将下列各组数用八位的补码相加:(+75)+(-6)+75补=0100 1011 -6 补=1111 1010+75补+ -6 补
6、=1000 0110+1000 0110=0100 0101习题二 8086微处理器答案主要内容:主要介绍80868088CPU内部结构。了解80X86CPU的特点。(1.2.1 8086 CPU在内部结构上由哪几部分组成?其功能是什么? 【答】8086的内部结构分成两部分。总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。2.2 8086的总线接口部件有那几部分组成? 其功能是什么?【答】8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用于保存各段地址;
7、 一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址; 一个20位地址加法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于内总线与外总线的连接。2.3 8086的执行单元(部件)由那几部分组成?有什么功能?【答】8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3
8、种特定操作。(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。2.4 8086内部有哪些通用寄存器?【答】四个16位数据寄存器AX、BX、CX、DX,二个指针寄存器SP、BP, 二个变址寄存器SI、DI。这些寄存器使用上一般没有限制,但对某些特定指令操作,必须使用指定寄存器,可参考后面指令系统章节。2.5 8086内部有哪些段寄存器?各有什么用途?【答】四个16位段寄存器:CS、DS、SS、ES,分别保存代码段、数据段、堆栈段与扩展段的段地址。2.6 8086CPU状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态标志和控制标志分别有哪些? 【答】(1)标志分两类:状
9、态标志(6位),反映刚刚完成的操作结果情况。控制标志(3位),在8086特定指令操作中起控制作用。(2)利用状态标志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。例如利用控制标志可以控制程序的单步调试。(3)状态标志包括:包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF、辅助进位标志AF、溢出标志OF。控制标志包括:单步运行标志TF、方向标志DF与中断允许标志IF。2.7 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点? 8086CPU执行转移指令时,指令队列寄存器内容如何变化?【答】(1)传统的计算机一般按照取指令、指令译码与执
10、行指令的串行步骤工作。(2)在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。(3)8086CPU执行转移指令时,首先清空当前指令队列寄存器,然后从新地址取指令重新填满指令队列。2.8 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?【答】 为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。而在8086CPU中AD0AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器
11、中,而用后一部分周期传送数据。8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。2.9 将两数相加,即0100 1100加 0110 0101,CF、PF、AF、ZF、SF、OF各为何值?【答】0100 1100+0110 0101=10110001 CF=0,PF=1,AF=1,ZF=0,SF=1,OF=12.10 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的?一个具有32位地址线的CPU,其最大物理地址为多少?【答】存储器的逻辑地址由段地址与段内偏移地址组成。存储器的物理地址:将16位段地址左移4位后,加上16位段内偏移地址,形成20位物理地址。一个具有32位
12、地址线的CPU,其最大物理地址为=4*1024*1024*1024B=4GB。2.11 存储器物理地址400A5H400AAH单元现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,若当前(DS)= 4002H,请说明它们的偏移地址值。如果要从存储器中读出这些数据,需要访问几次存储器,各读出哪些数据?【答】由于:物理地址=400A5H=段地址*16+偏移地址=40020H+偏移地址偏移地址=400A5-40020=85H 若以最少访问次数而言,可以如下操作:从奇地址400A5H中读出一个字节11H;从偶地址开始400A6H、400A7两个单元读出一个字3322H;从偶地址4
13、00A8H、400A9H两个单元读出一个字5544H;从偶地址400AAH中读出一个字节66H。最少读4次。2.12 在 8086中,逻辑地址FFFFH0001H、00A2H37F0H和B800H173FH的物理地址分别是多少?【答】(1)FFFFH*16+0001H=FFFF0H+0001H=FFFF1H (2)00A20+37F0=4210H (3)B8000+173F=B973FH2.13 在 8088/8086中,从物理地址12388H开始顺序存放下列三个双字节的数据,651AH, D761H和007BH,请问物理地址12388H1238DH6个单元中分别是什么数据?【答】物理地址12
14、388H1238DH单元中的数据如下表:地址12388H12389H1238AH1238BH1238CH1238DH数据1AH65H61HD7H7BH00H2.14 8086/8088 CPU 有40条引脚,请按功能对它们进行分类? 【答】 地址总线:AD0AD15,A16A19; 数据总线:AD0AD15;控制总线: ALE, , , , , , , HOLD, HLDA, INTR, , READY, RESET.2.15 80868088 CPU的地址总线有多少位?其寻址范围是多少?【答】8086/8088CPU的地址总线均为20位,8086/8088CPU的寻址范围为=1MB.2.16
15、 8086/8088 有两种工作方式,它们是通过什么方法来实现?在最大方式下其控制信号怎样产生? 【答】引脚接至电源(+5V),则8086CPU处在最小组态(模式); 引脚接地,则8086CPU处在最大组态(模式)。在最大模式下,需要用外加电路来对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及对总线收发器8286的控制信号。2.17 8086 CPU工作在最小模式(单CPU)和最大模式(多CPU)主要特点是什么?有何区别?【答】最小模式接+5V,构成小规模的应用系统,只有8086一个微处理器,所有的总线控制信号均为8086产生,系统中的总线控制逻
16、辑电路,减少到最小; 不需总线控制器8288;适用于单一处理机系统。 最大模式接地,用于大型(中型)8086/8088系统中,系统总是包含有两个或多个微处理器,其中一个主处理器就是8086或8088。其它的处理器称协处理器,协助主处理器工作,需要总线控制器来变换和组合控制信号, 需总线控制器8288; 适用于多处理机系统。2.18 8086/8088 I/O 的读/写周期时序与存储器读/写周期的主要差异是什么?【答】在8086存储器周期中,控制信号始终为高电平;而在I/O周期中,始终为低电平。2.19 CPU启动时,有那些特征?如何寻找8086/8088系统的启动程序?【答】在8088/808
17、6系统中,CPU启动后,处理器的标志寄存器、指令指针寄存器IP、段寄存器DS、SS、ES和指令队列都被清零,但是代码段寄存器CS被设置为FFFFH。因为IP=0000,而CS=FFFFH,所以,8088/8086将从地址FFFF0H开始执行指令。通常,在安排内存区域时,将高地址区作为只读存储区,而且在FFFF0H单元开始的几个单元中放入一条无条件转移指令,转到一个特定的程序中,这个程序往往实现系统初始化、引导监控程序或者引导操作系统等功能,这样的程序叫做引导和装配程序。2.20 8086和8088是怎样解决地址线和数据线的复用问题的? ALE信号何时处于有效电平?【答】8086/8088采用时
18、间分隔技术与地址锁存技术,通过地址锁存允许信号ALE锁存CPU送出的地址,有效解决地址线和数据线的复用问题。2.21 8086系统在最小模式时应该怎样配置?请画出这种配置并标出主要信号的连接关系.【答】8086在最小模式下的典型配置。见教材的图2.7。 一片8284A,作这时钟发生器。3片8282或74LL373,用来作为地址锁存器。2片8286/8287作为总线收发器。2.22 8086构成系统分为哪两个存储体?它们如何与地址、数据总线连接?【答】8086构成系统分为偶地址存储体和奇地址存储体。偶地址存储体:连接D7D0,A0=0时选通;奇地址存储体:连接D15D8, =0,A0=1时选通。
19、见教材图2.11。2.23 信号和A0信号是怎样的组合解决存储器和外设端口的读/写操作的?这种组合决定了 8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分?【答】信号和A0的组合以及操作如下表。操 作引 腿00从偶地址开始读/写一个字10从偶地址单元或端口读/写一个字节01从奇地址单元或端口读/写一个字节0110从奇地址开始读/写一个字 2.24 8086 CPU读写总线周期各包含多少个时钟周期?什么情况下需要插入 TW 等待周期? 应插入多少个Tw,取决于什么因素?什么情况下会出现空闲状态Ti ?【答】8086CPU读/写总线周期包含4个时钟周期。 当CPU与慢速的存储
20、器或外设I/O端口交换信息,系统中就要用一个电路来产生READY信号,并传递给CPU的READY引脚。CPU在状态的下降沿对READY信号进行采样。如果无效,那么,就会在之后插入等待状态。插入的个数取决于CPU接收到高电平READY信号的时间。CPU在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期。自测试: 1.选择题:(1)某微机具有16M字节的内存空间,其 CPU的地址总线应有(E)条。 A26 B28 C20 D22 E24 (2) 80868088 CPU要求加到 RESET引脚上的复位正脉冲信号,其宽度至少要( 4 ) 个时钟周期才能有效复位,如果是上电复位则
21、要求正脉冲的宽度不少于( 50 )us 。 A4,50 B5,60 C4,70 D5,80 (3)当RESET信号进入高电平状态时,将使80868088 CPU的( D )寄存器初始化FFFFH。 ASS BDS CES DCS (4) 80868088 CPU与慢速的存储器或I O接口之间,为了使传送速度能匹配,要在(C)状态之间插入若干等待周期Tw。 AT1 和T2 BT2 和T3 CT3 和T4 D随机2. 填空题: (1) 80868088 CPU执行指令中所需操作数地址由(寻址方式和地址寄存器)计算出( 16 )位偏移量部分送( IP ),由(段地址加上偏移量部分)最后形成一个( 2
22、0 )位的内存单元物理地址。 (2) 80868088 CPU在总线周期的 T1 状态,用来输出(20)位地址信息的最高( 4 )位,而在其它时钟周期,则用来输出(状态)信息。 (3) 80868088 CPU复位后,从(FFFF0H )单元开始读取指令字节,一般这个单元在()区中,在其中设置一条(无条件转移 )指令,使CPU对系统进行初始化。 (4)8086系统的存储体系结构中,1M字节存储体分( 两 )个存储体,每个存储体的容量都是(512K )字节,其中和数据总线D15D8相连的存储体全部由(奇地址)单元组成,称为高位字节存储体,并用( 高电平 )作为此存储体的选通信号。 (5)8086
23、8088系统中,可以有( )个段地址,任意相邻的两个段地址最短相距(16)个存储单元,最长相距()存储单元。(6)用段基值及偏移地址来指明一内存单元地址称为(物理地址 )。习题三 8086指令系统主要内容: 8086指令系统。主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。1单选题:(1)执行下面指令序列后,结果是(A)。MOV AL,82HCBWA、(AX)=0FF82H B、(AX)=8082H C、(AX)=0082H D、(AX)=0F82H(2)与MOV BX,OFFSET
24、 VAR指令完全等效的指令是( D )。A、MOV BX,VAR B、LDS BX,VARC、LES BX,VAR D、LEA BX,VAR(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D )。A、CMP B、SUB C、AND D、MOV(4)下面指令执行后,改变AL寄存器内容的指令是( D )。A、TEST AL,02HB、OR AL,ALC、CMP AL,BD、AND AL,BL(5)设DH=10H,执行NEG DH指令后,正确的结果是( D )。A、(DH)=10H,CF=1B、(DH)=0F0H,CF=0C、(DH)=10H,CF=0D、(DH=
25、0F0H,CF=1(6)设DS=8225H,DI=3942H,指令NEG BYTE PTRDI操作数的物理地址是( A )。A、85B92H B、86192H C、BB690H D、12169H(7)下列指令中,执行速度最快的是( C )。A、MOV AX,100 B、MOV AX,BX C、MOV AX,BX D、MOV AX,BX+BP28086 CPU执行如下指令后的结果,以及标志SF、AF、CF、OF的值。(1)MOV AL,0110 0100B SUB AL,58H ;(AL)=0CH,AF=1 DAS ;(AL)=06H, AF=1 ADD AL,89H ;(AL)=8FH, AF
26、=0 DAA ;(AL)=95H,AF=1,SF=1结果: (AL)=95H, SF=1, AF=1, CF=0, OF=0(2)MOV AL,05H MOV BL,09H MUL BL ;(AX)=002DH, SF、AF、CF、OF=0AAA ; (AX)=0103H ;AAM ; ; (AX)=0405H结果: (AX)=0103H, CF=1 , SF=0、AF=1、OF=03分析执行下列指令序列后的结果:MOVAL,10110101B ANDAL,00011111B;(AL)=0001 0101BORAL,11000000B;(AL)=1101 0101BXORAL,00001111
27、B;(AL)=1101 1010BNOT AL ;(AL)=0010 0101B4假设(AL)=10101111B,CF=0,CL=2,写出分别执行下列指令后的结果以及标志位CF、ZF、OF的值。(1)SHL AL,CL ;(AL)=1011 1100B, CF=0、ZF=0、OF=1(2)SHR AL,CL ;(AL)=0010 1011B, CF=1、ZF=0、OF=0(3)SAR AL,CL ;(AL)=1110 1011B, CF=1、ZF=0、OF=0(4)ROL AL,CL ;(AL)=1011 1110B, CF=0、ZF=0、OF=1(5)RCR AL,CL ;(AL)=101
28、1 1101B, CF=0、ZF=0、OF=1 5设(IP)= 3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL 2000:0094H后,试求出IP、CS、SP的内容,以及栈顶4个单元的内容。【答】(CS)=2000H,(IP)=0094H, 栈顶F178HF17BH连续4个单元的内容:94, 3D,50,40。6设(DS)= 2000H,(BX)=1256H,(SI)=528FH,TABLE的偏移量=20A1H,(232F7H)=3280H,(264E5H)=2450H,执行下述指令后IP的内容?(1)JMP BX ;(IP)=1256H(2)JMP TABLEBX
29、; (IP)=3280H(3)JMP BXSI ;(IP)=2450H7设当前的SP=1000H,执行PUSHF指令后,SP=(0FFEH),若改为执行INT 20H指令后,则SP=(0FFCH)。8设当前(SS)=2010H,(SP)=FE00H,(BX)=3457H,计算当前栈顶的物理地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?【答】当前栈顶指针(SP)=2FF00H,物理地址20100H+FE00H=2FF00H 当执行PUSH BX 指令后,栈顶指针(SP)=FE00-2=FDFEH,栈顶物理地址2FDFEH,栈顶2个字节的内容分别3457H。9H
30、LT指令用在什么场合?如CPU 在执行HLT 指令时遇到硬件中断并返回后,以下应执行哪条指令?【答】HLT用在使CPU处于暂停状态而等待硬件中断的场合。 在执行HLT指令遇到硬件中断并返回后将执行HLT后面的一条指令。10为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?【答】増量指令或减量指令不影响进位标志CF。11中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且
31、SP减2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断入口地址的偏移地址。12中断返回指令IRET和普通子程序返回指令RET在执行时,具体操作内容什么不同?【答】IRET从堆栈中依次弹出断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依次弹出断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。13以下是格雷码的编码表:00000,10001,20011,30010,4011050111,60101,70100,81100,91101请用换码
32、指令和其它指令设计一个程序段,实现格雷码往ASCII码的转换。【答】格雷码ASCII码数值000030H0000131H1001033H3001132H2010037H7010136H6011034H4011135H51000/1001/1010/1011/110038H8110139H9TABLESEGMENTTAB_DA DB 30H,31H,33H,32H,37H,36H,34H,35H,0,0DB 0,0,38H,39HGRA DB 05H ASCII_DA DB ? TABLEENDSCODESEGMENTASSUME CS:CODE,DS:TABLESTART: MOV AX,TA
33、BLE MOV DS,AX MOV BX,OFFSET TAB_DA MOV AL,GRA XLATMOV ASCII_DA,ALCODEENDSENDSTART14将存放在0A00H单元和0A02H单元的两个无符号数字节相乘,结果存放在地址为0A04H开始的单元中。【答】参考程序:假设数据为字节MOVAL,0A00HMOVBL,0A02HMULBLMOV0A04,AX15编程计算(X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。【答】参考程序:MOVAX,XADD AX,YMOV BX,0AHMUL BX ;乘积在DX,AX中ADD AX,ZADC
34、DX,0H ; 考虑进位MOV BX,XDIV BX ;MOV RESULT, AXMOVRESULT+2, DXHLT16分别用一条语句实现下述指明的功能:(1)AX的内容加1,要求不影响CF。( INC AX)(2)BX的内容加1,要求影响所有标志位。( ADDBX, 1 )(3)栈顶内容弹出送DI。( POP DI )(4)双字变量AYD存放的地址指针送ES和SI。( LES SI ,AYD )(5)将AX中数,最高位保持不变,其余全部右移4位。( SAR AX, CL ;CL预置4)(6)将0400H单元中的数,低4位置零,高4位保持不变。( AND BYTE PTR 0400H, 1
35、1110000B)(7)将BX中的数,对高位字节求反,低位字节保持不变。(XOR BX ,0FF00H)(8)若操作结果为零转向标号GOON。( JZGOON )17检测BX中第13位(D13),为0时,把AL置0,为1时,把AL置1。【答】参考程序:TESTBX,0010 0000 0000 0000BJZZEROMOVAL,01HHLTZERO:MOVAL,0HLT18利用字串操作指令,将1000H10FFH单元全部清零。【答】参考程序: CLDMOVDI,1000HMOVCX,100HMOVAL,0REPSTOSB19用串操作指令实现,先将100H个字节数从2170H单元处搬到1000H
36、单元处,然后从中检索等于AL中字符的单元,并将此单元换成空格字符。【答】参考程序: 假设数据段与附加段的段寄存器值已经设置为相同的数值。 CLD MOV CX,0100H MOV SI, 2170H MOV DI,1000H REP MOVSB MOV CX,0100H MOV DI,1000H MOV AL, A ;假设要检索的字符为A REPNZ SCASBJZ FOUNDJMP NOFOUNDFOUND: DEC DIMOV BYTE PTR DI, NOFOUND: HLT20用循环控制指令实现,从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H),把存放第一个#
37、的单元地址送入BX中。【答】参考程序:MOV DI,1000HMOV CX,200MOV AL,# DON: CMP AL, DIJEFOUND INC DI LOOP DON JMP NOFOUND FOUND: MOV BX,DI NOFOUND:HLT自测题:1 下列指令中,有语法错误的指令是( )。A、MOV BX,BX+2B、MOV 2,BXC、MOV 1000H,BXD、MOV BX,22 下列指令中,隐含使用AL寄存器的指令有( )条。MUL、DIV、HLT、XLAT、CBW、IN、PUSHFA、2条B、3条C、4条D、5条3 输入输出指令中,数据寄存器由( )寄存器指出。A、A
38、L/AXB、BXC、CXD、DX4 8088可直接寻址的空间最大为( )。A、640KBB、1MBC、512MBD、2MB5. 内存单元1999H:0010H的段内偏移地址为(2),物理地址为(3);若(BP)=0010H,用指令MOV AL,BP取出该单元的内容,段寄存器(4)的值应为1999H。习题四 汇编语言程序设计主要内容:汇编语言程序设计。主要介绍汇编语言程序的设计方法与编程原理,重点掌握算术运算程序、字符串处理程序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言常用伪指令。4.1 分析执行下列指令序列后的结果: 1)MOVAX,1234H MOVBX,00
39、FFH ANDAX,BX【答】(AX)=0034H2)MOVAL,01010101B ANDAL,00011111B;(AL)=00010101B ORAL,11000000B;(AL)=11010101B XORAL,00001111B;(AL)=11011010B NOTAL【答】(AL)=00100101B3)MOVDL,05H MOVAX,0A00H MOVDS,AX MOVSI,0H MOVCX,0FH AGAIN:INCSI CMPSI,DL LOOPNEAGAIN HLT 本程序实现了什么功能?【答】在以0A001H开始的15个单元中查找05H。4)MOVAX,DSEGADDR
40、MOVDS, AX MOVES,AX MOVSI, OFFSET B1ADDR MOVDI,OFFSET B2ADDR MOVCX,N CLD REPMOVSB HLT 本程序实现了什么功能?【答】 将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元 。 5)MOVAX, 0H MOVDS,AX MOVES, AX MOVAL,05H MOVDI,0A000H MOVCX,0FH CLD AGAIN:SCASBLOOPNEAGAIN HLT本程序实现了什么功能?【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H的查找。4.2
41、阅读程序:1).CLD LEADI,0100H MOVCX, 0080H XORAX, AX REPSTOSW 本程序实现了什么功能?【答】将DS中起始地址为0100H的128个字节单元清零。2).MOVAL, 08H SALAL,01H;(AL)=00010000H MOVBL, AL MOVCL ,02H SALAL,CL;(AL)=01000000H ADDAL,BL;(AL)=01010000H 本程序实现了什么功能? 【答】 将AL中的内容乘以10。4.3 试分析下列程序完成什么功能? MOVDX,3F08HMOVAH,0A2HMOVCL,4 SHLDX,CL;(DX)=F080H MOVBL,AH SHLBL,CL;(BL)=20H SHRBL,CL;(BL)=02H ORDL,BL;(DL)=82H 【答】将DX中的低4位数据8H分离出来,将AH中的低4位数据2H分离出来,合并为82H存放在DL。4.4 已知程序段如下: MOVAX,1234H MOVCL,4 ROLAX,CL DECAX MOVCX,4MULCX 试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF及ZF的值分别是什么?(3
限制150内