微机课后习题答案 第一章习题答案 一、选择题 1.十进制数66转换成二进制数为。 A.B.0C.D.0 答案:D 2.十进制数27.25转换成十六进制数为。 A.B1.4HB.1B.19HC.1B.4HD.33.4H 答案:C 3,下列数中最小的是。 A.()2B.(52)8C.(2B)16D.(50)10 答案:A 4.若一个数的BCD编码为00,则该数与相等。 A.41HB.121DC.29DD.29H 答案:C 5,十进制数9874转换成BCD数为。 A.9874HB.4326HC.2692HD.6341H 答案:A 6.BCD数64H代表的真值为。 A.100B.64C.-100D.+100 答案:B 7.十六进制数88H,可表示成下面几种形式,错误的表示为o A.无符号十进制数136B.带符号十进制数-120C.压缩型BCD码十进制数88D.8位 二进制数-8的补码表示 答案:D 8.若[A]原=,[B]反=,[C]补=,以下结论正确的是。 A.C最大B.A最大C.B最大D.A=B=C 答案:B 9.8位二进制补码表示的带符号数B和B的十进制数分别是。 A.128和255B,128和-1C.-128和255D.-128和-1 答案:D 10.微机中地址总线的作用是。 A.用于选择存储器单B.用于选择进行信息传输的设备C.用于指定存储器单和I/O设 备接口单的选择地址D.以上选择都不对 答案:C 11.计算机中表示地址使用。 A.无符号数B.原码C.反码D.补码 答案:A 二、填空题 1.计算机的主机由、控制器、主存储器组成。 答案:运算器 2.确定了计算机的5个基本部件:输入器、、运算器、和控制器, 程序和数据存放在中,并采用二进制数表示。 答案:冯.诺依曼、输出器存储器存储器 3.10110.10111B的十六进制数是,34.97H的十进制数是,将114.25转 换为二进制数为。 答案:16.B8H、52.6055、.01 4.(640)10=()2=()16 答案:80 5.(256.375)10=()2=()16 答案:.011100.6 6.(.1101)2=()10=()16 答案:188.8125BC.D 7.二进制数B若为原码,其真值为;若为反码,其真值为;若为补 码,其真值为。 答案:一1一126-127 8.一个8位的二进制整数,若采用补码表示,且由3个“1”和5个’0”组成,则最小的十进 制数为。 答案:- 9.在微机中,一个浮点数由和两个部分构成。 答案:尾数和阶码 10.若凶原=[丫]反4Z]补=90H,试用十进制分别写出其大小,X=;Y=;Z=。 答案:一16-111-112 三、问答题 1.在计算机中为什么都采用二进制数而不采用十进制数?二进制数有哪两种缩写形式? 答案:二进制数具有运算简单、电路简便可靠等多项优点。计算机的逻辑器件均采用高低电 平来表示。二进制数的0和1正好和逻辑电平的高低相吻合,且二进制数使用很方便, 还能节省器件,4个器件的不同组合就能表示16个数。八进制和十六进制 2.什么是程序计数器PC? 答案:CPU内部都有一个程序计数器PC(或指令指针计数器IP),用来存放将要从存 储器中取出执行的下一条指令所在存储空间的位置(指向下一条将要执行的指令)。它具 有自动加1的功能。 3.已知凶补=B,[Y]补=B,[Z]补=00B,计算[X+Y]补=?,并 指出是否溢出;计算[X-Z]补=?,并指出是否溢出。 答案:[X+Y]补=0溢出[X-Z]补=0溢出 4.将下列十六进制数的ASCII码转换为十进制数。 (1)H⑵H⑶H(4)H 答案:103H=2597CAH=H=81928A5CH=35420 第二章习题答案 一、选择题 1.8086/8088CPU内部有一个始终指示下条指令偏移地址的部件是。 A.SPB.CSC.IPD.BP 答案:c 2.指令队列的作用是。 A.暂存操作数地址B.暂存操作数C.暂存指令地址D.暂存预取指令 答案:D 3.8086/8088下列部件中与地址形成无关的是。 A.ALUB.通用寄存器C.指针寄存器D.段寄存器 答案:A 4.对于8086,下列说法错误的是。 A.段寄存器位于BIU中B.20位的物理地址是在EU部件中形成的C.复位后CS的初 值为FFFFHD.指令队列的长度为6个字节 答案:B 5.8086/8088中ES、DI分别属于。 A.EU、BIUB.EU、EUC.BIU、BIUD.BIU,EU 答案:D 6.BIU与EU工作方式的正确说法是. A.并行但不同步工作B.同步工作C.各自独立工作D.指令队列满时异步工作,空时同步 工作 答案:A 7.在执行转移、调用和返回指令时,指令队列中原有的内容o A.自动清除B.用软件清除C.不改变D.自动清除或用软件清除 答案:A 8.下列说法中,正确的一条是 A.8086/8088标志寄存器共有16位,每一位都有含义。B.8088/8086的数据总线都是 16位。C.8086/8088的逻辑段不允许段的重叠和交叉D.8086/8088的逻辑段空间最大 为64KB,实际应用中可能小于64KB。 答案:D 9.8086/8088工作于最大模式,是因为。 A.可以扩展存储容量B.可以扩大I/O空间C.可以构成多处理器系统D.可以提高CPU 主频 答案:C 10.8088/8086最大模式比最小模式在结构上至少应增加。 A.中断优先级控制器B.总线控制器C.数据驱动器D.地址锁存器 答案:B 11.组成最大模式下的最小系统,除CPU、时钟电路,ROM,RAM及I/O接口外,至少 需增加的芯片类型为。 a.总线控制器b.总线裁决器c.地址锁存器d.总线驱动器A.b,dB.a,b,cC.a.d D.a,c,d 答案C 12.工作在最小模式时,对CPU而言,下列信号皆为输入信号的是。 A.HOLD、、READYB.、、READYC.、HOLD、D.、HOLD、READY 答案:A 13.LOCK引脚的功能是。 A.总线锁定B.地址锁定C.数据输入锁定D.数据输出锁定 答案:A 14.与存储器(或外设)同步以及与协处理器同步的引脚信号依次为。 A.READY,B.READY,HOLDC.、RESETD.、 答案:A 15.工作在最大模式时,下列信号皆为输出信号的是。 A.QSO、QS1、B.QS0、、C.QS1、、SOD.、QS1, 答案:A 16.8086/8088最大模式时,引脚有效时的正确含义是。 A.能中断CPU的工作B.能进行DMA操作C.其它总线部件不能占有总线D.暂停 CPU的工作 答案:C 17.工作在最大模式时,经总线控制器8288将对应CPU最小模式时的三个引脚状态进 行组合,产生控制和命令信号,这三个引脚应为。 答案:C 18.8088/8086中,关于总线周期叙述不正确的是。 A.总线周期通常由连续的T1-T4组成B.在读写操作数时才执行总线周期C.总线周期 允许插入等待状态D.总线周期允许存在空闲状态 答案:B 19.在8086读总线周期中,进入T3后发现READY=0,需要插入等待状态,则在插入 等待状态时其引脚的高地址A19〜A16。 A.表示读数据对应的高4位的地址B.表示CPU当前工作状态C.处于高阻状态D.处 于不定状态 答案:B 20.设8086/8088工作于最小模式,在存储器读、写周期中,总线AD15-AD0上数据开 始有效的时刻(不插入Tw)分别是o A.T2、T2B.T2、T3C.T3、T4D.T3、T2 答案:D 二、填空题 1.8086/8088CPU在结构上由两个独立的处理单和构亦这两个单可 以工作,从而加快了程序的运行速度。 答案:EUBIU并行 2.8086是Intel系列的16位处理器,从功能上,它分为两个部分:即总线接口单和执 行单。总线接口单由、、、、等寄存器和 20位地址加法器和6字节指令队列构成。执行单有4个通用寄存器,即;4个 专用寄存器,即、、、等寄存器和算术逻辑单组成。 答案:AX、BX、CX、DXSP、BP、DLSI 3.任何CPU都有一个寄存器存放程序运行状态的标志信息,在8086中,该寄存器是 。其中,根据运算结果是否为零,决定程序分支走向的标志位是。 答案:FRZF 4.8086/8088CPU中标志寄存器的3个控制位是、、。 答案:DFIFTF 5.逻辑地址9B50H:2C00H对应的物理地址是。 答案:9E100H 6.在任何一个总线周期的T1状态,ALE输出o 答案:高电平 7.8086有两种工作模式,即最小模式和最大模式,它由决定。最小模式的特点是 ,最大模式的特点是。 答案:CPU提供全部的控制信号需要总线控制器8288 8.8086CPU可访问的存储器的空间为1MB,实际上分奇数存储体和偶数存储体两部分, 对于奇数存储体的选择信号是,对于偶数存储体的选择信号是,对于每 个存储体内的存储单的选择信号是o 答案:A0A19-A1 9.在8086的最小系统,当,,时,CPU完成的操作是o 答案:I/O读 10.在最小模式下,执行“OUTDX,AL”指令时,、、、的状态分别是—o 答案:0,0,1,1 11.8086CPU从偶地址读写两个字节时,需要个总线周期,从奇地址读取两个字节时, 需要个总线周期。 答案:12 12.8086在存取存储器中以偶地址为起始地址的字时,,,A0的状态分别是。 答案:100 13.8086向内存地址1200BH写一个字节数据时,需要一个总线周期,在该总线周期的T1 状态,为,A0为。 答案:0,1 14.假设某个总线周期需插入两个Tw等待状态,则该总线周期内对READY信号检测的 次数是。 答案:3 15.8086CPU上电复位后,CS=,IP=,DS=,标志寄存器FR=。 答案:0FFFFH,0,0,0 16.8088/8086的复位信号至少要维持个时钟周期。 答案:4 17.8086CPU工作在最小模式下,控制数据流方向的信号是、、、、 答案:、、、、 18.当存储器的读出时间大于CPU所要求的时间时,为了保证CPU与存储器的周期配 合,就要利用信号,使CPU插入一个状态。 答案:准备好(READY)等待(Tw)状态 19.当8086/8088工作于最大模式时,QS1=1,QS0=0,其表示指令队列的状态为。 答案:队列为空。 20.在T2、T3、Tw、T4状态时,S6为,表示8086/8088当前连在总线上。 答案:低电平 21.8086/8088提供的能接受外中断请求信号的引脚是和。两种请求信号的主 要不同处在于是否可。 答案:INTRNMI屏蔽 22.一台微机的CPU,其晶振的主振频率为8MHz,二分频后作为CPU的时钟频率。如 果该CPU的一个总线周期含有四个时钟周期,那么此总线周期是us。 答案:0.125 23.某微处理器的主频为20MHz,由2个时钟周期组成一个机器周期,设平均3个机器 周期可完成一条指令,其时钟周期和平均运算速度分别为。 答案:50ns,3.33MHz 三、问答题 1.8086/8088CPU在结构上由哪两个独立的处理单构成?这样的结构最主要的优点是 什么? 答案:在微机中,一条机器指令由操作数和操作码构成,再由若干指令构成程序。微处理 器执行一条指令的完整步骤需要两个阶段:取指和执行。取指是从内存中取出指令,执行 是分析指令要求实现的功能,读取所需的操作数,执行指令规定的操作。传统的8位处 理器采用顺序执行的方式,各条指令的执行按以上两个阶段交替执行.也就是说,首先取 一条指令,然后执行该指令,之后再取下一条指令,再执行,如此重复,直到整个程序执 行完毕。在8086中,为了加快程序的执行速度,采用了重叠执行的方式,各条指令的执 行过程是重叠进行的。每条指令的执行过程也包括取指和执行两个阶段,但是相邻两条 指令的执行过程有一部分是同时进行的。在执行一条指令时,可以同时取出下一条指令。 在当前指令执行完毕后,就可以立即执行下一条指令。显然,这种重叠执行的方式大大 加快了程序的执行速度。为了实现指令的重叠执行方式,8086/8088微处理器内部分为两 个独立的功能部件:执行单EU和总线接口单BIU,执行单EU专门负责指令的 执行,总线接口单BIU是从内存指定区域取出指令送到指令队列缓冲器的。和BIU两 个功能部件并行工作,执行的BIUEUEU在前一时刻取出的指令,与此同时,BIU又取 出下一时刻要执行的指令,由此能使大部分取指令和执行指令的操作重叠进行,大大缩短 了等待指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。 2.完成下列补码运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出。 (1)00B+B(2)0B-B(3)876AH-0F32BH (4)B+B 答案:⑴C9HSF=1ZF=0CF=0OF=0未溢出⑵0B-B =0B+0BA3HSF=1ZF=0CF=10F=1有溢出求一Y的补码,即正数-Y 的真值(3)876AH-0F32BH=876AH+0CD5H943FHSF=1ZF=0CF=1OF=0未溢出(4) 7FHSF=0ZF=0CF=10F=1有溢出 3.存储器采用分段方法进行组织有哪些好处? 答案:8086微处理器CPU中寄存器都是16位,16位的地址只能访问大小为64KB以 内的内存。8086系统的物理地址由20根地址线形成,怎样用16位数据处理能力实现 20位地址的寻址呢?要做到对20位地址空间进行访问,就需要两部分地址,在8086系 统中,就是由段地址和偏移地址组成的。而这两个地址都是16位,将这两个地址采用相 加的方式组成20位地址去访问存储器。在8086系统的地址形成中,当段地址确定后, 该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改段寄存器的内容,可达 到逻辑段在整个1MB空间中浮动。各个逻辑段之间可以紧密相连,可以中间有间隔,也 可以相互重叠。采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统 的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。 4.lntel8086/8088处理器芯片功能强大,但引脚数有限,为了建立其与外围丰富的信息 联系,lntel8086/8088处理器引脚采用了复用方式,说明其采用了何种复用方式? 答案:8086CPU采用双列直插式的封装形式,具有40条引脚。由于受到引脚数量的限制, 8086引脚安排采用了复用技术。它的复用方式有两种:一是采用分时复用技术,在不同的 时刻通过相同的引脚传送不同的信息,从而减少了引脚的数量;二是采用了两种工作方式, 在不同的工作方式下,部分引脚具有两种不同的引脚功能。 5.8086CPU是怎样解决地址线和数据线的复用问题的?ALE信号何时处于有效电平? 答案:为解决引脚少的问题,8086CPU内部采用一个多路开关,使低16位地址线和16 位数据线共用引脚。因为当CPU访问存储器或外设时,先要给出访问单的地址,然后 才是读写数据,因此在时间上是可以区分的。在总线周期的第一个时钟周期(T1状态), 输出低16位地址(记为A15-A0),而在总线周期的其他时钟周期内传送数据。当CPU 处于“保持响应”状态时,这些引脚处于高阻隔离状态(即悬浮状态)。ALE信号是地址 锁存信号。8086在总线周期开始通过地址总线输出地址的同时,通过该引脚输出一个 正脉冲,其下降沿用于将地址信息写入外部的地址锁存器中。在任何一个总线周期的第 一个时钟周期时,ALE输出有效电平以表示在当前地址/数据复用总线上输出的是地址信 息,ALE作为锁存信号,对地址进行锁存。ALE端不能被浮空。 6.8086/8088系统用的时钟发生器会产生哪些信号? 答案:8284A是一个专用的时钟发生器,产生4.77MHz的标准时钟信号CLK,此时钟 信号作为系统时钟,并经CLK引脚直接送到8086,作为微处理器的时钟信号。同时 8284A还对复位和就绪信号实现内部的时钟同步,然后再输出,实施对8086的控制。 所以,8086/8088系统用的时钟发生器产生恒定的时钟信号CLK,复位信号RESET,准 备就绪信号READYo 7.说明8086CPU的READY输入信号和信号的作用是什么? 答案:READY输入信号实际上是由访问的存储器或外设发出的响应信号,高电平有效。 READY信号有效时,表示内存或外设准备就绪,马上就可以进行一次数据传输。CPU在 每个总线周期的T3状态开始对READY信号开始进行采样。如果检测到READY信号 为低电平,则在T3状态后插入等待状态Tw,在Tw状态CPU也对READY信号进行 采用,若READY信号仍为低电平,则会继续插入等待状态Tw,所以Tw状态可以插入 一个或多个,直到READY变为高电平,才进入T4状态,完成数据传输过程,从而结 束当前总线周期。测试信号,低电平有效,信号是和指令WAIT结合起来使用的,CPU 执行WAIT指令时,在CPU处于等待状态,当信号低电平时,等待状态结束,CPU继 续往下执行被暂停的指令。 第三章习题 一、选择题 1.寻址方式指出了操作数的位置,一般来说。 A.立即寻址给出了操作数的地址B.寄存器直接寻址的操作数在寄存器内,而指令给出了存 储器C.直接寻址直接给出了操作数本身D.寄存器直接寻址的操作数包含在寄存器内,由指 令指定寄存器的名称 答案:D 2.寄存器寻址方式中,操作数在oA.通用寄存器 答案:A 3.寄存器间接寻址方式中,操作数在。 A.通用寄存器 答案:C 4.下列指令中的非法指令是。 A.MOV[SI+BX],AXC.MOV[0260H],2346H 答案:B 5.设(SP)=0100H,(SS)=2000H,执行PUSHBP指令后,栈顶的物理地址是。 A.200FEH 答案:A 6.指令LEABX,TAB执行后,其结果是。A.将TAB中内容送BXC.将TAB的 偏移地址送BX 答案:C 7.下列正确的指令格式有。A.MOV[BX],1 答案:D 8.设(AX)=C544H,在执行指令ADDAH,AL之后,。A.CF=0,OF=0 答案:C 9.若AL、BL中是压缩BCD数,且在执行ADDAL,BL之后,(AL)=0CH,CF=1,AF=0» 再执行DAA后,(AL)=。A.02H 答案:B 10.执行下列程序后AL的内容为oMOVAL,25HSUBAL,71HDASA.B4HB.43H C.54HD.67HB.12HC.62HD.72HB.CF=0,OF=1C.CF=1,OF=0D,CF=1,OF=1B.MOV AL,0345HC.MOVES:PTR[CX],3D.XLATB,将TAB的段基址送BXD.将TAB所指单 的存储内容送BXB.0102HC.20102HD.OOFEHB.MOVCL,280D.MOVBX,[BX]B.堆 栈C.内存单D.段寄存器B.堆栈C.内存单D.段寄存器 答案:c 11.下列四条指令中,需要使用DX寄存器的指令是。 A.MULBX 答案:C 12.设(AL)=OEOH,(CX)=3,执行RCLAL,CL指令后,CF的内容。A.0答案: B13.下列四条指令中,错误的是。A.SHLAL,CX 答案:A 14.串操作指令中,有REP前缀的串操作指令结束的条件是。A.ZF=1 答案:D 15.对于下列程序段:AGAIN:MOVAL,[SI]MOVES:[DI],ALINCINCSIDIB.ZF=0 C.CX>0D.CX=0B.XCHGAL,BLC.MOVBX,[SI]D.ANDAX,BXB.1C.不变D.变反 B.DIVBLC.INAX,20HD.OUT20H,ALLOOPAGAIN也可用指令完成同样的功 能。A.REPMOVSB 答案:A 16.JMPWORDPTR[DI]是指令。A.段内间接转移答案:A17.条件转移指令 JNE的转移条件是oA.ZF=1 答案:C 18.下列指令中,影响标志位的指令是。 A.从存储器取数指令 答案:D 19.假设外部设备的状态字已经读入AL寄存器,其中最低位为0,表示外部设备忙。为了 判断外部设备是否忙而又不破坏其它状态位,应选用下列哪一组指令?A.C.RCRJZ ANDJZ 答案:D 20.假定一组相邻字节的首地址在BX中,末地址在DI中,为了使下面的程序段能用来查 找出其中第一个非零字节,并把它存放在AL中,在横线处应填入的指令是什么? SUBINCDI,BXDIAL,01H LabelAL,01H LabelD.B. CMPJZTESTJZAL,OOH LabelAL,01H LabelB.条件转移指令C.压栈指令D.循环移位指令B.CF=OC.ZF=OD.CF=1B.段内直接 转移C.段间间接转移D.段间直接转移B.REPLODSBC.REPSTOSBD.REPESCASB MOVNEXT:CMPLOOPMOV 答案:CCX,DI INCBXBYTEPTR[BX],0 NEXTAL,BYTEPTR[BX]B.SUBBX,BXC.DECBXD.INCBXA.MOVSI, CX 二、填空题 1.指令MOV[BX+SI],AL中的目的操作数使用段寄存器,属于寻址方式。 答案:数据段基址加变址 2.8086微机中,寄存器存放的是当前堆栈区的基地址。堆栈区的存取原则为 ,在8086/8088系统中,栈区最大容量为。若(CS)=2000H,(DS)=2500H, (SS)=3000H,(ES)=3500H,(SP)=0100H,(AX)=2FA6H,则这个栈区的物理地址的范围 为,CPU执行PUSHAX指令后,栈顶地址为,该栈顶单存放的内容 为。 答案:SS先进后出64KBPUSHBXPOPF指令执行完毕后,(SF,ZF,CF,OF)=。 答案:7531H,1,1,0,0 4.假设(DS)=1000H,(ES)=0200H,(BP)=0100H,(DI)=0200H,(10200H)=11H, (10201H)=12H,执行指令LEADX,[BP][DI]后,(DX)=。 答案:0300H 5.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=AAH,执行指令LEABX, [DI]后,BX中的内容是. 答案:01OOH 6.如果TABLE为数据段3400H单的符号名,其中存放的内容为0505H,当执行指 令MOVAX,TABLE后,(AX)=;而执行指令LEAAX,TABLE后,AX=。 答案:0505H,3400H 7.若(DS)=3000H,(SI)=2000H,(DI)=1000H,(AX)=2500H,(34000H)=00H, (34001H)=34H,(34002H)=00H,(34003H)=50H,变量AREA的值为3000H,执行 指令LDSSI,AREA[D叮后,SI的内容是,DS的内容是。 答案:3400H,5000H 8.已知(AL)=2EH,(BL)=6CH,执行ADDAL,BL之后,(AL)=,(BL)=, ZF=,AF=,OF=,PF=,CF=。答案:9AH6CH0, 1,1,1,0 9.CPU对两个无符号8位二进制数进行加法运算后,结果为0EH,且标志位CF=1, OF=1,SF=0,其结果应为十进制数。 答案:270 10.8086CPU执行SUBAH,AL后结果为(AH)=85H,OF=1,CF=1»若AH、AL中为带 符号30000H~300FFH300FEHA6H3.若(BX)=42DAH,则下列指令段数,则指令执行前 寄存器中的数大。 答案:AH 11.若(AX)=7531H,(BX)=42DAH,则CMPAX,BX指令执行后,(AX)=,(SF,ZF,CF, OF)=。 答案:42DAH1,0,0,0 12.设(AL)=B,则执行NEGAL后,(AL)=:设(AL)=B,则 执行NEGAL后,(AL)=。 答案:60H80H 13.假定(AX)=96H,(BX)=65H,依次执行ADDAX,BX指令和DAA指令后,(AL)=—。 答案:61H 14.执行下列指令序列后,(AH)=,(AL)=,CF=,AF=。MOVAX,0106H MOVBL,08HSUBAL,BLAAS 答案:(AL)=08H,(AH)=0,CF=AF=1 15.设(AL)=98H,(BL)=12H,(AX)=(OF)=(CF)=而执行指令 IMULBL后,(AX)=(OF)=(CF)= 答案:0AB0H0F8B0HMULAAM 答案:02H 17.CBW指令是将的符号扩展到中,如果(AL)=0A4H,则执行CBW指令后, (AX)=o 答案:ALXORDECMOVXCHGNEGAH0FFA4H 18.执行下列程序段后,给出指定寄存器的内容。AX,AXAXBX,6378HAX,BXBXBL11 1.1若执行指令MULBL后, 16.己知(AL)=6,(BL)=7,执行下述指令后,(AL)=AX和BX寄存器的内容为 。答案:6378H和0001H 19.执行下列指令后:MOVMOVROLDECMOVMULHLTAX,1234HCL,4AX,CLAX CX,4CX寄存器AH的值是,AL的值是» 答案:8DHOOH 20.假设(DX)=B,(CL)=03H,CF=1,执行SHLDL,CL后,(DX)=。答 案:B 21.下列指令段执行完毕后,(Sl)=,(Dl)=oSTDMOVAX,2500HMOVDS, AXMOVBX,3500HMOVES,AXMOVSI,1500HMOVDI,0400HMOVCX,3REP MOVSB 答案:14FDH 22.假设ES段中有一个字符串’12FG3LM5C’,其名为ARRAY。下面的程序段执行后CX 的值是。REPNESCASB24.已知(SS)=3000H,(SP)=0100H,执行下列程序后, (SP)=。 答案:5 23.假设(DS)=2000H,(BX)=1256H,(SI)=528FH,位移量TABLE=20A1H,(232F7H)=80H, (232F8H)=32H,(264E5H)=50H,(264E6H)=24H:执行指令执行指令执行指令 答案:1256H3280H2450H 24. 答案:00FEH 25.已知(IP)=1000H,(SP)=2000H,(BX)=283FH,指令CALLWORDPTR[BX]的机器代 码是FF17H,试问执行该指令后,内存单1FFEH中的内容是。 答案:02H 三、问答题 1.设DS=1000H,ES=3000H,SS=4000H,SI=OOAOH,BX=0700H,BP=0070H,执行 指令为MOVAX,[BX+5]。(1)指令使用的是何种寻址方式?(2)源数据的逻辑地址和物理 地址分别是多少?(3)若源数据为1234H,则执行指令后上述各寄存器的内容是什么? 答案:基址寻址,基址寄存器是BX,源操作数在数据段中,源操作数的逻辑地址是: EA=BX+5=0700H+5=0705H源操作数的物理地址是:10705H若源数据为1234H,则执 行指令后,AX中的内容就为1234H,其余寄存器的内容不变。 2.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式,并写出指令中存储器操 作数的物理地址的计算公式。⑴MOVAX,2408H(2)MOVBX,[SI](3)MOV[BP+1OOH],AX (4)MOV[BX+DI],’$,(5)MOVDX,ES:[BX+SI] 答案:⑴立即寻址,(AX)=2408H⑵寄存器寻址,物理地址:10Hx(DS)+EA=10Hx(DS)+(SI) (3)寄存器寻址,物理地址:10Hx(SS)+(BP)+0100H(4)基址加变址寻址,物理地址: 10Hx(DS)+(BX)+(DI)(5)基址加变址,带有段超越前缀,物理地址:10Hx(ES)+(BX)+(SI) 3.写出能完成下述操作的指令。 ⑴将立即数1234H送至DS寄存器。 ⑵将存储单3000H和内容送至4000H单。 (3)将累加器AX与寄存器CX中的内容对调。 答案:(1)MOVAX,1234H MOVDS,AX (2)MOVAX,[3000H] MOV[4000H],AX (3)XCHGAX,CX 4.编程:将数据段中以BX为偏移地址的连续4单的内容颠倒过来。 答案:MOVAL,[BX] XCHGAL,[BX+3] MOV[BX],AL MOVAL,[BX+1] XCHGAL,[BX+2] MOV[BX+1],AL 5.已知(DS)=091DH,(SS)=(1E4AH),(AX)=1224H,(BX)=0024H,(CX)=5678H, (BP)=0024H,(SI)=0012H,(DI)=0032H,(09214H)=085BH,(09226H)=00F6H, (09228H)=1E40H,(1E4F6H)=091DHo试问下列指令或指令段执行后结果如何? (1)M0VCL,[BX+20H](2)M0V[BP][DI],CX(3)LEABX,[BX+20H][SI]MOVAX,[BX+2] (4)LDSSI,[BX][DI]MOVBX,[SI](5)XCHGCX,[BX+32H]XCHG[BX+20H][SI],AX 答案:(1)CL=5BH (2)(1E4F6H)=5678H (3)(AX)=1E40H (4)(BX)=091DH (5)(AX)=5678H,(09226H)=1224H 6.十六进制0〜9,A〜F对应的ASCII码为30H〜39H,41H〜46H,依次放在内存 以TABLE开始的区域,将AL中某一位十六进制数xH转换为对应的ASCII码,请编写 程序段。 答案:LEABX,TABLEMOVAL,xxHXLAT 7.将AX寄存器清零有4种方法,试写出这4条指令。 答案:MOVAX,OOH SUBAX,AX ANDAX,OOH XORAX,AX 8.使用一条逻辑运算指令实现下列要求:(1)使AL高4位不变,低4位为0。(2)使AL 最高位置1,后7位不变。(3)使AL中的bit3,bit4变反,其余位不变。(4)测试判断CL 中的b让2、b让5、bit7是否都为1o 答案:(1)ANDAL,0F0H (2)ORAL,80H (3)XORAL18H (4)TESTAL,0A4H 9.试分析下面的程序段完成什么功能。 MOVCL,4 SHLAX,CL SHLBL,CL MOVAL,BL SHRDH,CL ORAL,DH 答案:将AX中间8位,BX的低4位,DX的高4位组成一个新字存放在AX中。 10.若要将源串100个字节数据传送到目标串单中去,设源串首址的偏移地址为 2500H,目标串首址的偏移地址为1400H,请编写程序实现以下功能。(1)完成源串到目 标串的搬移。(2)比较两串是否完全相同,若两串相同,则BX寄存器内容为0;若两串 不同,则BX指向源串中第一个不相同字节的地址,且该字节的内容保留在AL的寄存 器中。 答案:(1)CLD MOVCX,100 MOVSI,2500H MOVDI,1400H REPMOVSB (2)CLD MOVCX,100 MOVSI,2500 MOVDI,1400 REPECMPSB JZEsigusoft DECSI MOVBX,SI MOVAL,[SI] JMPSTOP Esigusoft:MOVBX,0 STOP:HLT 11.下列指令段的功能是:从内存2000H:0A00H开始的2KB内存单清零。请在下列 空格中填入合适的指令,程序指令完成后DI的内容是多少。CLDMOVAX,2000H XORAL,ALHLT 答案:MOVES,AXMOVDI,0A00HXORAL,ALMOVCX,800HREPSTOSBHLT 第四章习题答案 一、选择题 1.下列描述正确的是。 A.汇编语言源程序可直接运行B.汇编语言属于低级语言C.汇编程序是用汇编语言编写的 程序,运行速度高,阅读方便,属于面向用户的程序语言。D.汇编语言可以移植 答案:B 2.分析下面的程序,变量VAR2的偏移地址是oDATASEGMENTORG2VAR1 DB2,3,4ORG$+3VAR2DW1234HDATAENDSA.02HB.04HC.05HD.08H 答案:D 3.为了使MOVAX,VAR指令执行后,寄存器中的内容为4142H,AX下面哪一种数据 定义会产生不正确的结果? A.VARDW4142HB.VARDW16706C.VARDB42H,41HD.VARDW’AB’ 答案:C 4.下列伪指令中是正确的。 A.ERR1:DW99B.ERR2DB25*60C.COUNTEQU20D.ONEDBONE 答案:C 5.执行下列指令后,寄存器CL的值是。STR1DW’AB’STR2DB16DUP(?) CNTEQU$-STR1MOVCX,CNTMOVAX,STR1HLTA.10HB.12HC.OEHD.OFH 答案:B 二、填空题 1.汇编语言的调试过程如下:建立以为扩展名的源文件;生成以为扩展名的 目标文件;生成以为扩展名的可执行文件;使用DEBUG调试程序,调试可执行 目标程序。 答案:.asm.obj.exe 2.执行下列指令后,(AX)=,(BL)=。ADW’EF’BDB’ABCDEF’MOV AX,AMOVBL,B[3]HLT 答案:4546H44H 3.执行下面程序段后,AL中的内容是。BUFDW1234H,5678H,0001HMOVBX, OFFSETBUFMOVAL,2XLAT 答案:78H 4.若符号定义语句如下,贝IL=。BUF1DB1,2,’12’BUF2DB0LEQU BUF2-BUF1 答案:4 5.执行下列程序段后,BX寄存器间址单的内容是。ORG1FFFHDB4FH,50H, 51HMOVBX,1FFFHINC[BX]INCBXDEC[BX] 答案:4FH 6.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:TABLE1 DB?TABLE2DW20DUP(?)TABLE3DB’ABCD’……MOVAX,TYPETABLE1; (AX)=_MOVBX,TYPETABLE2;(BX)=MOVCX,LENGTHTABLE2;(CX)= MOVDX,SIZETABLE2;(DX)=MOVSI,LENGTHTABLE3;(Sl)= 答案: 7.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。 DATASEGNEBTFIRSTDB_OHSECONDDB,DATAENDS CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX MOVCX,MOVSI,0NEXT:MOVAL,SECOND[SI]ADCFIRST[SI],AL INCSILOOPNEXTMOVAL,0ADCALMOVFIRST[SI],ALMOVAH,4CHINT 21HCODEENDSENDSTART 答案:OBH8AH05HD7H2CLC0 8.下面程序的功能是求有符号数中绝对值最小的数,并将最小绝对值存放在DAT2字节中, 填空使程序正确实现此功能。程序执行后,DAT2单中的内容是。DATA SEGMENTDAT1DB65H,88H,20H,0F6HNEQU$-DAT1DAT2DB?DATAENDS CODESEGMENTSTART:MOVAX,DATALEASI, DAT1MOVCX,N-1MOVAL,[SI]TESTAL,80HJZLPONEGALLPO:MOVDAT2,AL LP1:MOVBL,[SI]TESTBL,80HJZLP2NEGBLLP2:JBLP3 MOVDAT2,BLMOVAL,BLLP3:MOVAH,4CHINT21HCODEENDSEND START 答案:ASSUMEDS:DATA,SS:STACK,CS:CODEMOVDS,AXINCSICMPDAT2,BL LOOPLP1DAT2单中的内容:OAH 9.填空说明在下列程序段执行过程中相应寄存器中的值。假设程序执行前DS=3000H, SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。ANDBX,OOFFHCALL MYSUBNOP;SP=;AX=;BX=PROCPUSHAXPUSHBX PUSHCXSUBAX,BX;SP=POPCXPOPAXPOPBXNOP;SP=RET MYSUBENDP 答案:3000H0034H4567H2FF8H2FFEH10.完善程序。BUFFER单开始放置一个数 据块,BUFFER单存放预计数据块的长度为20H,BUFFER+1单存放的是实际从 键盘输入的字符串的长度,BUFFER+2开始存放的是从键盘从接收的字符,请将这些 从键盘接收的字符再在屏幕上显示出来。MOVDX,OFFSETBUFFERMOVAH, INT21H;读入字符串LEADX,MOVAL,;实际读入的字符串的字符个数 MOVAH,0ADDBX,AXMOVAL,MOV[BX+1],ALMOVAH,INCDX;确定显 示字符串的首址INT21HMOVAH,;系统返回
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/37727.html