《《微型计算机原理与接口技术》周荷琴吴秀清第三版课后习题答案培训讲学.doc》由会员分享,可在线阅读,更多相关《《微型计算机原理与接口技术》周荷琴吴秀清第三版课后习题答案培训讲学.doc(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。微型计算机原理与接口技术周荷琴吴秀清第三版课后习题答案-第一章1.什么是冯诺依曼机?答:冯诺依曼于1945年提出了存储程序的概念和二进制原理,利用这种概念和原理设计的电子计算机系统统称为冯诺依曼机。它包括运算器、控制器、存储器、输入设备和输出设备五个组成部分。早期的冯诺依曼机结构上以运算器和控制器为中心,随着计算机体系结构的发展,现在已演化为以存储器为中心的结构。2.微处理器,微型计算机,微型计算机系统有什么联系与区别?答:微处理器是微型计算机系统的核心,也称为CPU(中央处理器)。主要完成:从存储器中
2、取指令,指令译码;简单的算术逻辑运算;在处理器和存储器或者I/O之间传送数据;程序流向控制等。微型计算机由微处理器、存储器、输入/输出接口电路和系统总线组成。以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统。三者关系如下图:3.微处理器有哪些主要部件组成?其功能是什么?答:微处理器是一个中央处理器,由算术逻辑部件ALU、累加器和寄存器组、指令指针寄存器IP、段寄存器、标志寄存器、时序和控制逻辑部件、内部总线等组成。算术逻辑部件ALU主要完成算术运算及逻辑运算。累加器和寄存器组包括数据寄存器和变址及指针寄存器,用来存放参加运算的数据、中间结果或地址。指令指针寄存器IP存
3、放要执行的下一条指令的偏移地址,顺序执行指令时,每取一条指令增加相应计数。段寄存器存放存储单元的段地址,与偏移地址组成20位物理地址用来对存储器寻址。标志寄存器flags存放算术与逻辑运算结果的状态。时序和控制逻辑部件负责对整机的控制:包括从存储器中取指令,对指令进行译码和分析,发出相应的控制信号和时序,将控制信号和时序送到微型计算机的相应部件,使CPU内部及外部协调工作。内部总线用于微处理器内部各部件之间进行数据传输的通道。(3)1238D=2326Q=4D6H(4)92D=134Q=5CH12.将下列十进制数转换为8位有符号二进制数。(1)+32(2)-12(3)+100(4)-9答:(1
4、)+32原=+32反=+32补=00100000B(2)-12原=10001100B-12反=11110011B(3)+100原=+100反=+100补=01100100B(4)-92原=11011100B-92反=10100011B13.将下列十进制数转换为压缩和非压缩格式的BCD码。(1)102(2)44(3)301(4)1000答:(1)102压缩BCD=0000000100000010B102非压缩BCD=00000001000000000(2)44压缩BCD=01000100B44非压缩BCD=000001000(3)301压缩BCD=0000001100000001B301非压缩B
5、CD=00000011000000000(4)1000压缩BCD=0001000000000000B1000非压缩BCD=0000000100000000014.将下列二进制数转换为有符号十进制数。(1)10000000B(2)00110011B(3)答:(1)看作原码时真值为-0,看作反码时真值为-127,看作补码时真值为-128(2)+51(3)看作(4)看作原码时真值为-9,看作反码时真值为-118,看作补码时真值为-119第二章1.8086CPU内部由哪两部分组成?它们的主要功能是什么?答:8086CPU内部由执行单元EU和总线接口单元BIU组成。主要功能为:执行单元EU负责执行指令。
6、它由算术逻辑单元(ALU)、通用寄存器组、16位标志寄存器(FLAGS)、EU控制电路等组成。EU在工作时直接从指令流队列中取指令代码,对其译码后产生完成指令所需要的控制信息。数据在ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。总线接口单元BIU负责CPU与存储器和IO接口之间的信息传送。它由段寄存器、指令指针寄存器、指令队列、地址加法器以及总线控制逻辑组成。2.8086CPU中有哪些寄存器?各有什么用途?答:8086CPU内部包含4组16位寄存器,分别是通用寄存器组、指针和变址寄存器、段寄存器、指令指针和标志位寄存器。(1)通用寄存器组包含4个16位通用寄存器AX、BX、CX
7、、DX,用以存放普通数据或地址,也有其特殊用途。如AX(AL)用于输入输出指令、乘除法指令,BX在间接寻址中作基址寄存器,CX在串操作和循环指令中作计数器,DX用于乘除法指令等。(2)指针和变址寄存器BP、SP、SI和DI,在间接寻址中用于存放基址和偏移地址。(3)段寄存器CS、DS、SS、ES存放代码段、数据段、堆栈段和附加段的段地址。(4)指令指针寄存器IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。(5)标志寄存器Flags用来存放运算结果的特征。3.8086CPU和8088CPU的主要区别是什么?答:8088CPU的内部结构及外部引脚功能与8086CPU大部分相同,二者的主要
8、不同之处如下:(1)8088指令队列长度是4个字节,8086是6个字节。(2)8088的BIU内数据总线宽度是8位,而EU内数据总线宽度是16位,这样对16位数的存储器读/写操作需要两个读/写周期才能完成。8086的BIU和EU内数据总线宽度都是16位。(3)8088外部数据总线只有8条AD7AD0,即内部是16位,对外是8位,故8088也称为准16位机。(4)8088中,用IO/M信号代替M/IO信号。(5)8088中,只能进行8位数据传输,BHE不再需要,改为SS0,与DT/R和IO/M一起决定最小模式中的总线周期操作。4.简要解释下列名词的意义:CPU,存储器,堆栈,IP,SP,BP,段
9、寄存器,状态标志,控制标志,物理地址,逻辑地址,机器语言,汇编语言,指令,内部总线,系统总线。答:CPU:中央处理器,是整个计算机系统的控制中心,主要功能是进行算术和逻辑运算,以及发出各种控制信号以协调整个系统正常工作。存储器:是计算机系统中的记忆元件,用于存储指令和数据。堆栈:在存储器中开辟的一个区域,用来存放需要暂时保存的数据。其操作特点是先进后出。IP:指令指针寄存器,用来存放将要执行的下一条指令在现行代码段中的偏移地址。SP:堆栈指针寄存器,用于指向当前栈顶单元。BP:基址指针,间接寻址中用于存放基址,隐含段地址为SS。段寄存器:用于存放逻辑段的段地址。状态标志:SF、ZF、OF、AF
10、、PF和CF,反映运算结果的状态特征。控制标志:IF、DF和TF,对可屏蔽中断、字符串操作指针变换方向和单步运行起控制作用。物理地址:指存储器中存储单元的实际地址编码,是一种绝对地址,是CPU访问存储器的实际寻址地址,对于8086系统,地址范围为00000HFFFFFH。逻辑地址:由段基址和偏移地址组成,均为无符号的16位二进制数,程序设计时采用逻辑地址,可由逻辑地址变换为物理地址,物理地址=段基址16+偏移地址。机器语言:直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,计算机可以直接识别,不需要进行任何翻译。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为
11、面向机器的语言,也称为机器语言,是第一代计算机语言。汇编语言:使用助记符表示的二进制代码指令语言,是一种符号化的机器语言,必须经编译程序将汇编语言编译成机器语言,计算机才能识别。指令:能被计算机识别并执行的二进制代码,规定了计算机能完成的某一操作。内部总线:微处理器内部各个部件之间传送信息的通道。系统总线:微处理机机箱内的底板总线,用来连接构成微处理机的各个插件板,如ISA总线、EISA总线、PCI总线等。5.要完成下述运算或控制,用什么标志位判别?其值是什么?(1)比较两数是否相等(2)两数运算后结果是正数还是负数(3)两数相加后是否溢出(4)采用偶校验方式,判定是否要补1(5)两数相减后比
12、较大小(6)中断信号能否允许答:(1)ZF,两数相减,若ZF=1,则相等。(2)SF,SF=1则为负,否则为正(3)对有符号数:OF,OF=1为溢出;对无符号数:CF,CF=1为溢出(4)PF,PF=1,不补1(5)对有符号数:无溢出时(OF=0),如ZF=1,则两数相等;如ZF=0且SF=0,则被减数大;如ZF=0且SF=1,则减数大;有溢出时(OF=1),如SF=1,则被减数大;如SF=0,则减数大;对无符号数:如ZF=1,则两数相等;如CF=0,则被减数大;如CF=1,则减数大(6)IF,IF=1,允许中断6.8086系统中存储器采用什么结构?用什么信号来选中存储体?答:8086系统中,
13、存储器采用分体结构,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为512KB。使用A0和BHE来区分两个存储体。当A0=0时,选中偶地址存储体,与数据总线低8位相连,从低8位数据总线读/写一个字节。当BHE=0时,选中奇地址存储体,与数据总线高8位相连,从高8位数据总线读/写一个字节。当A0=0,BHE=0时,同时选中两个存储体,读/写一个字。9.段寄存器装入如下数据,写出每段的起始和结束地址。(1)1000H(2)1234H(3)2300H(4)E000H(5)AB00H答:(1)10000H1FFFFH(2)12340H2233FH(3)23000H32FFFH(4)E0
14、000HEFFFFH(5)AB000HBAFFFH10.根据下列CS:IP的组合,求出要执行的下一条指令的存储器地址。(1)CS:IP=1000H:2000H(2)CS:IP=2000H:1000H(3)CS:IP=1A00H:B000H(4)CS:IP=3456H:AB09H答:(1)12000H(2)21000H(3)25000H(4)3F069H11.求下列寄存器组合所寻址的存储单元地址:(1)DS=1000H,DI=2000H(2)SS=2300H,BP=3200H(3)DS=A000H,BX=1000H(4)SS=2900H,SP=3A00H答:(1)12000H(2)26200H(
15、3)A1000H(4)2CA00H12.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?答:物理地址:35000H35800H。入栈10个字节后SP为7F6H。再出栈6个字节后SP为7FCH。14.存储器中每段容量最多64K字节,若用debug调试程序中的r命令,在屏幕上有如下显示:C:debug-rAX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZ
16、NAPONC(1)试画出此时存储器分段示意图(2)写出状态标志OF、SF、ZF、CF的值答:(1)代码段首地址:31FF0H当前指令地址:320F0H数据段首地址:10E40H堆栈段首地址:21F00H堆栈段栈顶地址:31EEEH附加段首地址:10F40H(2)OF=SF=ZF=CF=015.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?答:为了便于组成不同规模的系统,在8086芯片中设计了两种工作模式,即最小模式和最大模式。最小模式用于单机系统,系统中所需要的控制信号全部由8086直接提供;最大模式用于多处理机系统,系统中所需要的控制信号由总线控制器8288提供。
17、16.8086系统中为什么要用地址锁存器?8282地址锁存器与CPU如何连接?答:为了减少引脚的数量,8086CPU的地址引脚和数据引脚分时复用,为了保证在总线操作周期中地址信号能有效而稳定的输出,必须使用地址锁存器。由于8086有20条地址线,故需使用三片8282,其中OE接地,STB与CPU的ALE相连,前两片8282的DI0DI7分别与CPU的AD0AD15相连,第三片8282的DI0DI3分别与CPU的AD16AD19相连,DI4与CPU的BHE相连。17.哪个标志位控制CPU的INTR引脚?答:IF,中断允许标志,IF=1时,允许可屏蔽中断,IF=0时,禁止可屏蔽中断。18.什么叫总
18、线周期?在CPU读/写总线周期中,数据在哪个机器状态出现在数据总线上?答:CPU完成一次存储器访问或I/O端口操作所需要的时间称为一个总线周期,由几个T状态组成。在读/写总线周期中,数据在T2T4状态出现在数据总线上。20.8086CPU重新启动后,从何处开始执行指令?答:重新启动后,CS=FFFFH,IP=0000H,故从物理地址为FFFF0H的位置开始执行指令。21.8086CPU的最小模式系统配置包括哪几部分?答:8086最小模式系统配置包括:8086CPU,存储器,I/O接口芯片,1片8284时钟发生器,3片8282地址锁存器,2片8286双向数据总线收发器。第三章1.分别说明下列指令
19、的源操作数和目的操作数各采用什么寻址方式。(1)MOVAX,2408H(2)MOVCL,0FFH(3)MOVBX,SI(4)MOV5BX,BL(5)MOVBP+100H,AX(6)MOVBX+DI,$(7)MOVDX,ES:BX+SI(8)MOVVALBP+DI,DX(9)INAL,05H(10)MOVDS,AX答:(1)立即数,寄存器(2)立即数,寄存器(3)寄存器间接,寄存器(4)寄存器,寄存器相对(5)寄存器,寄存器相对(6)立即数,基址变址(7)基址变址,寄存器(8)寄存器,相对基址变址(9)直接端口寻址,寄存器(10)寄存器,寄存器2.已知:DS=1000H,BX=0200H,SI=
20、02H,内存10200H10205H单元的内容分别为10H,2AH,3CH,46H,59H,6BH。下列每条指令执行完后AX寄存器的内容各是什么?(1)MOVAX,0200H(2)MOVAX,200H(3)MOVAX,BX(4)MOVAX,3BX(5)MOVAX,BX+SI(6)MOVAX,2BX+SI答:(1)0200H(2)2A10H(3)0200H(4)5946H(5)463CH(6)6B59H3.设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为VAL的偏移地址值为0030H,试说明下列源操作
21、数字段的寻址方式是什么?物理地址值是多少?(1)MOVAX,100H(2)MOVAX,VAL(3)MOVAX,BX(4)MOVAX,ES:BX(5)MOVAX,SI(6)MOVAX,BX+10H(7)MOVAX,BP(8)MOVAX,VALBPSI(9)MOVAX,VALBXDI(10)MOVAX,BPDI答:(1)直接,10100H(2)直接,10030H(3)寄存器间接,10100H(4)寄存器间接,20100H(5)寄存器间接,100A0H(6)寄存器相对,10110H(7)寄存器间接,35200H(8)相对基址变址,352D0H(9)相对基址变址,10154H(10)基址变址,3522
22、4H4.写出下列指令的机器码(1)MOVAL,CL(2)MOVDX,CX(3)MOVBX+100H,3150H答:(1)1000101011000001B(2)1000101111010001B(3)110001111000011100000000000000010101000000110001B5.已知程序的数据段为:DATASEGMENTADB$,10HBDBCOMPUTERCDW1234H,0FFHDDB5DUP(?)EDD1200459AHDATAENDS求下列程序段执行后的结果是什么。MOVAL,AMOVDX,CXCHGDL,AMOVBX,OFFSETBMOVCX,3BXLEABX,
23、DLDSSI,ELESDI,E答:MOVAL,AAL=24HMOVDX,CDX=1234HXCHGDL,ADL=24H,A=34HMOVBX,OFFSETBBX=2MOVCX,3BXCX=5550HLEABX,DBX=000EHLDSSI,EDS=1200H,SI=459AHLESDI,EES=1200H,DI=459AH6.指出下列指令中哪些是错误的,错在什么地方。(1)MOVDL,AX(2)MOV8650H,AX(3)MOVDS,0200H(4)MOVBX,1200H(5)MOVIP,0FFH(6)MOVBX+SI+3,IP(7)MOVAX,BXBP(8)MOVAL,ES:BP(9)MOV
24、DL,SIDI(10)MOVAX,OFFSET0A20H(11)MOVAL,OFFSETTABLE(12)XCHGAL,50H(13)INBL,05H(14)OUTAL,0FFEH答:(1)长度不匹配(2)立即数不能做目的操作数(3)段寄存器不能用立即数赋值(4)两个内存单元不能直接传送数据(5)IP不能用指令直接修改(6)指令中不能出现IP(7)BX/BP应与SI/DI搭配(8)正确(9)SI/DI应与BX/BP搭配(10)OFFSET后应跟内存单元(11)偏移地址为16位,AL长度不够(12)立即数不能用于XCHG(13)IN必须用AL/AX(14)操作数顺序反向;地址应为8位9.下列指令
25、完成什么功能?(1)ADDAL,DH(2)ADCBX,CX(3)SUBAX,2710H(4)DECBX(5)NEGCX(6)INCBL(7)MULBX(8)DIVCL答:(1)AL+DHAL(2)BX+CX+CFBX(3)AX-2710HAX(4)BX-1BX(5)0-CXCX(6)BL+1BL(7)AX*BXDX,AX(8)AX/CL商AL,余数AH14.在下列程序段括号中分别填入以下指令(1)LOOPNEXT(2)LOOPENEXT(3)LOOPNENEXT试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX的内容分别是什么。START:MOVAX,01HMOVBX,02HMOVD
26、X,03HMOVCX,04HNEXT:INCAXADDBX,AXSHRDX,1()答:(1)AX=05HBX=10HCX=0DX=0(2)AX=02HBX=04HCX=03HDX=01H(3)AX=03HBX=07HCX=02HDX=016.中断向量表的作用是什么?它放在内存的什么区域内?中断向量表中的什么地址用于类型3的中断?答:中断向量表用来存放中断服务程序的入口地址。8086的256类中断的入口地址要占用1K字节,位于内存00000H003FFH的区域内。中断向量表中0000CH0000FH用于类型3的中断。17.设类型2的中断服务程序的起始地址为0485:0016H,它在中断向量表中如
27、何存放?答:物理地址内容00008H16H00009H00H0000AH85H0000BH04H18.若中断向量表中地址为0040H中存放240BH,0042H单元里存放的是D169H,试问:(1)这些单元对应的中断类型是什么?(2)该中断服务程序的起始地址是什么?答:(1)10H(2)D169H:240BH19.简要说明8086响应类型04中断的条件是什么?答:类型0:除法错中断执行除法指令时,若除数为0或所得商超过寄存器能容纳的范围,则自动产生类型0中断。类型1:单步中断若CPU的单步标志TF=1,则每执行完一条指令后,自动产生类型1中断。类型2:不可屏蔽中断NMI当8086的NMI引脚上
28、接收到由低变高的电平变化时,将自动产生类型2中断。类型3:断点中断若在程序中某位置设置断点,当程序执行到该断点时,则产生类型3中断。类型4:溢出中断若溢出标志OF=1,则可由溢出中断指令INTO产生类型4中断。第四章1.下列变量各占多少字节?A1DW23H,5876HA2DB3DUP(?),0AH,0DH,$A3DD5DUP(1234H,567890H)A4DB4DUP(3DUP(1,2,ABC)答:A1占4个字节A2占6个字节A3占40个字节A4占60个字节2.下列指令完成什么功能?MOVAX,00FFHAND1122H+3344HMOVAL,15GE1111BMOVAX,00FFHLE25
29、5+6/5ANDAL,50MOD4ORAX,0F00FHAND1234OR00FFH答:(1)将0066H传送给AX(2)将0FFH传送给AL(3)将0FFFFH传送给AX(4)ANDAL,02H(5)ORAX,00FFH3.有符号定义语句如下:BUFDB3,4,5,123ABUFDB0LEQUABUF-BUF求L的值为多少?答:L=64.假设程序中的数据定义如下:PARDW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PAR求PLENTH的值为多少?表示什么意义?答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22,$-PAR=22,故PLENTH
30、的值为22。若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。5.对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DA1DB?DA2DW10DUP(?)DA3DBABCDMOVAX,TYPEDA1MOVBX,SIZEDA2MOVCX,LENGTHDA3答:AX=1,BX=20,CX=16.下段程序完成后,AH等于什么?INAL,5FHTESTAL,80HJZL1MOVAH,0JMPSTOPL1:MOVAH,0FFHSTOP:HLT答:讨论从端口5FH输入的数据最
31、高位的情况。若最高位为1,则AH=0;若最高位为0,则AH=0FFH。8.编两个通过过程完成将AX中存放的二进制数转换成压缩型BCD码以及将BCD码转换成二进制数。答:(1)将AX中的二进制数先后除以1000,100和10,每次除法所得的商,即是BCD数的千位、百位和十位数,余数是个位数。子程序名:B2TOBCD输入参数:AX=十六位二进制数输出参数:CF=0,则AX=4位压缩型BCD码。CF=1,则要转换的数大于9999,AX不变。使用寄存器:CX:存放除数,DX:存放中间结果。B2TOBCDPROCFARCMPAX,9999;AX9999,则CF置1JBETRANSTCJMPEXITTRA
32、N:PUSHCXPUSHDXSUBDX,DX;DX清0MOVCX,1000;计算千位数DIVCXXCHGAX,DX;商在DX中,余数在AX中MOVCL,4SHLDX,CL;DX左移4位MOVCL,100;计算百位数DIVCLADDDL,AL;百位数加到DL中,DX左移4位MOVCL,4SHLDX,CLXCHGAL,AH;余数保留在AL中SUBAH,AHMOVCL,10;计算十位数DIVCLADDDL,AL;十位数加到DL中,DX左移4位MOVCL,4SHLDX,CLADDDL,AH;加个位数MOVAX,DX;结果送到AX中POPDXPOPCXEXIT:RETB2TOBCDENDP(2)将AX中
33、4位BCD码顺序乘以1000,100,10和1,然后求和即得。子程序名:BCDTOB2输入参数:AX=4位压缩BCD码输出参数:AX=十六位二进制数使用寄存器:BX:暂存数据,CX:存放乘数,DX:存放中间结果BCDTOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXMOVCL,4ROLAX,CLANDAX,000FHMOVCX,1000;乘以1000MULCXMOVDX,AXMOVAX,BXMOVCL,8ROLAX,CLANDAX,000FHMOVCL,100;乘以100MULCLADDDX,AXMOVAX,BXMOVCL,4SHRAX,CLANDAX,000FHMOV
34、CL,10;乘以10MULCLADDDX,AXANDBX,000FHADDDX,BXMOVAX,DXPOPDXPOPCXPOPBXRETBCDTOB2ENDP9.编写两个通用过程,一个完成ASCII码转换成二进制数功能,另一个完成ASCII字符显示输出功能。答:(1)将AX中两位ASCII码先转化成数字,然后AH*10+AL。子程序名:ASCIITOB2输入参数:AX=2位ASCII码输出参数:AX=转换后二进制数使用寄存器:BX,CX,DXASCIITOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXSUBAH,30HMOVAL,AHMOVCL,10;乘以10MULCL
35、MOVDX,AXMOVAX,BXSUBAL,30HMOVAH,0ADDAX,DXPOPDXPOPCXPOPBXRETASCIITOB2ENDP(2)使用2号DOS功能调用显示字符。子程序名:DISPLAY输入参数:AX=2位ASCII码输出参数:无使用寄存器:BX,DXDISPLAYPROCFARPUSHBXPUSHDXMOVBX,AXMOVDL,AHMOVAH,2INT21HMOVAX,BXMOVDL,ALMOVAH,2INT21HPOPDXPOPBXRETDISPLAYENDP10.编制两个通用过程,完成十六进制数转换成ASCII码并将ASCII码字符显示。答:(1)子程序名:HEXTOA
36、SC输入参数:AX:4位十六进制数输出参数:DX,AX:4位ASCII码,DX高2位,AX低2位使用寄存器:BX,CX,DXHEXTOASCPROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXMOVCL,4;转换AH高4位SHRAX,CLANDAX,0F00HADDAH,30HCMPAH,3AHJBA1ADDAH,7A1:MOVDH,AHMOVAX,BX;转换AH低4位ANDAX,0F00HADDAH,30HCMPAH,3AHJBA2ADDAH,7A2:MOVDL,AHMOVBH,BL;转换AL高4位MOVCL,4SHRBL,CLADDBL,30HCMPBL,3AHJBA3ADD
37、BL,7A3:MOVAH,BLANDBH,0FH;转换AL低4位ADDBH,30HCMPBH,3AHJBA4ADDBH,7A4:MOVAL,BHPOPDXPOPCXPOPBXRETHEXTOASCENDP(2)子程序名:DISPLAYASC输入参数:DX,AX:4位ASCII码输出参数:无使用寄存器:BX,CXDISPLAYASCPROCFARPUSHBXPUSHCXMOVBX,DXMOVCX,AXMOVDL,BHMOVAH,02HINT21HMOVDL,BLINT21HMOVDL,CHINT21HMOVDL,CLINT21HMOVDL,HINT21HPOPCXPOPBXRETDISPLAYA
38、SCENDP13.将键盘上输入的十六进制数转换成十进制数,在屏幕上显示。答:DATASEGMENTSTRINGDBINPUT4HEXNUM:,0AH,0DH,$NUMDB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,STRING;显示提示信息MOVAH,9INT21HMOVBP,4MOVDX,0CONT:MOVCL,4;输入4位十六进制数DXSHLDX,CLD1:MOVAH,1INT21HCMPAL,0JBD1CMPAL,FJAD1CMPAL,AJBA1SUBAL,
39、7A1:SUBAL,30HMOVAH,0ADDDX,AXDECBPJNZCONTMOVSI,0;将DX转换成十进制数,再转换成ASCII码NUMMOVAX,DXMOVDX,0MOVBX,10D2:DIVBXADDDL,30HMOVNUMSI,DLINCSICMPAX,0JZEXITMOVDX,0JMPD2EXIT:MOVDL,0AH;显示十进制数MOVAH,2INT21HMOVDL,0DHINT21HD3:DECSIMOVDL,NUMSIMOVAH,2INT21HJNZD3MOVAH,4CHINT21HCODEENDSENDSTART14.将AX中的无符号二进制数转换成ASCII字符串表示的十
40、进制数。答:将13题输入过程和输出过程去掉即得。DATASEGMENTNUMDB10DUP(?);转换后ASCII码按倒序存放于NUMDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,;无符号二进制数MOVSI,0;将AX转换成十进制数,再转换成ASCII码NUMMOVDX,0MOVBX,10D2:DIVBXADDDL,30HMOVNUMSI,DLINCSICMPAX,0JZEXITMOVDX,0JMPD2EXIT:MOVAH,4CHINT21HCODEENDSENDSTART17.编写2位非压缩型BCD
41、码相乘的程序。答:转化成加法进行累加运算。DATASEGMENTDA1DB09H,09HDA2DB09H,08HRESULTDB4DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DA2+1;计算加法次数MOVBL,10MULBLMOVBL,DA2MOVBH,0ADDAX,BXMOVCX,AXCONT:MOVAH,0;通过循环做累加MOVAL,RESULTADDAL,DA1AAAMOVRESULT,ALMOVAL,RESULT+1ADDAL,AHMOVAH,0AAAADDAL,DA1+1AAA
42、MOVRESULT+1,ALMOVAL,RESULT+2ADDAL,AHMOVAH,0AAAMOVRESULT+2,ALMOVAL,RESULT+3ADDAL,AHMOVAH,0AAAMOVRESULT+3,ALLOOPCONTMOVAH,4CH;返回DOSINT21HCODEENDSENDSTART第五章1.静态RAM与动态RAM有何区别?答:(1)静态RAM内存储的信息只要电源存在就能一直保持,而动态RAM的信息需要定时刷新才能保持(2)静态RAM的集成度比较低,运行速度快,而动态RAM的集成度高,运行相对较慢(3)静态RAM造价成本高,动态RAM价格便宜2.ROM、PROM、EPROM、
43、EEPROM在功能上各有何特点?答:ROM是只读存储器,根据写入方式的不同可以分为四类:掩膜型ROM、PROM、EPROM和EEPROM。掩膜型ROM中信息是厂家根据用户给定的程序或数据,对芯片图形掩膜进行两次光刻而写入的,用户对这类芯片无法进行任何修改。PROM出厂时,里面没有信息,用户采用一些设备可以将内容写入PROM,一旦写入,就不能再改变了,即只允许编程一次。EPROM可编程固化程序,且在程序固化后可通过紫外光照擦除,以便重新固化新数据。EEPROM可编程固化程序,并可利用电压来擦除芯片内容,以重新编程固化新数据。3.DRAM的CAS和RAS输入的用途是什么?答:CAS为列地址选通信号
44、,用于指示地址总线上的有效数据为列地址;RA行地址选通信号,用于指示地址总线上的有效数据为列地址。S为4.什么是Cache?作用是什么?它处在微处理机中的什么位置?答:Cache也称为高速缓存,是介于主存和CPU之间的高速小容量存储器。为了减少CPU与内存之间的速度差异,提高系统性能,在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用,使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高,这就是Cache的作用。Cache在微处理机中的位置如下图:。7.用10241位的RAM芯片组成16K8位的存储器,需要多少芯片?在地址线中有多少位参与片内寻址?多少位组合成片选择信号?(设地址总线为16位)答:由于所用的芯片为10241位,构成10248位(即1K8位)的存储器需要8片,因此组成16K8位的存储器需要168128片。片内有1024个单元,需要10根地址线。16组(每组8片)存储器需要16根片选信号,至少需要4根地址线经译码器输出。