微机原理与接口技术课后习题参考答案.pdf

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

《微机原理与接口技术课后习题参考答案.pdf》由会员分享,可在线阅读,更多相关《微机原理与接口技术课后习题参考答案.pdf(63页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 微机原理与接口技术 李华贵 主编课后习题参考答案第1章(1.6习 题)1.简述名词的概念:微处理器、微型计算机、微型计算机系统。答:(1)微处理器:微处理器(Microprocessor)简称NP或M P,或CPU。CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU(Arithmetic Logic U n it)、控制部件CU(Control U nit)和寄存器组R(Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。(2)微型计算机:微型计算机(Microcomputer)是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电

2、路及系统总线等所组成的计算机,简称微机。(3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。其中,硬 件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。软 件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。一般把软件划分为系统软件和应用软件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件

3、根据用户和所服务的领域提供不同的功能。2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。答:(1)指令寄存器:指令寄存器(I nstruction Register,I R)用来保存计算机当前正在执行或即将执行的指令。当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入I R中,以便指令译码器进行译码分析。(2)地址寄存器:地址寄存器(Address Register,AR)被动地接受I P传送给它的地址值(二进制地址),AR的作用是保持I P送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。(3)标志寄存器:标志寄存器(Flags,F)是C

4、PU中不可缺少的程序状态寄存器,因此,也称程序状态字寄存器(P S W),所谓状态是指算术或逻辑运算后,结果的状态以二进制的0或1在标志寄存器中标识出来,例如,运算结果有进位,则进位标志位C F=1,否则为0。3.何 谓 I A-32处理器?微机原理与接口技术课后习题的参考答案答:I n t e l公司推出了 3 2位结构的8 0 3 8 6微处理器后,确定了 8 0 3 8 6芯片的指令集结构(I n s t r u c t i o n S e t A r c h i t e c t u r e)为以后开发8 0 X 8 6系列处理器的标准,称其为I n t e l 3 2位结构(I n t

5、 e l A r c h i t e c t u r e-3 2,I A-3 2).后来的8 0 4 8 6、P e n t i u m等微处理器统称为I A-3 2处理器,或称3 2位8 0 X 8 6处理器。4.什么叫总线?总线包括哪三种?答:所谓总线,它将多个功能部件连接起来,并提供传送信息的公共通道,能为多个功能部件分时共享,C P U通过总线连接存储器和I/O接口等,构成了微型计算机。这里指的总线(B U S)包括地址总线、数据总线和控制总线三种。5.地址总线的作用是什么?答:地址总线(A d d r e ss B u s,AB),通常是C P U用来发出地址信息的,用于对存储器和I

6、/O接口进行寻址。6.什么叫溢出?判断溢出的方法是什么?答:(1)溢出通常指计算机运算的结果超出/计算机所能允许的范围。本章所讲的溢出是指用补码实现加/减运算后,若参与操作的两数在定义域内,但运算结果超出了字长范围内补码所能允许表示的值,所计算出的结果产生了错误,称之为溢出。(2)力F I/减运算判断溢出的方法:如果把加/减法运算都变成补码相加,则两个正数相加可能产生正的溢出,两个负数相加可能会产生负的溢出,正负两数相加不会产生溢出。具体实现的方法是:两个操作数运算后,用最高位和次高位产生的进位位异或,异或结果为1,则表示有溢出,结果为0,表示无溢出。例如:两个8位数运算后,溢出标志O F=C

7、 6 C 77 .假设四种C P U主存地址分别为1 6根、2 0根、2 4根以及3 2根,试问每利9PU可寻址内存多少字节?解:每种C P U可寻址内存分别是:2,6 4 K B、22 O=1 M B 22 4=1 6 M B 23 2=4 G B 8 .在 般 指 令 格 式 中,由哪两部分组成?答:由操作码和操作数组成。9 .设字长为1 6位,将下列十进制数转换成二进制数、十六进制数以及B C D数。6 5 1 2 9 2 5 7 5 1 32解:65=01000000B=4I H=(0110 0101)BCD 129=10000001 B=81 H=(0001 0010 1001)BC

8、D 257=100000001B=101 H=(0010 0101 0111)BCD 513=1000000001 B=201 H=(0101 0001 0011)BCD1 0.设字长为8位,写出x、y的原码、反码和补码,并且用补码计算x+y,问是否有溢出?x=-78 y=35 x=-64 y=-66解:x=-78 y=35X=11001110,X,*=10110001,Xjh=10110010Y%=00100011,lYtt=00100011,Y 卜 卜=00100011X ED X、ESI、EDI、8位、16位或32位二进制数数据段内地址SSESP、EBP堆栈段内地址ES只有串操作时默认E

9、DI附加数据段内地址(目地址)FS无固定搭配寄存器一般数据地址GS无固定搭配寄存器一般数据地址9.80 86 CPU由哪两部分组成?它们的主要功能各是什么?答:80 86 CPU内部结构从功能上看,它由两大部件组成,分为总线接口部件BIU(BusInterface Unit)和执行部件EU(Execution U n it)。(1)总线接口部件BIU的主要功能:它是80 86 CPU与外部存储器和I/O端口的接口,提供了 16位双向数据总线和20位地址总线,负责CPU与存储器及I/O端口之间的数据传送操作(包括物理地址的形成)。(2)执行部件EU主要功能:从BIU中的指令队列获取指令,对指令进

10、行译码分析并执行,执行指令所需要的操作数和运算结果的存储,是由EU向BIU传递偏移地址,BIU只要收到EU送来的偏移地址,于是将送来的偏移地址与相应的段地址组成20位的物理地址,根据现行的20位物理地址,通过执行存储器的读/写总线周期来完成读/写操作,或者是通过执行I/O端口的读/写总线周期来完成读/写I/O端口的操作。10.80 86 CPU中的标志寄存器FLAGS有哪些状态标志位?在什么情况下置位?答:状态标志有6位:CF、PF、AF、ZF、SF和OF。CF(Carry F la g),进位标志位。本次运算中最高位有进位或借位时,CF=1 PF(Parity F la g),奇偶校验标志位

11、。本次运算结果的低8位中1的个数为偶数时,PF=lo AF(Auxiliary Carry F la g),辅助进位标志位。本次运算结果低4位向高4位有进位或借位时,AF=lo6(4)ZF(Zero F lag),零标志位。若运算结果为0时,ZF=1 SF(Sign F lag),符号标志位。当运算结果的最高位为1,贝(SF=1。OF(Overflow F lag),溢出标志位。当运算结果有溢出时,OF=1。11.什么是逻辑地址?什么是物理地址?如何将逻辑地址转换为物理地址?答:从8088/8086开始,CPU内部就有了对存储器的分段机制,每个存储单元可以看成两种地址:逻辑地址与物理地址。(1

12、)逻辑地址逻辑地址是编程时所使用的地址,在实模式下,它由段基地址与段内偏移地址组成,习惯上写为“段基地址:偏移地址”。(2)物理地址物理地址又称为实际地址,它是信息在内存中存放的实际地址,是CPU访问存储器时实际发出的地址信息。(3)在实地址方式下,由CPU中的总线接口单元将段基地址左移4位后与16位的偏移地址相加,生成20位的物理地址。可以访问1MB的存储空间。12.设X=35H,Y=76H,进行X+Y和X-Y运算后,标志寄存器FLAGS的状态标志位各是什么?答:(1)X+Y=35+76后,CF=0、AF=0、SF=0、OF=0、ZF=0、PF=1。(2)X-Y=35-76后,CF=1、AF

13、=1、SF=l、OF=0、Z D、PF=1。13.什么叫存储器地址交叉?微机的存储器为什么要用存储器地址交叉技术?答:(1)在一个物理存储芯片内部所有存储单元的地址编号都不是连续的,而在相邻存储芯片之间的物理地址是相连接的,例如,16位的微处理器8086/80286把内存地址分为偶地址的字节数据、奇地址的字节数据,因此,分为偶字库和奇字库,即在一个物理存储芯片内所有存储单元的地址编号都是奇地址,另物理存储芯片内所有存储单元的地址编号都是偶地址,这就称为地址交叉。(2)偶地址存储体与数据总线的低8位(D7 D o)相连,奇地址存储体与数据总线高8位(口 5 D g)相连,可以由偶地址有效选中偶字

14、库(例A()=0),由奇地址有效选中奇字库(例(丽 方=0)。原因是:便于CPU可以只访问偶地址一个字节,也可以只访问奇地址一个字节,还可以访问个字(2字 节)。在CPU的外部数据总线为32位的情况下,CPU不仅可能只访问一个字节、一个字,还可能访问一个双字,因此,把内存分成4个存储体,实现存储器地址的4体交叉。14.请将实模式下逻辑地址转变成物理地址。(1)FFFFH:0000H(2)0045H:0018H 微机原理与接口技术课后习题的参考答案(3)2000H:4600H(4)B821H:3456H解:(1 )FFFFH:0000H,物理地址=FFFFH X 16+0000H=FFFF0H(

15、2)0045H:0018H,物理地址=0045HX 16+0018H=00468H(3)2000H:4600H,物理地址=2000HX 16+4600H=24600H(4)B821H:3456H,物理地址=B821Hxi6+3456H=BB666H1 5.在8086系统中,CPU执行访问存储器指令时,BHE=O,说明当前CPU要访问哪一个存储体?答:当时,CPU要访问奇地址的存储体。第3章(3.1 2习 题)3.1按照16位微处理器的寻址方式看,分别指出下列指令中源操作数和目的操作数的寻址方式。解:m o vm o vm o v(4)寻址(5)(6)(7)(8)m o vm o vm o vm

16、 o vm o va x,0 s i ,a x2 d i ,b x2 b x+s i ,d xa x,1 0 0 0 h d x,b x s i a x,b x d x,b p+8;源操作数:立即寻址,I-I的操作数:寄存器寻址;源操作数:寄存器寻址,;源操作数:寄存器寻址,;源操作数:寄存器寻址,目的操作数:变址寻址目的操作数:相对变址寻址目的操作数:相对基址(加)变址;源操作数:直接寻址,目的操作数:寄存器寻址;源操作数:基址(加)变址寻址,目的操作数:寄存器寻址;源操作数:基址寻址,目的操作数:寄存器寻址;源操作数:相对基址寻址,目的操作数:寄存器寻址3.2按照32位微处理器的寻址方式看

17、,分别指出下列指令中源操作数和目的操作数的寻址方式。解:(1)m o v e a x,O l h(2)m o v e s i ,a x;源操作数:立即寻址,目的操作数:寄存器寻址;源操作数:寄存器寻址,目的操作数:基址寻址8(3)m o v e s i*2 ,b x寻址(4)m o v e b x+e s i ,d x例变址寻址(5)m o v e a x,l O O O h(6)m o v d x,e b x+e s i*8寄存器寻址(7)m o v e d x,e a x(8)m o v d x,e b p*2+8寄存器寻址(9)m o v d x,e b x+8 器寻址(10)m o v

18、 a x,e b x+e s i*2+7 8 h 作数:寄存器寻址;源操作数:寄存器寻址,目的操作数:比例变址;源操作数:寄存器寻址,目的操作数:基址加比;源操作数:直接寻址,目的操作数:寄存器寻址;源操作数:基址加比例变址寻址,目的操作数:;源操作数:寄存器寻址,目的操作数:寄存器寻址;源操作数:比例变址加位移寻址,目的操作数:;源操作数:基址加位移寻址,目的操作数:寄存;源操作数:基址加比例变址加位移寻址,目的操3.3 指出下列指令的错误原因解:(1)i n c s i(2)m o v e a x,b x(3)m o v 2,a x(4)m o v e b x ,e d i(5)m o v

19、 a x,b x+b p(6)m o v a x,s i+d i(7)m o v a h,3 00(8)m o v c s,l O O O h(9)p u s h a l(10)s h l a x,8(11)m o v a x,b x+d i(12)m o v i p,b x(13)m o v e s,d s(14)m o v s p ,a x目的操作数类型不明确源操作数和目的操作数类型不匹配立即数不能作目的操作数源操作数和目的操作数不能同时为存储器操作数基址变址寻址方式不能同时为基址寄存器基址变址寻址方式不能同时为变址寄存器3 00超出了 a h 可以容纳的数据范围c s 不能由程序员赋值,

20、它由系统自动赋值p u s h 要求操作数为16 位或3 2 位当移位次数超过1时,先将移位次数送c l,再移位基址变址寻址方式缺少一对方扩号i p 不能由程序员赋值,它由系统自动赋值源操作数和目的操作数不能同时为段寄存器入栈只能用p u s h 指令实现3.4 比较下列两条指令,解:m o v e a x,s i 指出他们的区别。;从内存读数据送e a x 微机原理与接口技术课后习题的参考答案m o v s i ,e a x;把6 2*的值写入到内存3.5假设(EAX)=12 3 4 5 6 7 8 11,写出下面每条指令单独执行后,(EAX)=?解:a n d e a x,O O O O

21、f f f f h;(e a x)=00005 6 7 8 ht e s t.e a x,1;(e a x)=12 3 4 5 6 7 8 hx o r e a x,e a x;(e a x)=0(4)s u b e a x,e a x;(e a x)=0a d d e a x,1;(e a x)=12 3 4 5 6 7 9 h(6)o r e;a x,1;(e a x)=12 3 4 5 6 7 9 hc m p e a x,O O O O f f f f h;(e a x)=12 3 4 5 6 7 8 h(8)i n c e a x;(e a x)=12 3 4 5 6 7 9 h(9

22、)d e c e a x;(e a x)=12 3 4 5 6 7 7 h(10)s u t)e a x,8;(e a x)=12 3 4 5 6 7 0h3.6 假定(AX)=12 3 4 H,(BX)=O O F F H,回答每条指令单独执行 后,(AX)=?(BX)=?解:a n d a x,b x;(a x)=003 4 h(b x)=00f f ht e s t a x,b x;(a x)=12 3 4 h(b x)=00f f hx o r a x,b x;(a x)=12 c b h(b x)=00f f h(4)x c h g a x,b x;(a x)=00f f h(b x

23、)=12 3 4 ha d d a x,b x;(a x)=13 3 3 h(b x)=00f f h(6)s u b b x,a x;(a x)=12 3 4 h(b x)=0e e c b ho r b x,a x;(a x)=12 3 4 h(b x)=12 f f h(8)c m p a x,b x;(a x)=12 3 4 h(b x)=O O f f h3.7假设(EAX)=112 2 3 3 4 4 H,(EBX)=112 2 5 5 6 6 H,写出下面程序段每条指令执行后(EAX)=?(EBX)=?解:a d d e a x,e b x ;(e a x)=2 2 4 4 8

24、8 a a H,(e b x)=112 2 5 5 6 6 11a d d e a x,0000008 8 h ;(e a x)=2 2 4 4 8 9 3 2 11,(e b x)=112 2 5 5 6 6 11s u b e a x,e b x ;(e a x)=112 2 3 3 c c H,(e b x)=112 2 5 5 6 6 11i n c e b x ;(e a x)=112 2 3 3 c c H,(e b x)=112 2 5 5 6 7 Ha n d e b x,O O O O f f f f h ;(e a x)=112 2 3 3 c c H,(e b x)=00

25、005 5 6 7 H103.8 已知(DS)=1000H,(BX)=0100H,(S I)=0004 H,存储单元 10100H 10107 H 依次存放 11H 2 2 H 3 3 H 4 4 11 5 5 H 6 6 11 7 7 11 8 8 11,10004 H -10007 H 依次存放2 AH 2 B1I2 CH 2 DH,说明下列每条指令单独执行后AX中的内容。解:(1)M O V AX,01O O H;(AX)=2 2 1111(2)M O V AX,BX;(AX)=2 2 1111(3)M O V AX,0004 H;(AX)=2 B2 AH(4)M O V AX,0102

26、 11;(AX)=4 4 3 3 11(5)M O V AX,S I;(AX)=2 B2 AH(6)M O V AX,S I+2;(AX)=2 D2 CH(7)M O V AX,BX+S I;(AX)=6 6 5 5 11(8)M O V AX,BX+S I+2;(AX)=8 8 7 7 H3.9 已知(DS)=1O O O H,(EBX)=O 1O O H,(ES I)=0004 11,存储单元 10100H 10107 H 依次存放U H 2 2 H 3 3 H 4 4 H 8 8 H 7 7 H 6 6 H 5 5 H,10004 H -10007 H 依次存放8 AH 8 BH8 CH

27、 8 DH,说明下列每条指令执行后EAX中的内容。解:(1)M O V EAX,01O O H(2)M O V EAX,EBX(3)M O V EAX,EBX+4(4)M O V EAX,0004 H(5)M O V EAX,ES I(6)M O V EAX,EBX+ES I;(EAX)=4 4 3 3 2 2 11H;(EAX)=4 4 3 3 2 2 11H;(EAX)=5 5 6 6 7 7 8 8 H;(EAX)=8 D8 c 8 B8 AH;(EAX)=8 D8 c 8 B8 AH;(EAX)=5 5 6 6 7 7 8 8 H3.1 0什么是堆栈?它的工作原理是什么?它的基本操作有

28、哪两个?答:堆栈是在内存R AM中开辟的一段空间,利 用“先进后出”或“后进先出”的原则存取数据。如果把数据压入堆栈,则堆栈指针的值是减少的,即所谓的向下生成堆栈。由S S:S P (16位)或S S:ES P (3 2位)指向栈底(栈空)或 栈 顶(栈不空)地址。它的基本操作有数据入栈指令P U S H和数据出栈指令P O P。3.11 设S S=1000H,S P=0100H,指出下列每条指令执行后,(AX)=?(BX)=?(S P)=?并且回答堆栈中的内容如何?微机原理与接口技术课后习题的参考答案解:M O V AX,2 2 3 3 H;(AX)=2 2 3 3 H,(B X)不确定,(

29、S P)=0100HP U S H AX;(AX)=2 2 3 3 11,(B X)不确定,(S P)=00F EHM O V BX,4 4 5 5 H;(AX)=2 2 3 3 11,(B X)二4 4 5 5 H,(S P)=O O F EHP U S H BX;(AX)=2 2 3 3 H,(BX)=4 4 5 5 H,(S P)=00F CHP O P AX;(AX)=4 4 5 5 H,(BX)=4 4 5 5 H,(S P)=O O F EHP O P BX;(AX)=4 4 5 5 H,(BX)=2 2 3 3 H,(S P)=010011这段指令执行后将AX和BX的值互换。3.

30、1 2什么是16位段?它有何特点?答:3 2位微机在上电或复位后,微处理器首先工作在实地址模式,它与8086/801 86的工作方式具有相同的基本结构,也只能寻址1 M B物理存储空间,分段最大只能是64K B,但是,在实地址模式下,32位X 86 C P U可以使用1 6位寄存器和1 6位寻址方式,这与8086C P U兼容,32位X 86 C P U还可以使用32位寄存器和32位寻址方式,处理32位数据及执行32位的新增指令,但是,段基地址和偏移量都只用1 6位,6个段寄存器仍然当作1 6位的段寄存器使用,对于偏移地址来说,如果是32位,则高1 6位应该为0,只有低1 6位偏移地址有效,相

31、当于可以进行32位数处理的快速80 8 6,所以称之为“1 6位段”。3.13什么是32位段?它与1 6位段的主要区别如何?答:32位X 86 C P U由实地址模式可以进入保护工作模式,它是个增强了802 86保护模式功能的32位保护工作模式。在保护工作模式下,32位微处理器不仅具有段式存储器管理功能,而且还有页式存储器管理功能,支持虚拟存储器,段基地址和段内偏移量都是32位,称之为“32位段”,使用全部32条地址线,可以寻址的物理存储器达到4G B,只有在保护模式下,32位X 86 C P U才能发挥全部功能。而32位段的程序只能在32位W i n d o w s环境中执行。3.1 4 1

32、 6位存储器寻址中,分为哪儿种寻址方式?答:(1)直接寻址(2)基址寻址(包括相对基址寻址)(3)变址寻址(包括相对变址寻址)(4)基 址(加)变址寻址12(5)相对基址(加)变址寻址3.1 5 32 位存储器寻址中,分为哪几种寻址方式?答:(1)直接寻址(2)基址寻址(3)基址加位移寻址(4)比例变址寻址(5)比例变址加位移寻址(6)基址加比例变址寻址(7)基址加比例变址加位移寻址3.1 6 对于立即寻址的指令,有8位、1 6位及32 位的立即寻址的指令,各列举2 条指令(一条是传送指令,另一条是加法指令)。解:8位立即寻址指令(1)M O V A H,2(2)A D D A L,31 6位

33、立即寻址指令(1)M O V A X,1 2 34H(2)A D D D X,345 6H32 位立即寻址指令(1)M O V E A X,1 2 345 678H(2)A D D E D X,1 2 345 678H3.1 7 用移位指令将E S I 中内容移入E D I 中,如何实现?解:.mo d e l s ma l l.386.c o d e.s t a r t u p 微机原理与接口技术课后习题的参考答案mov esi,11223344hmov edi,12345678hshrd edi,e s i,16rol esi,16shrd edi,esi,16.ex itEnd3.1 8

34、 将EBX中存放的值清零,实现的方法有哪一些?解:(1)SUB EBX,EBX(2)A N D EBX.O(3)X O R EBX,EBX第4章(4.5 习 题)1.该数据段在内存中的分配图如下。变里内容ABuf 123num f34h12h14point i05h00Oh1point2f08h20Oh3data45str 3I h632h733h80ffh902h00ffh102h22.将下列程序段所定义字符串中的小写字母均改为大写字母,并放回原处,原大字母不变,最后,用DOS的9号功能显示这串大写字符,请完善下列程序。.model smal1.datax db 4Hello EVEryBO

35、DY!,$.code 微机原理与接口技术课后习题的参考答案.startup解:程序如下:.model small.386.datax db Hello EVEryBODY-$.code.startuplea bx,x.repeatmov al,bx.if al=a1&al v=zsub al,20hmov bxj,al.endifinc bx.until al=$,lea dx,xmov ah,9int21h.exitend3.设变量名VALI、VAL2及SUM的数据类型属性都是双字属性,VAL1和VAL2中分别存放了 个32位的加数和被加数,SUM用于存放和数。(1)选用简化段格式编程,实现

36、两个32位数相加,结果存放到SUM变量所指的存储单元。(2)选用完整段格式编程,实现上述相同的功能。提示:只能使用16数相加。解:程序一,简化段格式编程,实现两个32位数相加,结果存放到SUM变量所指的存储单O.model small.386.datavail dd 12345678hval2 dd 8765432%sum dd?.code16.startupmov eax,val 1add eax,va12mov sum,eax.exitend程序二,完整段格式编程,实现两个32位数相加,结果存放到SUM变量所指的存储单元。data segmentvail dd 12345678hval2

37、dd 87654329hsum dd?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov ax,word ptr vailadd ax,word ptr val2mov word ptr sum,axmov ax,word ptr vail+2add ax,word ptr val2+2mov word ptr sum+2,axmov ah,4chint21hcode endsend start4.将数据段内的一串字符传送到附加的数据段内,并将传送到附加数据段内的字符显示出来,要求用完整段和简化段两种

38、格式分别编程实现。解:程序一,简化段格式编程,实现将数据段内的一串字符传送到附加的数据段内,并将传送到附加数据段内的字符显示出来。.model small.386.datax db Hello World 微机原理与接口技术课后习题的参考答案n equ$-xy db 100 dup(?).code.startupmov ax,dsmov es,axmov cx,nlea si,xlea di,yrep movsbmov ah,9lea dx,yint 21h.exitend注意:在简化段模式编程时,数据段和附加数据段是同一段,在使用字符串指令时,用指令mov ax,ds、mov es,ax将D

39、S和ES保持一致。程序二,完整段格式编程,实现将数据段内的一串字符传送到附加的数据段内,并将传送到附加数据段内的字符显示出来。data segmentx db Hello World!,$n equ$-xdata endsedata segmentydb 100 dup(?)edata endscode segmentassume cs:code,ds:data,es:edatastart:mov ax,datamov ds,axmov ax,edatamov es,axlea si,xlea di,ymov cx,n18rep movsbmov ah,9lea dx,yint 21hmov

40、ah,4chint 21hcode endsend start5.设有一个数组存放了40名学生的成绩(0 100分),设数组位于变量名为SCORS的存储单元,编程统计0 59分、60 69分、70 79分、80 89分及90 100分的人数,并分别存放到SCOREE、SCORED SCOREC、SCOREB、SCOREA存储单元中。解:程序一,简化段格式编程.model small.386.datascore db 90,23,56,67,98,78,10,45,87,100db 65,78,89,100,45,30,99,69,59,60db 0,59,60,69,70,79,80,89,9

41、0,99db 100,61,68,71,78,81,88,91,98,0n=$-scorescoree db 0scored db 0scorec db 0scoreb db 0scorea db 0.code.startuplea si,scoremov cx,nmov dl,10.while ex!=0mov ah,0mov al,sidiv dlsub al,5 微机原理与接口技术课后习题的参考答案.if sbyte ptr al bx 微机原理与接口技术课后习题的参考答案mov z,ax.elsemov z,bx.endif.exitend(2)按照有符号数比较与编程。.model s

42、mall.386.dataxdw 1234hy dw 9678hz dw?.code.startupmov ax,xmov bx,y.if sword ptr ax sword ptr bxmov z,ax.elsemov z,bx.endif.exitend7.已知两个字的定义如第6题,编程求X-Y,结果存入Z单元。要求用简化段格式编程,并回答存入Z单元的数是多少?解:.model small.386.dataxdw 1234hy dw 9678hz dw?.code.startupmov ax,xsub ax,ymov z,ax22.exitend存入Z单元的数是7bbeh。把指令sub

43、ax,y改为sub sword ptr ax,y结果不变。8.用完整段格式编程,键盘每输入一个字符,用二进制形式(0/1)显示出该字符的ASCH码值。解:data segmentascii db 7 dup(?),$data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axrp:mov ah,lint 21hemp al,27;可重复输入,Esc键结束jz finimov bl,2lea si,ascii+6lopl:mov ah,0div bladd ah,30hmov si,ahdec siemp al,0jn

44、zlopllea dx,asciimov ah,9int21hmov ah,2mov dl,Odhint 21 hmov dl,Oahint21hmov cl,7lea si,asciiini:mov byte ptrsi,*微机原理与接口技术课后习题的参考答案inc sidec cljnz inijmprpfini:mov ah,4chint 21hcode endsend start9.设10名评委在0 10的整数范围内给选手打分,10个分值已经存入X存储单元,计算选手的最终得分,计分方法是:10个得分中,去掉一个最高分(如有两个以上的相同最高分也只去掉一个),去掉一个最低分(如有两个以上

45、的相同最低分也只去掉一个),剩下8个得分。(1)用简化段编程求剩下8个得分之和。(2)用简化段编程求平均值,精确到小数点后面1位。提示:用AX/BL(8),商在AL中,余数在AH中。将余数乘以10传送给A L,再除以8,所得商是小数点后的一位值。解:.model small.386.stack.dataxdb 7,8,9,8,10,10,9,8,7,10n=$-x.data?sum db?average db 0,7,0,$max db?min db?.code.startupmov dl,xmov max,dlmov min,dlmov cx,n-lmov bx,l.while exmov

46、al,xbxadd dl,al.if al max24mov max,al.endif.if al minmov min,al.endifinc bxdec ex.endwmov sum,dl;保存总分,对本题数据来说,总分86sub dl,max;去掉一个最高分10sub dl,min;去掉一个最低分7mov ah,0mov al,dl;剩卜的总分为6 9,除以8为选手最后得分8.6mov bl,8div bladd al,30hmov average,al;整数8mov al,ahmov ah,0mov bl,10mul blmov bl,8div bladd al,30hmov aver

47、age+2,al:小 数 6lea dx,average:将 8.6输出mov ah,9int21h.exitend1 0.将下列循环结构的程序段全部改用微处理器指令实现。.model small.386.databufdw 20(0).code.startup 微机原理与接口技术课后习题的参考答案lea bx,bufmov cx,0.while cx!=20mov bx,cxinc bxinc bxinc ex.endw.exitend解:.model small.386.databuf dw 20(0).code.startuplea bx,bufmov cx,0rp:emp ex,20j

48、g finimov bx,cxinc bxinc bxinc exjmprpfini:.exitend11.将下列循环结构的程序段全部改用微处理器指令实现。.model small.386.databufdw 20(0).code.startuplea si,buf26mov ax,0.repeatmov si,axinc siinc siinc ax.until ax=20.exitend解:.model small.386.databuf dw 20(0).code.startuplea si,bufmov ax,0rp:mov sil,axinc siinc siinc axcmp ax

49、,20jnz rp.exitend1 2.将下列程序段是求AX绝对值的单分支程序,全部改用微处理器指令实现。.model small.386.dataxdw 9876hresult dw?.code.startupmov ax,x.if sword ptr ax b0位为:00 11。00级最高,11级最低。这样可以防止特权级低的程序去访问特权级较高程序的数据,如果发生这类访问,就会产生异常,并阻止企图访问。操作系统通过这种特权级管理机制来保护系统程序所使用的数据不被破坏。4.Pentium的超标量流水线共分几段,其中整数段有几段?答:Pentium的超标量流水线共分5段,其中整数段就有5段。

50、5.下列各组指令中,哪些会产生数据相关?数据相关的类型是什么?哪些会产生资源 微机原理与接口技术课后习题的参考答案相关?解:(1)MOVAX,BXADDCX,SI;既无数据相关,也无资源相关问题。(2)MOVAX,DXADDBX,AX:写后读数据相关(3)MOVCX,BXMOVBX,DI;读后写数据相关(4)DI VAX,SISUBAX,DI;写后写数据相关,因为除法指令执行时间比减;法指令执行时间相对长一点(5)MOV1000H,CXMOV2000H,DI;同时写内存,内存资源相关6.Pentium微处理器的总线周期主要分为哪几类?答:(1)非流水线式单数据的读/写总线周期;(2)三类突发式

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com