




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题参考解答1.1什么是微处理器、微型计算机、微型计算机系统?参考答案:将运算器和控制器集成在一块大规模集成电路芯片上作为中央处理部件,简 称为微处理器;以微处理器为核心,再配上存储器、接口电路等芯片,构成微型计算机;微型计算机系统由硬件和软件系统两大部分组成:(1)硬件系统由微型计算机和外设组成 的计算机实体;(2)软件系统是指为微型计算机运行的全部技术资料和各种程序,由系统软件 和应用软件构成。1.2什么是微型计算机的三种总线?参考答案:系统总线包含有三种不同功能的总线,即数据总线DB (Data Bus )地址总线 AB (Address Bus)和控制总线 CB (Control Bu
2、s)。“数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I / 0接口等其它部件,也可以将其它部件的数据传送到CPUo“地址总线AB”是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O 端口,所以地址总线总是单向三态的。“控制总线CB”用来传送控制信号和时序信号。1.3评估微型计算机的主要技术指标有哪些?参考答案:评估微型计算机的主要技术指标有:(DCPU的字长,决定计算机内部一次可以 处理的二进制代码的位数;内存储器容量与速度,内存储器容量是衡量它存储二进制 信息量大小的一个重要指标,内存储器的速度用存取周期來衡量;CPU指令
3、执行时间, 反映CPU运算速度的快慢;系统总线的传输速率等。1.4将下列十进制数分别转换为二进制、十六进制数。 0. 625(4) 48. 25 110000. 01B, 30. 4H(1) 35(2) 130参考答案:(1) 100011B, 23H 0. 101B, 0. AH1.5将下列二进制数分别转换为十进制、八进制、十六进制数。(1) 101101B(2)(3) 110110. 101B(4) 101011. 011B参考答案:(1) 45, 55Q, 2DH(2) 230, 346Q, E6H 54. 625, 66. 5Q, 36. AH (4) 43. 375, 53. 3Q,
4、 2B. 6H1. 6写出下列十进制数的原码、反码、补码(分别采用8位二进制和16位二进制表示)。(1) 38(2) 120(3) -50一89参考答案:原码、反码、补码:00100110B,0000000000100110B(2)原码、反码、补码:01111000B,0000000001111000B(4)1.7己知补码求出其真值和原码。(1) 21H 93H 45A6H 0DA25H参考答案:(1)真值:+21H,原码:21H(2)真值:-6DH,原码:EDH 真值:+45A6H,原码:45A6H (4)真值:-25DBH, 0A5DBH1. 8将下列十进制数转换为压缩和非压缩格式的BCD
5、码。(1) 12(2) 55(3) 147(4) 368参考答案:(1) 00010010B, 00000001 00000010B 01010101B, 00000101 00000101B(4)1. 9下列十进制数算术运算,试用8位二进制补码计算,并用十六进制数表示运算结果, 判断是否有溢出。(1) 35-45(2) 80+50(3) -70-60(4) -20 + (-60)参考答案:各数的补码:35补=00100011B, -45补80补二 01010000B, 50补=00110010B,一70补补-20H35+ (-45)00100011B80+5001010000B+001100
6、10B-70+ (-60)-20+ (-60)1 01111110BCy 二0, Cs 二 0Cy 二0, Cs=lCy1, Cs=OCy=1 Cs=10F 二 Cy Cs 二OF二G Cs 二OF二G Cs 二OF二Cy Cs 二0 田 0二 00 1二 11 田 0二 11 1二0没有溢出有溢出有溢出没有溢出(1)(2)(3) -70-60二01111110B二-126,结果不正确,有溢出,因为-130超出了 8位补码的表示下 限-128;(4)1.10分别写出下列字符串的ASCII码(十六进制表示)。(1) 3aB8 eF10 +5 (0: How are you?参考答案:(1)(2)
7、(3) 2B3528303AH(4)2. 1 8086CPU内部由哪两部分组成?它们的主要用途是什么?参考答案:8086CPU内部按功能分执行单元EU和总线接口单元BIUo执行单元的功能:负责指令的执行。同时向BIU输出数据(操作结果),并对寄存器和标 志寄存器进行管理。在ALU中进行16位运算,数据传送和处理均在EU控制下进行。总线接口单元的功能:负责从内存或I/O端口取指令、取操作数和保存运算结果。2.2 8086/8088CPU有哪些寄存器?各有什么用途?参考答案:8086/8088 CPU内部有14个16位的寄存器,按功能可分为:通用寄存器 (8个)、段寄存器(4个)和控制寄存器(2个
8、)。(1).通用寄存器组EU中有4个16位的通用寄存器,即数据寄存器AX、BX、CX、DX。数据寄存器AX、BX、CX、DX般用來存放数据,但它们都有各自的特定用途。AX称为累加器,是最常用的寄存器。它常用来存放算术逻辑运算中的操作数,而且一些 操作要在AX中完成,如乘法操作和除法操作。此外,所有的I/O指令都使用累加器与外设 端口交换信息。BX称为基址寄存器。它常用来存放操作数在内存中数据段内的基地址。CX称为计数器。在设计循环程序时一般使用该寄存器存放循环次数。DX称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘 除法运算时,DX与AX 起存放一个双字长操作数
9、,其中DX存放高16位数。(2) .指针和变址寄存器8086/8088CPU中,有一组4个16位寄存器,它们是基址指针寄存器BP,堆栈指针寄存 器SP,源变址寄存器SI,目的变址寄存器DI。这组寄存器存放的内容是某一段地址偏移量, 用來形成操作数地址,主要在堆栈操作和变址运算中使用。SP称为堆栈指针寄存器;BP称为基址指针寄存器;SI称为源变址寄存器;DI称为目的 变址寄存器。(3) .段寄存器 CS、DS、SS、ES8086/8088有20位地址总线,一共可以寻址1M的空间。而所有内部寄存器都是16位 的,只能直接寻址64KB,因此采用分段技术來解决。将1MB的存储空间分成若干逻辑段,每 段
10、最长64KB,这些逻辑段在整个存储空间中可以浮动。8086/8088定义4个独立的逻辑段,分别为:代码段、数据段、堆栈段和附加数据段, 将程序代码或数据分别放在这4个逻辑段中。每个逻辑段的段地址分别放在对应的段寄存器 中,代码或资料在段内的偏移地址由有关寄存器或立即数给出。8086/8088的4个段寄存器: CS称为代码段寄存器,用來存储程序当前使用的代码段的段地址(起始地址)。 DS称为数据段寄存器,用來存放程序当前使用的数据段的段地址。 SS称为堆栈段寄存器,用來存放程序当前所使用的堆栈段的段地址。 ES称为附加数据段寄存器,用來存放程序当前使用的附加数据段的段地址。(4) .指令指针寄存
11、器IPIP称为指令指针寄存器,用来存放预取指令在代码段内的偏移地址。(5) .标志寄存器FF称为标志寄存器,是一个16位的寄存器,其中只用了 9位。分别为6个状态标志 位和3个控制标志位。2.3 8086/8088CPU中标志寄存器有儿位状态位?有几位控制位?其含义各是什么?参考答案:标志寄存器是一个16位的寄存器,其中只用了 9位。分别为6个状态标 志位和3个控制标志位。(1)状态标志位状态标志位用來反映算术和逻辑运算结果的一些特征。 CF:进位标志位。当进行加减运算时,若最高位发生进位或借位则CF=1,否则CF =0o PF:奇偶标志位。当运算结果的低8位中含有偶数个1时,PF = 1,否
12、则PF = Oo AF:辅助进位标志位。加法或减法运算时,若结果的低字节的低4位向高4位有进 位或借位,则AF = 1;否则AF=Oo ZF:零标志位。若当前的运算结果为0,则ZF = 1;否则ZF = 0o SF:符号标志位。与运算结果的最高位相同,当运算结果的最高位为1时,SF二1; 否则为0。 OF:溢出标志位。当运算结果超出了带符号数的范围,即溢出时,0F二1;否则0F二0。 控制标志位控制标志位有3个,用来设置控制条件來控制CPU的操作,由程序设置或清除。 TF:跟踪标志位。 IF:中断允许标志位。用來控制可屏蔽中断的控制标志。若IF二1,允许CPU接受可 屏蔽中断请求;若IF=0,
13、则禁止CPU回应可屏蔽中断请求。IF的状态对非屏蔽中断及内 部中断没有影响。 DF:方向标志位。控制串操作指令用的标志。2.4 Intel 8086CPU和8088CPU主要区别有哪些?参考答案:8086CPU与8088CPU的区别主要有以下4个方面:.内部结构8086的指令队列有6B,而8088仅有4B。它们的执行单元EU完全相同,而总线接口 单元BIU却不完全相同。8086CPU内、外部的数据总线(DB)都为16位,8088内部数据总 线为16位,外部为8位。.引出线和内存组织8086有一条高8位数据总线允许引出线孟,它可以看做一条附加的地址线,用來访 问内存的高字节,而Ao用來访问内存的
14、低字节。.地址/数据复用线8086的地址/数据复用线是16位ADwAD;而8088仅有AD;AD。复用,As辰仅作 为地址线使用。.内存与I/O接口选通信号电平。内存与I/O接口选通信号电平不同:8086为M/I6 ,即高电平进行存储器操作,低电平进行I/O操作;而8088则相反,为10/证o2.5逻辑地址和物理地址指的是什么?如果己知逻辑地址为1200: OABCDH,其物理地址 为多少?参考答案:把用段地址和偏移地址表示存储单元的地址称为逻辑地址,段地址和段内偏移地址经20 位地址加法器生成的20位地址称为物理地址。己知逻辑地址为1200: OABCDH,其物理地址为12000H + OA
15、BCDH二lCBCDHo2.6若CS为3000H,试说明现行代码段可寻址的存储空间的范围。参考答案:可寻址的存储空间的范围:30000H+0000H30000H+FFFFH,既:30000H3FFFFH2.7设现行数据段位于存储器10000H到1FFFFH存储单元,DS段寄存器内容为多少? 参考答案:一个逻辑段最大范围:0000HFFFFH,因此DS段寄存器内容为:1000H。 参考答案:2.9已知堆栈段寄存器SS二4000H,堆栈指针SP二0100H,试将数据56789ABCH推入堆栈, 画出进栈示意图。最后栈顶SP二?参考答案:最后栈顶SP二400FCHSP-*400FCH100FEH10
16、100H2. 10试求出下列运算后的各个状态标志。(1) 1234H + 6789H 23A5H 65C2H参考答案:(1) 1234H + 6789H二79BDH, CF二0, PF二1, AF二0, ZF二0, SF二0, 0F二0; 23A5H - 65C2H二0BDE3H, CF二1, PF二0, AF二0, ZF二0, SF二1, 0F二0。2. 11 8088CPU I作在最小模式时。(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU访问I/O时,要利用哪些信号?参考答案:(1)I0/m=0, A19/S16 A16/S5, A15 As, AD:AD0, ALE,读存储器
17、时:rd=0,DT/r =0(写存储器时:WR=0, DT/r =1) , DEN o(2)10/m=1, Al9/S16 A16/S3, A15 As, AD7 ADo, ALE,读 10 端口时:rd =0, DT/r =0(写 10 端口时:wr=0, DT/r =1), den o2.12简要说明8086/8088的指令周期、总线周期、机器周期和时钟周期有何不同。参考答案:(1)指令周期由若干个机器周期组成,而机器周期时间乂包含若干个时钟周期,总线周 期一般由4个时钟周期组成。(2)机器周期和总线周期的关系是:机器周期指的是完成一个基本操作的时间,这个基 本操作有时可能包含总线读/写,
18、因而包含总线周期,但是有时可能与总线读/写无关,所以, 并无明确的相互包含关系。2.13什么情况下插入T*等待周期?插入b多少,取决什么因素?参考答案:在入状态,CPU釆样READY线,若READY信号无效,插入T.状态;插入状态为一个至多个,直到READY信号有效,才进入几状态。2. 14什么情况下会出现总线的空闲周期?参考答案:只有在8086CPU和存储器或I/O接口之间传输数据时,CPU才执行总线周期,当CPU 不执行总线周期时(指令队列6个字节己装满,EU未申请访问存储器),总线接口部件 不和总线打交道,就进入了总线空闲周期T-在空闲周期中,虽然CPU对总线进行空操作,但是CPU内部操
19、作仍然进行,即EU部 件在工作。所以说,总线空操作是总线接口部件BIU对总线执行部件EU的等待。3.1指出下列传送类指令源操作数的寻址方式。MOV SI,120(2)MOVBX, DXMOVAX,100BXDI(4)MOVDI,BX+100MOVAX,1000H(6)MOVAX,80HMOVAX,BX(8)MOVCX,BX SI参考答案:(1)立即数寻址(2)寄存器寻址(3)基址加变址寻址(4)基址寻址(5)直接寻址(6)立即数寻址(7)基址寻址(8)基址加变址寻址3. 2指出下列指令中存储器操作数物理地址的计算表达式。(1) MOV SI,BX(2)MOV 8DI, DX(3) MOV AX
20、,BPSI(4)ADD DI, BX+1OO(5) ADD AX,1000H(6)SUB AX, BX+DI+80H(7) ADD AX,ES:BX(8)DEC WORD PTRSI参考答案:(1) DSX16+BX(2) DSX16+DI + 8(3) SSX16+BP+SI(4) DSX16+BX+100(5) DSX 16 + 1000H(6) DSX16+BX+DI + 80H(7) ESX16+BX(8) DSX16+DI3.3指出下列指令中的错误。(1) MOV BX, AL(2) MOV CS, AX(3) MOV 100, CL(4) MOV BX, 1000H(5) PUSH
21、 1234H(6) MOV CS , 1200H(7) XCHG AH, 12H(8) INC 2000H(9) ADD BX, 10(10) OUT 258H, AX参考答案:(1) 源操作数和目的操作数寄存器类型不匹配(2) 代码段寄存器CS不允许赋值(3) 立即数不能做目的操作数(4) 内存单元之间不能直接传送(5) 立即数不能做堆栈指令操作数(6) 代码段寄存器CS不允许赋值(7) 立即数不能做交换指令操作数(8) 字类型还是字节类型不明确(9) 目的操作数类型不明确(10) 端口地址大于8位二进制数,需要通过DX传送。3.4设(SP)=3000H, (AX)=1234H, (BX)=
22、5678H,指出执行下列指令后相关寄存器的 内容。PUSHAXPUSHBXPOPAXPOPBX参考答案:执行后,(AX)=5678H,(BX)=1234H,(SP)=3000H。3.5若AX二1234H, BX二3456H,当执行SUB AX, BX指令后,求AX和标志寄存器CF、AF、SF、 ZF和OF标志位的值?参考答案:(AX)二ODDDEH, CF二1, AF=1, SF二1, ZF二0, 0F二0。3.6设(AH)=0F6H, (AL) =90H,问执行SUB AH, AL指令后,AX中的值及标志寄存器CF、AF、SF、ZF、PF和OF标志位的值?参考答案:(AX)二6690H, C
23、F=O, AF=0, SF=O, ZF二0, 0F=0, PF二1。3. 7 设(BX)=1000H, (DI)=0050H,执行LEA BX, BX+SI-0200H后,(BX)=?参考答案:(BX) =0E50H3.8 己知(DS) =2000H, (SS) =5000H, (AX) =0012H, (BX)=0340H, (CX)=0781H, (BP)=0035H, (SI)=0100H, (DI) =0300H, (20440H) =2104H, (20742H) =0E2AH, (20372H) = 6FD3H,试求单独执行下列指令后的结果。(1) MOV DL, BXSI(2)
24、MOV BPDI, CX(3) LEA BX, 100HEBXDIMOV DX, 2BX(4) SUB SI, CX(5) XCHG CX, 32HBX参考答案::(DL)=04H:(50336H) =07H:(BX)=0740H;(DX) =0E2AH;(SI)=0F97FH:(CX)= 6FD3H3.9下列指令完成什么功能?(1) NEG BX(2) MUL BL(3)DIVCLDECAX(5)SBBAX,CXINC DL(7)ADCAX,1000H(8)SARAL, CL(9)DAA(10)CBW参考答案:(1) 将BX中的内容求补(正数变负数或负数变正数,绝对值不变)后送回BX。(2)
25、 BLXAL,结果送AX。(3) AX/CL,商存于AL,余数存于AH。(4) AX中值减1,结果送回AL。AX中的值减去BX中的值再减去CF中的值,结果送回AX。(6) DL中的值当无符号数加1,结果送回DL。(7) AX中的内容加上1000H后,再加上CF的值,结果送iHlAXo(8) AL中的值向右移,移动位数为CL中的值,AL左边补充符号位的值。(9) 将AL中的两位BCD码加法运算的结果调整为两位压缩型十进制数,仍保留在AL中。(10)将AL的最高有效位扩展至AH。3. 10 己知AX二3405H, BX二0FE1H, CX二0002H, DX二2A3EH,求下列每条指令执行后目的操
26、作数的结果。(1) AND AH, BL(3) NOT DX(5) TEST AL, 80H(7) SHR DX, CL(9) RCL AL, 1(2) OR CL, 20H(4) XOR CX, 0FE3H(6) CMP BX, 0F123H(8) SAR AL, CL(10) ROR DX, CL参考答案:(1) (AH)=02H(2) (CL)=22H(3) (DX)=OD5B1H(4) (CX)=OFE1H(5) (AL)=05H(6) (BX)=OFE1H(7) (DX)=0A8FH(8) (AL) =01H(9) (AL) =0AH(10) (DX)=8A8FH3.11设(AX)=
27、54D1H,执行下列程序段指令后,求相应的结果。MOVBL, AH参考答案:MOVCL,ALADDBL,100;BL二0B8HXCHGAL,BL;AL二0B8HSUBAL,CL;AX二54E7HJSHHANDAL,OFHHH:ADCAH,BL;AX二26E7HBL二0D1H3. 12设(AX)=1023H、(BX)=0430H,执行下列程序段指令后,MOVCL,2参考答案:SHRAH,CL;AX二0423HADDBX,AX;BX二0853HJMPNEXTMULBLNEXT:OR AX, BX:AX二0C73HHLT求相应的结果。3. 13已知当前数据段中有一个十进制数字09的7段ASCII表,
28、其数值依次为30H39H,其首地址为2000Ho要求用XLAT指令将十进制数46转换成相应的7段代码值,存到AX寄存器中,试写出相应的程序段。参考答案:MOVBX,2000HMOVAL,4XLATMOVAH,ALMOV AL,6XLATHLT3. 14设有程序段:DATA SEGMENTSTRING DB * Today is saturdy!N EQU S-STRINGDATA ENDS试用字符串指令完成以下功能:(1)把该字符串传送到附加段中偏移量为CHAR1开始的内存单元中;检查该字符串是否有“!”字符,若有将找到的第一个“!”用“? ”将其替换。参考答案: CLDMOV CX, NLE
29、A SI, STRINGLEA DI, CHARIREP MOVSBLEA DI, STRINGMOV CX, NCLDREPNE SCASBMOV AL, ?MOV DIL AL3. 15阅读程序段,说明其完成的功能。MOVex,100MOVDL,0MOVBX,1000HLP1:MOVAL,BXCMPAL,0JNZLP2INCDLLP2:INCBXLOOP LP1MOV BX, DLHLT参考答案:程序段的功能:统计从数据段偏移地址1000H的100个字节单元内容0的个数,并将统计 结果存入数据段偏移地址为1064H的内存单元。3. 16试编程完成(AL) X7/4的程序段,AL中的数为有符
30、号数。 参考答案:MOV BL, 7IMUL BLMOV CL, 2SAR AX, CL3. 17使用最少指令,实现下述要求的功能。(1)BL的高4位置1;(2)AL的低4位取反;(3)DL中的高4位移到低4位,低4位移到高4位;(4)AH的低4位移到高4位,低4位清0。参考答案:(1) OR BL,OFOH; XOR AL,OFH; MOV CL,4ROR AH,CL; MOV CL,4SHL AH,CLo3. 18在DS: 2000H为首址的内存数据段中,存放了 10个16位带符号数,试编程将其中最 大和最小的带符号数找出来,分别存放到以DS:3000H和DS:3002H内存单元中。参考答
31、案:MOVSI,2000HMOVAX,SI;AX中存放最大数MOVBX,SI;BX中存放最小数MOVex,9FIND:ADD SI, 2MOVDX,SICMPAX,DXJGL0P1MOV AX, DXL0P1: CMP BX, DXJL LOP2MOV BX, DXLOP2: LOOP FINDMOV SI, 3000HMOV SI, AXADD SI, 2MOV SI, BXHLT3. 19设中断类型N二8,中断服务程序的起始地址为3000:0100H,它在中断向量表中如何 存放?参考答案:NX4 = 8X4 = 32 = 20HDS: 0020H存放00H;DS: 0021H存放01H;D
32、S: 0022H存放00H;DS: 0023H存放30H。4.1下列变量各占多少字节?MlDW12, 78A3HM2DB3 DUP (?), OAH, ODH,M3DBHOW DO YOU DO?参考答案:变量Ml占4个字节,变量M2占6个字节,变量M3占14个字节 4.2某程序设置的数据区如下:DATA SEGMENTORG 1000HDlDB11, 2DH, 56HD2DW32, 0ABD3H, 7634HD3DWDlD4DB$-DlD5DB4 DUP (?)D6 DB 34FSDATA ENDS画出该数据段内容再内存中存放形式(要求用十六进制补码表示,按字节组织)。参考答案:D1D2D3
33、D4D5D60B2D562000D3AB347600100B9?99333446534.3下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DATA1DB9DATA2DW5 DUP(?)DATA3DB,1234MOVAX, TYPE DATA1MOVBX, SIZE DATA2MOVCX, LENGTH DATA3参考答案:(AX)=1, (BX)=10,(CX) =44.4假设程序中的数据定义如下:DATA1DWQDATA2DB10 DUP(?)DATA3 DD ?DATA4 EQU $-DATAl求DATA4的值为多少?表示什么意义?参考答案:DATA4的值为2+10+4二16
34、,表示下一个内存单元距离DATA1有16个字节。4. 5设平面上有一点P的直角坐标(x, y),编程实现:如果P点落在第I象限,则K二I; 如果P点落在坐标轴上,则K二0。参考答案:X DW ?Y DW ?K DB ?MOVBX, XMOVDX, YCMPBX, 0JZKOCMPDX, 0JZKOJGK12CMPBX, 0JGK4MOVK, 3JMPEXITK0:MOVK, 0JMPEXITK1:MOVK, 1JMPEXITK4:MOVK, 4JMPEXITK12: CMP BX,JGKI:在第三象限:在坐标轴:在第一象限:在第四象限MOV K, 2:在第二象限JMP EXITEXIT: MO
35、V AH, 4CHINT 21H4. 6编程把字符串CHAR 11中小写字母转换为对应的大写字母,并存放在CHAR22开始的内存单元。CHAR11DBasdfghjklCOUNTDB$-CHARllCHAR22DBCOUNT DUP (?)参考答案:CHAR11DBasdfghjklCOUNTDB$-CHARllCHAR22DBCOUNT DUP (?)MOVCX,COUNTMOVBX,0LOP:MOVDL,CHARI1BXSUBDL,20HMOVCHAR22BX, DLINCBXLOOPLOP4.7字符串CHAR33存放有50个字节字符,设其中有字符编程查找第一个M字符相 对字符串CHAR3
36、3起始地址的距离,并将其存放到LENTH11字节单元。参考答案:CHAR33 DB 50 DUP (?)LENTH11 DW ?MOVex,50LEADI,CHAR33NN:MOVAL,DICMPAL,JZ FINDOLOOP NNJMP EXITFINDO:LEASI,CHAR33SUBDI,SIMOVLENTH11, DIEXIT:MOVAH,4CHINT21H4.8编程计算:(A*CB) /B,其中A、B、C均为字节变量有符号数。参考答案:ADB20HBDB93HCDB45HDDW9MOVAL,AMOVBL,CIMULBLMOVBX,AXMOVAL,BCBWSUBBX,AXMOVAX,B
37、XMOVCL,BIDIVCL;结果在AX中,AL中为商,AH中为余数4.9编程查找出BUF数据区中带符号数的最大数和最小数,存放在MAX和MIN存储单元 中。参考答案:BUFDB12H,45H, 0A2H,,48HNEQU$-BUFMAXDB?MINDB?MOVCX,N-lMOVBL,SIMOVAL,BLLI: INCSIMOVDL,SICMPDL,BLJGEL2MOVBL,DLJMPNEXTL2: CMPDL,ALJLENEX.TMOVAL,DLLEA SI, BUFNEXT:LOOP LI:BL中的值为两个数比较的小值:AL中的值为两个数比较的大值MOV MAX, ALMOV MIN, B
38、L4. 10从自然数1开始累加,直到累加和大于2000为止,统计被累加的自然数的个数, 并把统计的个数送入NUMBER单元,把累加和送入SUM单元。参考答案:DATA SEGMENTNUMBER DW ?SUM DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0MOVBX,0LP:INC BXADD AX, BXCMP AX, 2000JBE LPMOV NUMBER, BXMOV SUM, AXMOV AH, 4CHINT 21HCODE ENDSEND START4.11编写一个子程
39、序,功能是将一个字节的BCD码转换成二进制数。参考答案:;名称:BCD2BIN;功能:将一个字节的BCD码转换成二进制所用寄存器:CX入口参数:AL存放两位BCD码出口参数:AL存放二进制数调用其它子程序:无BCD2BIN PROC NEAR (或 FAR)PUSHCXMOVCH,ALANDCH,OFHMOVCL,4SHRAL,CLMOVCL,10MULCLADDAL,CHPOPCXRETBCD2BIN ENDP;存低8位:高8位右移4位后乘10;高8位加低8位4. 12设I个软件延时子程序,延时时间约为Is,假设系统时钟为8MHz。参考答案:分析:软件延时可用指令执行消耗时间來达到,延时时间
40、主要取决于循环体指令。从手 册查得PUSHF和POPF指令分别为10和8个时钟节拍,LOOP指令为3. 4个时钟节拍,系统时 钟为8MHz,每个节拍需要0.125s,因此延时Ims计算循环次数:十丽次延时Is再循环1000次。名称:DELAY 1S功能:延时1S子程序所用寄存器:BX、CX入口参数:无,出口参数:无调用其它子程序:无DELAY1S PROC NEARPUSH BXPUSH CXMOV BX, 1000LP1: MOVCX, 374LP2: PUSHFPOPFLOOP LP2;延时 1msDEC BXJNZ LP1POP CXPOP BXRET;延时ISDELAY1S ENDP4
41、. 13编写程序,在屏幕上显不字符串This is a sample program, 参考答案:DATA SEGMENTDAI DB This is a sample program,ODH, OAH, $DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,9LEADX,DAIINT21HMOVAH,4CHINT21HCODE ENDSEND START4. 14编程实现:从键盘中输入学生的姓名XY乙当按任意一个键时,屏幕上显示出:HELLO! XYZ参考答案:CHARI DB 20DB ?DB
42、20 DUP (?)CHAR2 DB HELLO! , $START:LEASI,CHARIMOVAH,OAHINT21HMOVAH,8INT21HLEADX,CHAR2MOVAH,9INT21HLEABX,CHAR1+2MOVCL,BXlMOVCH,0LP:MOVAH,2:输入姓名存CHAR1+2单元:等待按键:显示CHAR2开始的内容:显示姓名首地址:CX中为输入姓名字符个数MOV DL, BXINT 21HINC BXLOOP LP;逐个显示名字的字符5. 1 DRAM为什么要刷新?参考答案:动态随机存储器DRAM依靠电容來保存信息。为了不丢失信息,需要再电容放电丢失信息 前,把数据读出
43、来再写进去,相当于再次给电容充电,以维持所记忆的信息,这是动态刷新。5.2设有一个具有13位地址和8位字长的存储器,问:(1)存储器能存储多少字节信息?(2)如果存储器由1KX4位RAM芯片组成,共计需要多少片?(3)需要用几位高位地址做片选译码来产生芯片选择信号?参考答案:(1)存储器能存储旷字节信息。(2)13位地址和8位字长是8KX8位,如果存储器由1KX4位RAM芯片组成,共计需要16片。(3)需要用检、飭、A辽位高位地址做片选3-8译码來产生芯片选择信号。5.3设有16片256KX1位的SRAM芯片。(1)只釆用位扩展方法可构成多大容量的存储器?(2)如果釆用8位的字节编址方式,该存
44、储器需要多少地址线?参考答案:(D256KX16位存储器;(2)构成的存储器是512KX8位,2二512K,则需要19根地址线。5.4设有若干片32KX8位的SRAM芯片,设计一个总容量为64K的16位存储器,需要 多少片32KX8位的SRAM芯片?参考答案:(64KX16) / (32KX8) =4,需要4片5.5如果某存储器分别有8、12、16位地址线,对应的存储单元由多少?参考答案:对于的存储单元分别是:256个、4K个、64K个。5.6己知ROM的容量为8KX8,设它的首地址为30000H,那么最后一个单元地址是多少?参考答案:最后一个单元地址是:30000H + 1FFFH二31FF
45、FH5.7设有若干片256KB的SRAM芯片,构成2048KB存储器。(1)需要多少片256KB SRAM芯片?(2)构成2048KB存储器需要多少地址线?参考答案:(1) 需要2048/256二8片256KB SRAM 芯片;(2) 2048K二旷,构成2048KB存储器需要21地址线。5.8 CPU有16根地址线,B|JA15A。,计算图5.19所示的片选信号码和瓦指定的基地址范围。参考答案:cs;低电平有效需要A15恥全是高电平1值,瓦低电平有效需要A15血全是低电平0值。Aw A1: : 1111B二OFH, A】Ao变化范围:000HFFFH。因此地址范圉:F000HFFFFH。Aw
46、 Ax: : 000B二OH, An Ao变化范围:000HFFFH。因此&T地址范圉:0000HOFFFH。6.1为什么外设要通过接II电路和主机系统相连?参考答案:微机CPU和外设信号存在速度差异、信号电平差异及驱动能力差异、信号形式差异(CPU只能处理数 字信号,而外设有数字量、模拟量、非电量等)、时序差异等问题,这些都需要通过在CPU与外设之间 设置相应的I/O接II电路来予以解决。接II电路具有:速度协调、数据锁存、三态缓冲、数据转换、中 断控制功能等。6.2什么叫端口?通常有哪几类端I?计算机对I/O端I编址时通常采用哪两种方法?在 8086/8088系统中,用哪种方法对I/O端I
47、 I进行编址?参考答案:端口是接口电路中能被CPU直接访问(读/写)的寄存器,每个端II都有一个地址。一般说来,I/O接 II电路中有3种端I:数据端I I,状态端II和控制端I。I/O端II地址通常有两种编址方式:一种是将内存地址与I/O端I I地址统一编在同一地址空间中, 称为存储器映像的I/O编址方式:另一种是将内存地址与I/O端II地址分别编在不同的地址空间中,称 为I/O端II单独编址方式。在8086/8088系统中,采用I/O端I I单独编址方式。6.3 CPU与外设间数据传送的控制方式有哪几种?它们各自的优缺点是什么?参考答案:传送方式有:无条件传送方式、查询传送方式、中断传送方
48、式、以及DMA方式等。(1)无条件传送是一种最简单的程序控制传送方式,CPU I/O前不需要查询外设的工作状态,任何时候都可访问。优点是简单,缺点是只有像开关、发光二极管、继电器、步进电动机等外设在与CPU进行 信息交换时才可以采用无条件传送方式。(2)查询传送方式在执行IO操作之前,需要通过程序对外设的状态进行检查。当所选定的外设已准 备就绪”后,才开始进行I/O操作。其优点是使CPU能和不同速度的外设传送数据,缺点是需要占用 CPU资源。(3)中断传送方式是指外设就绪时,主动向CPU发出中断请求,从而使CPU去执行相应的中 断服务程序,完成与外设间的数据传送。釆用中断方式传送,数据传送实时
49、性好,另外在外 设未准备就绪时,CPU还可以处理其他事务,工作效率高。(4)DMA方式又叫直接存储器存取方式,是在外设和存储器之间开辟直接的数据传送通路,在存储器和 外设之间的通路上直接传送数据。DMA方式的实现主要是靠硬件(DMA控制器)实现的,不必进行保护现场 等一系列额外操作,优点是减轻了 CPU的负担,特别适合于高速度人批量数据传送的场合。缺点是要增 设DMA控制器,硬件电路比其它方式更为复杂。6.4结合指令简述卞图CPU与外设以查询方式输出数据的接I I电路工作过程(设地址译码数据I I地址为60H,状态II地址为61H) o查询输出部分的程序如卜:POLL: IN AL, 61HT
50、EST AL, 80HJNE POLLMOV AL, SIOUT 60H, AL参考答案:工作过程:当输出装置把CPU输出的数据输出以后,发出一个益信号,使D触 发器置0,即使BUSY线为0,当CPU输入这个状态信息后(经至D;),知道外设为“空”,于是 执行输出指令。待执行输出指令后,由地址信号和审/I0及五相“与”,经G发出选通信号, 把在数据总线上的输出数据送至锁存器;同时,触发D触发器为“1”状态,它一方面通知外 设输出数据己准备好,可以执行输出操作,另一方面在数据由输出装置输出以前,一直保持 为1,告知CPU (CPU通过读状态端口知道)外设BUSY,阻止CPU输出新的数据。;查状态端口中的状态信息D:;D7=l,即忙线二1,则循环再查;若外设空闲,则由内存读取数据;输出到60H地址端口单元6.5什么是中断向屋表?在8086/8088的中断向量表中有多少不同的中断向量?若已知中断类型号是 10,说明如何在中断向屋表中查找中断向量?参考答案:8086/8088的256个中断处理子程序的入口地址统一存放在内存的一个固定区域。每个 中断处理子程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代位求偿保证金合同
- 农场租赁合同样本
- 2024年滁州明光市消防救援大队招聘政府专职消防员笔试真题
- 2024年百色西林县消防救援大队政府专职消防员招聘笔试真题
- 冻库维保合同标准文本
- 包装采购合同标准文本标准文本
- 北京车辆过户合同标准文本
- 加工大米合同标准文本
- 人工假山合同样本
- 医院窗帘采购合同样本
- 2024年河南艺术职业学院高职单招语文历年参考题库含答案解析
- 2025年全球及中国生物制药过滤行业头部企业市场占有率及排名调研报告
- 2025年湖北仙桃市城投公司招聘笔试参考题库含答案解析
- 数字团队管理制度内容
- 手术室腹腔镜设备
- 湖南省长沙市雅礼实验中学-主题班会-《阳光心态美丽青春》【课件】
- 中考作文专题复习之《中考作文“点题”方法指导》课件
- 提高单病种上报率
- 企业人员职业资格证书管理制度
- 临床护理实践指南2024版
- 休克基础监护及治疗
评论
0/150
提交评论