微机原理与接口技术试题库汇总

上传人:jin****ng 文档编号:133182292 上传时间:2022-08-09 格式:DOCX 页数:45 大小:92.03KB
返回 下载 相关 举报
微机原理与接口技术试题库汇总_第1页
第1页 / 共45页
微机原理与接口技术试题库汇总_第2页
第2页 / 共45页
微机原理与接口技术试题库汇总_第3页
第3页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一、问答题1下列字符表示成相应的ASCII码是多少?(1) 换行OAH(2)字母“Q”51H(3) 空格20H2、下列各机器数所表示数的范围是多少?(1) 8位二进制无符号定点整数;0255(2) 8位二进制无符号定点小数;(3) 16位二进制无符号定点整数;065535(4) 用补码表示的16位二进制有符号整数;-32768327673、(111)=273,基数X=?164、有一个二进制小数X=若使X1/2,贝UX1X6应满足什么条件?X1=1若使X1/8,贝UX1X6应满足什么条件?X1VX2VX3=15、有两个二进制数X=01101010,Y=,试比较它们的大小。(1) X和Y两个数均为无符号数;XY(2) X和Y两个数均为有符号的补码数。XY(2)XY二、填空题1、R个,02、110Q3、43H4、5、B三、选择题1、D2、A3、A4、B5、C6、B7、D8、C9、B10、D四、是非判断题1. V2、X3、X4、X5、“微处理器,微型计算机和微型计算机系统三者之间有何区别?答:微处理器即CPU它包括运算器、控制器、寄存器阵列和内部总线等部分,用于实现微型计算机的运算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储器、I/O接口电路以及总线构成;微型计算机系统则包括硬件系统和软件系统两大部分,其中硬件系统又包括微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成部分,而微型计算机系统又主要由微型计算机作为其硬件构成。1. CPU在内部结构上由哪几部分构成?CPU应具备哪些主要功能?答:CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。2. 累加器和其它通用寄存器相比有何不同?累加器除答:累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其独特之处。了可用做通用寄存器存放数据外,对某些操作,一般操作前累加器用于存放一个操作数,操作后,累加器用于存放结果。3. 微型计算机的总线有哪几类?总线结构的特点是什么?答:微型计算机的总线包括地址总线、数据总线和控制总线三类,总线结构的特点是结构简单、可靠性高、易于设计生产和维护,更主要的是便于扩充。4. 举出10个微型计算机应用的例子。答:略计算机I/O接口有何用途?试列出8个I/O接口。答:计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机与外设之间的信息流通和交换。例如:串行通讯口(COM口)、并行打印机口、软盘驱动器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(USB、SCSI等)。5. 现在,计算机主板上一般都包括哪些I/O接口?I/O接口卡如何与主板相连?答:现在,计算机主板上一般包括串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器接口、光驱接口、USB接口等。象显示器适配器、网卡、modem卡等I/O接口卡一般通过总线插槽与主板相连。6. 简述系统总线,AGP总线,PCI总线及ISA总线的作用。答:系统总线是CPU与存储器及桥接器之间传递信息的通道,AGP总线专门用与连接CPU与显示器适配器,PCI总线一般用于连接一些高速外设接口作为高速外设与CPU或内存交换信息的通道,而ISA总线一般用于连接一些非高速外设接口作为非高速外设与CPU或内存交换信息的通道。7. 试说明计算机用户,计算机软件,计算机硬件三者的相互关系。答:计算机用户,计算机软件系统,计算机硬件系统共同构成一个计算机应用系统,三者在该系统中处于三个不同的层次。计算机用户处于最高层,计算机软件处于中间层,计算机硬件系统处于最下层。在这里计算机用户是系统的主宰,他们通过软件系统与硬件系统发生关系,指挥计算机硬件完成指定的任务。即,计算机用户使用程序设计语言编制应用程序,在系统软件的干预下使用硬件系统进行工作。8. 简述DOS操作系统各部分的作用及相互关系。答:DOS操作系统包括3个模块:DOS-Shell、DOS-Kernel、DOS-BIOS.DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。即负责DOS命令的解释和任务的分配,具体工作则要靠DOS-Kernel模块所提供的系统功能完成。DOS-Kernel模块尽管提供了许多的系统功能,但由于执行每一个系统功能过程中,完全依赖各种设备实现指定的功能,因此,它还要进一步调用DOS-BIOS模块中的设备驱动程序才能工作。DOS-BIOS模块对DOS-Kernel传送的请求进行解释,最终转换为对固化在ROM-BIOS中的设备控制程序的请求并由它们去控制硬件,完成指定的操作。9. 存储单元的选择由什么信号控制?读、写靠什么信号区分?答:存储单元的选择由地址信号控制,而对存储单元进行读操作还是写操作则要靠读、写信号区分。10. 以一个可执行文件的运行为例,简述程序执行过程。答:当在DOS提示符下键入一个可执行文件名称(或在其它操作系统环境下执行有关操作)后,操作系统自动将该文件从外存装入内存并使指令指针指向其第一条指令,从而启动文件执行过程。首先将第一条指令从内存取入CPU中译码执行,同时指令指针自动加1或按指令的要求作出相应改变,指向下一条要执行的指令,接着将下一条指令从内存取入CPU译码执行,这样不断重复取指令和执行指令的过程,逐条执行指令,直至程序结束。1.把下列各数化成二进制数和八进制数(二进制取3位小数,八进制取一位小数):7+34,364,答:7+3/4=;7+3/4=;3/64=;3/64=;=;=;把下列各数化成十进制数:,答:=;=;=完成下列二进制数运算:+,*,1/1101答:+=;*=;1/1101=2. 完成下列各十六进制数的运算:A39E+28DC,D5AB-7CE5,2BF*4C,C16E/3A答:A39E+28DC=CC7A;D5AB-7CE5=58C6;2BF*4C=D0B4;C16E/3A=3. 先将15B*8E/2A中的十六进制数化成十进制数,再进行计算,最后再将结果化为十六进制数。答:15BH*8EH/2AH=347*142/42=49274/42=试分别判断下列各组数据中哪个数据最大?哪个数据最小?(1) A=,B=,C=(2) A=B,B=1001D,C=111H答:(1)A最大,C最小;(2)B最大,A最小;1. 写出下列各数的二进制原码和补码(最后两个用双字节):0,96,-128,-38H,127,105,879H,-32768答:上述各数的原码依次为:00000000(),01100000,无,01111111,01101001,0000,无;上述各数的补码依次为:00000000,01100000,01111111,01101001,0000,000;分别列出下述10进制数的16进制数、非压缩的BCD数、压缩的BCD数、ASCII数字串(用16进制形式写出):10,64,78,81,92,100,125,255答:上述各数的16进制数依次为:AH,40H,4EH,51H,5CH,64H,7DH,FFH;上述各数的非压缩的BCD数依次为:0100H,0604H,0708H,0801H,0902H,010000H,010205H,020505H;上述各数的压缩的BCD数依次为:10H,64H,78H,81H,92H,0100H,0125H,0255H;上述各数的ASCII数字串依次为:3130H,3634H,3738H,3831H,3932H,313030H,313235H,323535H;2. 用10进制数写出下列补码表示的机器数的真值:71H,1BH,80H,F8H,397DH,CF42H,9350H答:上述补码表示的各机器数的真值用10进制数分别表示为+113,+27,-128,-8,+14717,-20670,-278283. 若用一个字节来表示带符号数,判断下列各运算在机内进行时是否会产生溢出,写出判断过程。A. 5BH+32H;B.-08H-15H;C.-51H+(-3DH);D.2DH+3CH答:A.产生溢出,5BH=01011011B其补码表示的机器数为:0101101132H=00110010B其补码表示的机器数为:00110010相加的结果为:数值最高位向符号位进位,但符号位向前无进位,故产生溢出。B. 不产生溢出,-08H=-00001000B其补码表示的机器数为:-15H=-00010101B其补码表示的机器数为:相加的结果为:1数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出.C. 产生溢出,-51H=-01010001B其补码表示的机器数为:-3DH=-00111101B其补码表示的机器数为:相加的结果为:0数值最高位向符号位无进位,但符号位向前进位,故产生溢出.D. 不产生溢出,2DH=00101101B其补码表示的机器数为:001011013CH=00111100B其补码表示的机器数为:00111100相加的结果为:01101001数值最高位向符号位无进位,符号位向前也无进位,故不产生溢出。4. 从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?从键盘敲入16进制数字符0F,如何转换为其相对应的二进制数(0000000000001111)?答:从键盘敲入一大写字母后,将其ASCII码加上20H,就转换成了与其相对应的小写字母。从键盘敲入16进制数字符09后,将其ASCII码值减去30H,就转换成了与其相对应的二进制数.从键盘敲入16进制数字符AF后,将其ASCII码值减去37H,就转换成了与其相对应的二进制数.5. 详细叙述总线缓冲器的作用。答:总线缓冲器的作用主要是控制各路数据在总线上的交叉传送避免相互冲突,当几路数据都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据与总线断开。6. 锁存器和寄存器有什么不同?答:锁存器与寄存器都是用来暂存数据的器件,在本质上没有区别,不过寄存器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。从功能上分成了EU和BIU两部分。这样设计的优点是什么?答:传统计算机在执行程序时,CPU总是相继地完成取指令和执行指令的动作,即,指令的提取和执行是串行进行的。而8086CPU在功能上分成了EU和BIU两部分,BIU负责取指令,EU负责指令的执行,它们之间既互相独立又互相配合,使得8086可以在执行指令的同时进行取指令的操作,即实现了取指令和执行指令的并行工作,大大提高了CPU和总线的利用率,从而提高了指令的处理速度。CPU中地址加法器的重要性体现在哪里?答:地址加法器是8086CPU的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64K扩大到1M极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。CPU中有哪些寄存器?分组说明用途。哪些寄存器用来指示存储器单元的偏移地址?答:8086CPU中有8个通用寄存器AXBXCXDXSP、BPSI、DI;两个控制寄存器IP、FL;四个段寄存器CSDSSSES8个通用寄存器都可以用来暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累加器,某些指令指定用它存放操作数和运算结果;CX为计数寄存器,在某些指令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来存放栈顶有效地址。两个控制寄存器用来存放有关的状态信息和控制信息。例如,标志寄存器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取指令的有效地址。四个段寄存器用来存放段地址。例如,CS寄存器用来存放代码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段的段地址;ES寄存器用来存放扩展段的段地址。系统中存储器的逻辑地址由哪两部分组成?物理地址由何器件生成?如何生成?每个段的逻辑地址与寄存器之间有何对应关系?答:8086系统中存储器的逻辑地址由段地址(段首址)和段内偏移地址(有效地址)两部分组成;存储单元的物理地址由地址加法器生成,寻址时,CPU首先将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段内偏移地址相加,得到一个20位的物理地址。数据段的段地址在DS寄存器中,段内偏移地址可能在BX、BPSI或DI寄存器中。代码段的段地址在CS寄存器中,段内偏移地址在IP寄存器中。堆栈段的段地址在SS寄存器中,段内偏移地址在SP寄存器中。扩展段的段地址在ES寄存器中,段内偏移地址可能在BX、BP、SI或DI寄存器中。5. 设CPU中各有关寄存器的当前状况为:SS=0a8bHDS=17ceHCS=dc54HBX=394bHIP=2f39HSP=1200H,BX给出的是某操作数的有效地址,请分别写出该操作数下一条要取的指令及当前栈顶的逻辑地址和物理地址。答:该操作数的逻辑地址为DS:BX=17CE394BH,物理地址=17CEH*10H+394BH=1B62BH下一条要取的指令的逻辑地址为CSIP=DC54:2F39H,物理地址=DC54H*10H+2F39H=DF479H当前栈顶的逻辑地址=SS:SP=0A8B1200H,物理地址=0A8BH*10H+1200H=0BAB0H若DS=157DH时,某操作数的物理地址是215FAH当DS=18DEH寸,该操作数的物理地址是多少?答:该操作数的段内偏移地址=该操作数的物理地址-DS=215FAH-157D0H=BE2AH,故当DS=18DEH寸,该操作数的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH6. 设AX=2875H、BX=34DFHSS=1307HSP=8H依此执行PUSHAX、PUSHBXPOFAXPOPCX后栈顶指针变为多少?AX=?BX=?CX=?答:当前栈顶指针=SS*10H+SP=13070H+8H=13078,依此执行PUSHAXPUSHBXPOPAXPOPCX后栈顶指针仍为13078H。但AX=34DFHBX=34DFHCX=2875H1. 假定(BX)=637DH(SI)=2A9BH位移量D=3237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址(2)直接寻址(3)使用BX的寄存器寻址(4)使用BX的间接寻址(5)使用BX的寄存器相对寻址(6)基址变址寻址(7)相对基址变址寻址答:(1)立即数寻址的有效地址是当前IP的内容;(2)直接寻址,若使用位移量D=3237H进行,则有效地址为3237H;(3)使用BX的寄存器寻址时,操作数在BX寄存器中,因此无有效地址;(4)使用BX的间接寻址时,有效地址在BX寄存器中,即有效地址=637DH;(5)使用BX的寄存器相对寻址的有效地址=(BX+D=637DH+3237H=95B4H(6)基址变址寻址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18;H(7)相对基址变址寻址的有效地址=(BX)+(SI)+D=C050H;写出把首地址为BLOCK勺字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答:(1)使用寄存器间接寻址,把首地址为BLOCK勺字数组的第6个字送到DX寄存器的指令为:MOVBX,BLOCKADDBX,12MOVDX,BX(2) 使用寄存器相对寻址,把首地址为BLOCK勺字数组的第6个字送到DX寄存器的指令为:MOVBX,BLOCKMOVDX,BX+12(3) 使用基址变址寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:MOVBX,BLOCKMOVSI,12MOVDX,BX+SI现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。(1)MOVAX,1200H(2)MOVAX,BX(3) MOVAX,1200H(4)MOVAX,BX(5) MOVAX,BX+1100(6)MOVAX,BX+SI(7)MOVAX,BX+SI+1100答:(1)指令MOVAX1200H执行完后AX寄存器的内容为1200H;(2) 指令MOVAXBX执行完后AX寄存器的内容为0100H;(3) 指令MOVAX,1200H是将从物理地址=(DS)*10H+1200H=21200H开始的两个单元内容送AX执行完后AX寄存器的内容为4C2AH(4) 指令MOVAX,BX是将从物理地址=(DS)*10H+(BX)=20100H开始的两个单元内容送AX,故执行完后AX寄存器的内容为3412H;(5) 指令MOVAXBX+1100是将从物理地址=(DS*10H+(BX+1100H=21200H开始的两个单元内容送AX故执行完后AX寄存器的内容为4C2AH(6) 指令MOVAXBX+SI是将从物理地址=(DS*10H+(BX)+(SI)=20102H开始的两个单元内容送AX故执行完后AX寄存器的内容为7856H;(7) 指令MOVAX,BX+SI+1100是将从物理地址=(DS)*10H+(BX)+(SI)+1100H=21202H开始的两个单元内容送AX故执行完后AX寄存器的内容为65B7H;假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?1)MOVAX,0ABH(2)MOVAX,BX3)MOVAX,100H(4)MOVAX,VAL5)MOVAX,BX(6)MOVAX,ES:BX7)MOVAX,BP(8)MOVAX,SI9)MOVAX,BX+10(10)MOVAX,VALBX11)MOVAX,BXSI(12)MOVAX,BPSI答:(1)在指令MOVAX,0ABH中,源操作数字段的寻址方式是立即数寻址,其物理地址值=(CS)*10H+(IP);(2) 在指令MOVAXBX中,源操作数字段的寻址方式是寄存器寻址,操作数在BX中,无物理地址;(3)在指令MOVAX,100H中,源操作数字段的寻址方式是直接寻址,其物理地址值=(DS)*10H+100=29000H+100H=29100;(4)在指令MOVAX,VAL中,源操作数字段的寻址方式是直接寻址,其物理地址值=(DS)*10H+50H=29000H+50H=29050H;(5)在指令MOVAX,BX中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(DS*10H+(BX)=29000H+100H=29100H(6)在指令MOVAX,ES:BX中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(ES)*10H+(BX)=21000H+100H=21100H;(7)在指令MOVAX,BP中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(SS*10H+(BP)=15000H+10H=15010H(8)在指令MOVAX,SI中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(DS)*10H+(SI)=29000H+0A0H=290A0;H(9)在指令MOVAX,BX+10中,源操作数字段的寻址方式是寄存器相对寻址,其物理地址值=(DS)*10H+(BX)+0AH=29000H+100H+0AH=2910AH;(10)在指令MOVAX,VALBX中,源操作数字段的寻址方式是寄存器相对寻址,其物理地址值=(DS)*10H+(BX)+50H=29000H+100H+50H=29150H;(11) 在指令MOVAX,BXSI中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=(DS)*10H+(BX)+(SI)=29000H+100H+0A0H=291A0H;(12)在指令MOVAX,BPSI中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=(SS)*10H+(BP)+(SI)=15000H+10H+0A0H=150B0H2. 分别指出下列指令中的源操作数和目的操作数的寻址方式。1)MOVSI,2002)MOVCX,DATASI3)ADDAX,BX+DI4)ANDAX,BX5)MOVSI,AX6)PUSHF答:(1)目的操作数字段的寻址方式是寄存器寻址,源操作数字段的寻址方式是立即数寻址;(2)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是寄存器相对寻址;(3)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是基址变址寻址;(4)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式也是寄存器寻址;(5)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器寻址;(6)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器寻址;试述指令MOVAX2010H和MOVAXDS:2010H的区别。答:指令MOVAX2010H是将立即数2010H送AX寄存器,而指令MOVAXDS:2010H是将DS段有效地址为2010H的两个单元的内容送AX。3. 写出以下指令中内存操作数的所在地址。(1)MOVAL,BX+5(2)MOVBP+5,AX(3)INCBYTEPTRSI+3(4)MOVDL,ES:BX+DI(5)MOVBX,BX+SI+2答:(1)指令MOVALBX+5中内存操作数的所在地址=(DS)*10H+(BX)+5;(2)指令MOVBP+5,AX中内存操作数的所在地址=(SS*10H+(BP+5和(SS*10H+(BP)+6;(3)指令INCBYTEPTRSI+3中内存操作数的所在地址=(DS)+(SI)+3;(4)指令MOVDLES:BX+DI中内存操作数的所在地址=(ES*10H+(BX)+(DI);(5)指令MOVBX,BX+SI+2中内存操作数的所在地址=(DS)*10H+(BX)+(SI)+2和(DS)*10H+(BX)+(SI)+3;判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令(8)、(13)除外)期望实现的操作。(1)MOVAL,BX(9)MOVES,3278H(2)MOVAL,SL(10)PUSHAL(3)INCBX(11)POPBX(4)MOV5,AL(12)MOV1A8H,23DH(5)MOVBX,SI(13)PUSHIP(6)MOVBL,F5H(14)MOVAX,23DH(7)MOVDX,2000H(15)SHLAX,5(8)POPCS(16)MULAX,BX答:(1)MOVAL,BX错,源操作数为字类型,目的操作数为字节类型,二者不一致。应改为:MOVAX,BX或MOVAL,BL;(2)MOAL,SL错,SI寄存器不能分为高8位和低8位使用,即没有SL寄存器。应改为:MOVAX,SIINCBX错,未指定操作数的类型。应改为:INCBYTEPTRBX(3) MOV5,AL错,目的操作数使用了立即数,在指令中一般不允许。应改为:MOVDS:5,ALMOVBX,SI错,源操作数和目的操作数均为内存单元,不允许。应改为:MOVAX,SIMOVBX,AX(4) MOVBL,F5H错,源操作数错,以AF开头的数字前应加0。应改为:MOVBL,0F5H(5) MOVDX,2000H正确。(6) POPCS错,不能将栈顶数据弹至CS中。(7) MOVES3278H错,立即数不能直接送ES寄存器。应改为:MOVAX,3278HMOVES,AX(10)PUSHAL错,栈操作不能按字节进行。应改为:PUSHAX(11)POPBX正确。(12) MOV1A8H,23DH错,源操作数是立即数,目的操作数必须使用寄存器指出。应改为:MOVBX,1A8HMOVBX,23DH(13) PUSHIP错,不能用IP寄存器做源操作数。(14) MOVAX,23DH错,不能用AX寄存器间接寻址。应改为:MOVBXAXMOVBX,23DH(15) SHLAX,5错,不能用大于己于1的立即数指出移位位数。应改为:MOVCL,5SHLAX,CL(16) MULAX,BX错,目的操作数AX是隐含的,不能在指令中写出。应改为:MULBX设堆栈指针SP的初值为2000H,AX=3000HBX=5000H试问:(1) 执行指令PUSHAX后(SP)=?(2) 再执行PUSHBX及POPAX后(SP)=?(AX)=?(BX)=?答:(1)执行指令PUSHAX后(SP)=2000H-2=1FFEH;(2) 再执行PUSHBX及POPAX后(SP)=1FFEH,(AX)=5000H,(BX)=5000H要想完成把2000H送1000H中,用指令:MOV1000H,2000H是否正确?如果不正确,应用什么方法?答:把2000H送1000H中,用指令MOV1OOOH,2000H不正确,应改为:MOAX,2OOOHMOV1000H,AX假如想从200中减去AL中的内容,用SUB200,AL是否正确?如果不正确,应用什么方法?答:想从200中减去AL中的内容,用SUB200,AL不正确,应改为:MOVBL,200SUBBL,AL12分别写出实现如下功能的程序段(1) 双字减法(被减数7B1D2A79H减数53E2345FH)。(2) 使用移位指令实现一个字乘18的运算。(3) 使用移位指令实现一个字除以10的运算。(4) 将AX中间8位,BX低四位,DX高四位拼成一个新字。(5) 将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中。答:(1)双字减法的程序段是:MOVAX,2A79H;被减数的低位字送AXSUBAX,345FH;低位字相减,结果送AXMOVBX,7B1DH;被减数的高位字送BXSBBBX,53E2H;高位字相减处并减去低位字相减产生的借位,结果送BX(2)使用移位指令实现一个字乘18的程序段是:MOVAX,05F7H;被乘数送AXSHLAX,1;被乘数乘以2,结果在AX中(3)使用移位指令实现一个字除以10的运算,必须将X/10拆分成多项的和,而每一项都应是非的某次幕的倒数。利用等比级数的前N项和公式,可求出A0=X/8,公比Q=-1/4,故MOVCL,3;设置移位位数3SHLAX,CL;被乘数再乘以8(共乘以16),结果在AX中ADDAX,BX;被乘数再乘以18,结果在AX中X/10=X/8-X/32+X/128-X/512+.,所求的程序段是:MOVAX,FE00H;被除数送AXMOVCL,3;设置移位位数3SHRAX,CL;被乘数除以8,结果在AX中MOVBX,AX;被乘数除以8的结果暂存到BXMOVCL,2;设置移位位数2SHRAX,CL;被乘数除以4(累计除32),结果在AX中SUBBX,AX;被除数/8-被除数/32,结果在BX中MOVCL,2;设置移位位数2SHRAX,CL;被乘数除以4(累计除128),结果在AX中ADDBX,AX;被除数/8-被除数/32+被除数/128,结果在BX中MOVCL,2;设置移位位数2SHRAX,CL;被乘数除以4(累计除512),结果在AX中SUBBX,AX;被除数/8-被除数/32+被除数/128-被除数/512,结果在BX中(4)将AX中间8位,BX低四位,DX高四位拼成一个新字的程序段是:ANDDX,0F000H;将DX的低12位清零,高4位不变ANDAX,0FF0H;将AX的低4位清零,高4位清零,中间8位不变ANDBX,0FH;将BX的高12位清零,低4位不变ADDAX,BXADDAX,DX;按要求组成一个新字,结果放在AX中。(5)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来的程序段是:MOVAL,BX;数据段中BX为偏移地址的字单元内容送AXXCHGAL,BX+3;数据段中BX+3为偏移地址的字单元内容与AX的内容交换MOVBX,AL;数据段中BX+3为偏移地址的字单元内容送BX为偏移地址的字单元MOVAL,BX+1;数据段中BX+1为偏移地址的字单元内容送AXXCHGAL,BX+2;数据段中BX+2为偏移地址的字单元内容与AX的内容交换MOVBX+1,AL;数据段中BX+2为偏移地址的字单元内容送BX+1为偏移地址的字单元将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中的程序段是:MOVDL,BL;四位压缩BCD数的低位字节送DLANDDL,0FH;DL的高4位清零,得四位非压缩BCD数的最低位,放入DL中MOVCL,4;设置移位位数4SHRBX,CL;BX中的数据逻辑右移4位,使四位压缩BCD数的次低位位于BL的低4位MOVCH,BL;将BL的内容暂存到CH中保留ANDCH,0FH;CH的高4位清零,得四位非压缩BCD数的次低位,放CH中MOVCL,4;设置移位位数4SHRBX,CL;BX中的数据逻辑右移4位,使四位压缩BCD数的次高位位于BL的低4位MOVAL,BL;将BL的内容暂存到AL中保留ANDBL,0FH;BL的高4位清零,得四位非压缩BCD数的次高位,放BL中MOVCL,4;设置移位位数4SHRAL,CL;使四位压缩BCD数的最高位位于AL的低4位,得四位非压缩BCD数的次高;位,放入BL中MOVCL,CH;将四位非压缩BCD数的次低位移入CL中1. 假设OP1,OP2是已经用DB定义的变量,W_0P3和W_OP是已经用DW定义的变量,判断下列指令书写是否正确?如有错误,指出错在何处?并写出正确的指令(或程序段)实现原错误指令期望实现的操作(19)、(20)不改)。(1) PUSHOP1(2) POPW_OP4(3) MOVAX,WORDPTRSIDI(4) MOVAX,WORDPTRES:BX(5) MOVBYTEPTRBX,1000(6) MOVBX,OFFSETSI+200H(7) MOVOP2,BX(8) CMPHIGHW_OP3,25(9) CMPOP1,OP2(10) CMPAX,OP2(11) MOVW_OP3BX+4*3DI,SP(12) ADDW_OP3,W_OP4(13) MOVAX,W_OP3DX(14) MOVOP1,LOWDS(15) MOVSP,OP2BXSI(16) MOVAX,W_OP3+W_OP4(17) MOVAX,W_OP3-W_OP4+100(18) SUBAL,W_OP3+7(19) MOVAX,BXSHL2(20) MOVBX,W_OP3AND8FD7H答:1.(1)PUSHOP1错,0P1为字节类型,栈操作不能按字节进行,应改为:PUSHWORPTROP1POPW_OP4正确。(2) MOVAX,WORDPTRSIDI错,源操作数寻址方式有问题。应改为:MOVBX,SIMOVAX,WORDPTRBXDIM0VAX,WORDPTRES:BX昔,若源操作数为寄存器寻址是不能加段说明及属性修改的。显然,原意应为寄存器间接寻址,故应改为:MOVAX,WORDPTRES:BXMOVBYTEPTRBX,1000错,源操作数为字类型,目的操作数为字节类型,二者不一致。应改为:MOVWORDPTRBX,1000M0VBX,OFFSETSI+200H错,OFFSET!算应在汇编时完成,但SI+200H在执行指令时才可获得。应改为:LEABX,SI+200H(3) MOVOP2,BX错,源操作数和目的操作数均为内存单元,不允许。应改为:MOVAL,BXMOVOP2,ALCMPHIGHW_0P3,25错,目的操作数中使用HIGH来分离存储器操作数,这是不允许的。应改为:CMPBYTEPTRW_OP3+1,25CMPOP1,OP2错,源操作数和目的操作数均为内存单元,不允许。应改为:MOVAL,OP2CMPAL,OP1CMPAX,OP2错,源操作数为字节类型,目的操作数为字类型,二者不一致。应改为:CMPAX,WORDPTROP2MOVW_OP3BX+4*3DI,SP正确。(4) ADDW_OP3,W_OP4错,源操作数和目的操作数均为内存单元,不允许。应改为:MOVAX,W_OP4ADDW_OP3,AXMOVAX,W_OP3DX错,不能用DX寄存器间接寻址。应改为:MOVBX,DXMOVAX,W_OP3BX(5) MOVOP1,LOWDS错,源操作数中使用LOW来分离寄存器操作数,这是不允许的。应改为:MOVWORDPTROP1,DSMOVSP,OP2BXSI错,源操作数为字节类型,目的操作数为字类型,二者不一致。应改为:MOVSP,WORDPTROP2BXSIMOVAX,W_OP3+W_OP错,两个标识符相加无意义。应改为:MOVAX,W_OP1ADDAX,W_OP2(6) MOVAX,W_OP3-W_OP4+10正确,源操作数为两个标识符(地址)相减再加一数,汇编时得到一个数。(7) SUBAL,W_OP3+7错,两个操作数类型不一致。应改为:SUBAL,BYTEPTRW_OP3+7M0VAX,BXSHL2错,SHL只能对常量进行运算,左边不能使用寄存器(8) MOVBX,W_0P3AND8FD7H昔,AND只能对常量进行运算,左边不能使用变量4. 设已定义数据段DATASEGMENTVAR2DW10H,7889HVAR5DB20H,0ADRRDWVAR2,VAR5DATAENDS为使ADRF字存储单元中存放内容为“0010H,ADRR-2字存储单元中存放内容为“0020H”,上述省略号位置应分别填写一条什么语句?说明理由。答:为使ADRR字存储单元中存放内容为“0010H,ADR-2字存储单元中存放内容为“0020H”,上述省略号位置应分别填写ORG10H和ORG20H,或者分别填写语句VAR1DB10HDUP(?)和VAR36DUP(?)下面的数据段中,有数据为4100H的字存储单元有几个?它们的偏移量分别是多少?DATASEGMENTDA1DB0ORG41HDA2DB0,A,41H,0,41HADRDWDA1,DA2DATAENDS答:给出的数据段中,有数据4100H的字存储单元有3个,它们的偏移量分别是41H、44H、47H。4. 试用数据定义语句DB或DW改写下述两语句中的某一个,使它们在存储器中有完全相同的存储情况。VAR1DBabcdefghijVAR2DW6162H,6364H,6566H,6768H,696AH答:将第一个伪指令语句改写为VAR1DWab,cd,ef,gh,ij,第二个伪指令语句不变。或第一个伪指令语句不变,而将第二个伪指令语句改写为:VAR2DB61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH9. 按下面的要求写出程序的框架(1) 数据段的位置从OEOOOH开始,数据段中定义一个100字节的数组,其类型属性既是字又是字节;(2) 堆栈段从小段开始,段组名(类别名)为STACK;(3) 代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值;(4) 程序结束。答:所求程序框架为:DataSEGMENTAT0E000HArr_wLABELWORDArr_bDB100DUP(?)DataENDSSta_segSEGMENTPARASTACKDB80DUP(?)TopLABELWORDSta_segENDSCodeSEGMENTASSUMECS:Code,DS:data,SS:sta_segORG1000HStart:MOVAX,dataMOVDS,AXMOVAX,Sta_segMOVSS,AXMOVSP,OFFSETTopMOVAH,4CHINT21HCodeENDSENDStart10. 编写一个程序,要求运行时屏幕显示BELL,同时响铃一次(响铃的ASCII码为07)。答:所求程序为:CodeSEGMENTASSUMECS:codeStart:MOVDL,42HMOVAH,2INT21HMOVDL,45HMOVAH,2INT21HMOVDL,4CHMOVAH,2INT21HMOVDL,4CHMOVAH,2INT21HMOVDL,7MOVAH,2INT21HMOVAH,4CHINT21HCodeENDSENDStart11.假设在数据段X_SEG附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X、Y和Z,试编制一完整的程序计算X+Y+Z,并将结果送X。答:所求程序为:X_SEGSEGMENTXDW12eHX_SEGENDSY_SEGSEGMENTYDW4d2HY_SEGENDSZ_SEGSEGMENTSTACKSTACKZDW2CAHZ_SEGENDSCodeSEGMENTASSUMECS:Code,DS:X_SEG,ES:Y_SEG,SS:Z_SEGStart:MOVAX,X_SEGMOVDS,AXMOVAX,Y_SEGMOVES,AXMOVAX,ES:YADDX,AXMOVBP,0MOVAX,BP+ZADDX,AXMOVAH,4CHINT21HCodeENDSENDStart12.写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的DADD1和附加段E_SEG中的DADD2相加,并把结果存放在D_SEG段中的SUM中。其中DADD1DADD2和SUM均为双字类型,DADD赋值为98765,DADD2赋值为-15893。答:所求程序为:D_SEGSEGMENTDADD1DD98765SUMDD?D_SEGENDSE_SEGSEGMENTDADD2DD-15893E_SEGENDSC_SEGSEGMENTASSUMECS:C_SEG,DS:D_SEG,ES:E_SEGStart:MOVAX,D_SEGMOVDS,AXMOVAX,E_SEGMOVES,AXMOVAX,WORDPTRDADD1MOVBX,WORDPTRDADD1+2ADDAX,WORDPTRES:DADD2ADCBX,WORDPTRES:DADD2+2MOVWORDPTRSUM,AXMOVWORDPTRSUM+2,BXMOVAH,4CHINT21HC_SEGENDSENDStart一、填空题1、执行部件EU的组织有:亠个通用寄存器,个专用寄存器和1个标志寄存器和算术逻辑部件。2、8086CPU从偶地址访问内存1个字时需占用丄个总线周期,而从奇地址访问内存1个字操作需占用2个总线周期。3、IBM-PC机中的内存是按段存放信息的,一个段最大存贮空间为64K字节。4、8086微处理机在最小模式下,用M/IO来控制输出地址是访问内存还是访问I/O。5、一台计算机能执行多少种指令,是在设计时确定的。二、单项选择题1、微型计算机的性能主要由_B来决定。A、价钱B、CPUC、控制器D、其它2、对微处理器而言,它的每条指令都有一定的时序,其时序关系是_CA、一个时钟周期包括几个机器周期,一个机器周期包括几个指令周期。B、一个机器周期包括几个指令周期,一个指令周期包括几个时钟周期。C、一个指令周期包括几个机器周期,一个机器周期包括几个时钟周期。D、一个指令周期包括几个时钟周期,一个时钟周期包括几个机器周期。3、属于数据寄存器组的寄存器是_CA、AX,BX,CXDSB、SP,DX,BP,IPC、AX,BX,CXDXC、AX,BX,CXDX、AL,DI,SI,AH4、微型计算机的ALU部件是包含在_D之中。A、存贮器B、I/O接口C、I/O设备D、CPU5、在8086和8088汇编语言中,一个字能表示的有符号数的范围是_BA、-32768wnW32768B、-32768n32767C、-65535wnW65535D、-65536wN655356、80386微型计算机是32位机,根据是它的_D。A、地址线是32位B、数据线为32位C、寄存器是32位的D、地址线和数据线都是32位7、某数存于内存数据段中,已知该数据段的段地址为2000H,而数据所在单元的偏移地址为0120H,该数的在内存的物理地址为(B)A.02120H8、在存贮器读周期时,根据程序计数器PC提供的有效地址,使用从内存中取出(D)A.操作数B.操作数地址C.转移地址D.操作码9、8086/8088系统中,对存贮器进行写操作时,CPU俞出控制信号有效的是(A)IO=1,WR=0B.WR=1IO=0,RD=0D.RD=010、在8086/8088微机系统中,将AL内容送到I/O接口中,使用的指令是(D)AL,端口地址AL,端口地址AL,端口地址端口地址,AL三、简答题1. 微处理器内部结构由哪些部件组成?2. 论述8086CPU的最小方式和最大方式的区别。3. 论述指令周期、机器周期和时钟周期间的关系。4. 试比较8086CPU与8086CPU的异同之处。5. 8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?6. 8086系统中的物理地址是如何得到的?假如CS=2500HIP=2l00H,其物理地址是多少?7. 什么是最大模式?什么是最小模式?用什么方法将8086/8088置为最大模式和最小模式?8. 存储器分段组织有何优越性?9. 试述BHE与A组合如何选择数据字?10. CPJ向应中断时,为什么要执行两个连续的中断响应周期?答案:一、填空题1、4个通用寄存器、4个专用寄存器、1个标志寄存器和算术逻辑部件2、1个总线、2个总线3、64K4、M/IO5、设计二、单项选择题1、B2、C3、C4、D5、B6、D7、B8、D9、A10、D三、简答题1、答案:微处理器由两部分组成,总线接口单元和执行单元2、8086CPU的最小方式和最大
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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