32位微型计算机原理 史新福 第3版 西工大版 答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

32位微型计算机原理接口技术及其应用习题解答第一章绪论4.什么叫BCD码?试举例说明。(14页)BCD码:二进制编码的十进制数。四位二进制编码表示一位十进制数,表示范围0-9。如:BCDD)0111()7(12.求11010010和01001110两数分别作“与”、“或”和“异或”操作的运算结果。与:11010010或:1101001001001110010011100100001011011110异或:11010010010011101001110015.试画出组成微型计算机系统的框图并简述各部分的作用。(18-19页)硬件:运算器、控制器、存贮器、输入设备、输出设备等;软件:系统软件、应用软件;通讯网络系统:16.微型计算机各部分的连接采用总线结构时有哪几种方式?简述它们的优缺点。(20页)①.以CPU为中心的双总线结构:效率不高,运算器是中间站降低了工作效率;②.以存储器为中心的双总线结构:效率较高;③.单总线结构:结构简单,增减设备方便;④.三总线结构:高效率;17.典型的微处理器是由哪几部分组成的?其主要功能是什么?•22页图1.11•累加器、暂存器、算术逻辑部件、标志寄存器、通用和专用寄存器、程序计数器、堆栈指示器、指令寄存器、指令译码器和控制电路等。•主要功能:23页18.简述在微机中执行一条指令的过程。一条指令在微处理器中执行的过程为:22页总的来说:取指令分析指令执行指令20.简述PC和SP在微机中的作用。•PC程序计数器:用于存放要执行的指令的存储地址,也称指令计数器。执行指令时,CPU自动修改PC的内容。•SP为堆栈指针:24页第二章Intel32位CPU1.80486微处理器的基本组成与系统结构。29页图2.13.试说明80486微处理器中状态寄存器各标志位的作用。37页4.试说明80486中控制寄存器的作用。38页13.试说明80486微处理器中指令流水线的硬件组成与指令流水过程。41-42页硬件组成:8K内部Cache存贮器、32字节指令预取队列、指令译码器、控制器、控制寄存器和执行部件。指令流水过程:1、指令预取2、译码13、译码24、执行、5、回写第三章80x86寻址方式和指令系统1.数据寻址方式有哪几种?数据寻址:立即寻址、寄存器寻址、存储器寻址2.16位指令模式下和32位指令模式下的存储器寻址方式各有哪几种寻址方式?比较他们的相似与不同之处?①16位指令模式存储器寻址:直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址②32位指令模式下:直接寻址,间接寻址,相对基址寻址,相对比例寻址,相对比例基址变址寻址3.程序地址寻址方式有哪几种?相对寻址、直接寻址、间接寻址70页4.什么是堆栈地址寻址方式?“后进先出”原则,使用PUSHPOP指令72页5.指令编码格式是由哪几部分组成的?各部分的含义是什么?前缀+操作码+寻址方式+偏移量+立即数各部分含义73页6.80x86指令格式由哪几部分组成的?[标号:]助记符操作数;注释7.80x86指令系统按其功能可分为几部分?数据传送指令、算术运算指令、逻辑运算指令、串操作指令、控制转移指令、处理器控制指令、输入/输出指令、中断指令、DOS功能调用指令10.堆栈操作指令有哪几种?PUSHSRCPOPDEST;PUSHAPOPAPUSHADPOPAD77页22.DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000,假设按16位实模式操作,确定下列每条指令访问内存的物理地址,并且指出源操作数及目的操作数的寻址方式。⑴.MOVAL,[1234H]PA=2000*10H+1234H=21234H源操作数:存储器直接寻址目的操作数:寄存器寻址⑵.MOVEDX,[BX]PA=10*2000H+2000H=22000H源操作数:寄存器间接寻址目的操作数:寄存器寻址⑶.MOVCL,[BX+100H]PA=10*2000H+2000H+100H=22100H源操作数:寄存器相对寻址目的操作数:寄存器寻址⑷.MOV[SI],EBXPA=2000*10H+4000H=24000H源操作数:寄存器寻址目的操作数:寄存器间接寻址⑸.MOVAH,BUF[BX+SI]PA=10*2000H+1000H+2000H+4000H=27000H源操作数:相对基址变址寻址目的操作数:寄存器寻址⑹.MOVEAX,[BP+1234H]PA=10*3000H+0200H+1234H=31434H源操作数:寄存器相对寻址目的操作数:寄存器寻址⑺.MOV[EAX+EBX],DHPA=10*2000H+1000H+2000H=23000H源操作数:寄存器寻址目的操作数:寄存器间接寻址23.试指出下列指令中的错误⑴MOV[BX],[SI]76页源操作数和目的操作数同为存储器操作数⑵MOVAH,DX源操作数和目的操作数数据类型不一致⑶INC[BX]存储器操作数应指明类型⑷MOVDS,SS76页源操作数和目的操作数不允许同为段寄存器⑸XCHGAX,2000H只能在寄存器之间,寄存器和存储器之间用交换指令。源操作数是立即数,⑹MOVAX,[BX+DX]基址+DX不是可以寻址的寄存器,可以寻址的寄存器有:BX,BP,SI,DI)(SIDI⑺XCHG[SP],ES不能随便修改堆栈指针⑻ADD[AX],BX[AX]应该指明操作数类型⑼MOVAX,DI+SIDI+SI用于存放变址,专用寄存器,用来对寄存器寻址⑽INAL,BX源操作数应该是8位端口地址或DX寄存器24.指出下列算术逻辑指令执行后,标志CF,ZF,SF,PF,OF和AF的状态。⑴MOVAL,80H;不影响标志位⑵DECAl;Al=7FH(01111111)CF=0,ZF=0,SF=0,PF=0,OF=1(有符号数),AF=1⑶ADDAL,10H;Al=8FH(10001111)CF=0,ZF=0,SF=1,PF=0,OF=1,AF=0⑷SUBAL,10H;Al=7FH(01111111)CF=0,ZF=0,SF=0,PF=0,OF=1,AF=0⑸MOVAL,3AH;不影响标志位⑹ANDAL,0F0H;AL=30HCF=0,ZF=0,SF=0,PF=1,OF=0,AF=0(无影响)⑺ORAL,0F0H;AL=F0HCF=0,OF=0,ZF=0,SF=1,PF=1,AF=0⑻XORAL,0F0H;AL=00HCF=0,OF=0,ZF=1,SF=0,PF=1,AF=025.AX寄存器清MOVAX,0000HXORAX,AXANDAX,0000HSUBAX,AXSALAX,16SHLAX,16SHRAX,1627.试分别用数据传送指令,交换指令和堆栈操作指令,实现将首地址为BLOCK的内存单元中两个数据字交换。BLOCK变量定义:BLOCKDW10H,20HMODELSMALLDATABLOCKDW10H,20HCODESTARTUPMOVAX,BLOCKMOVBX,BLOCK+2MOVBLOCK+2,AXMOVBLOCK,BXEXITENDMOVAX,BLOCKXCHGAX,BLOCK+2MOVBLOCK,AX#######################PUSHBLOCKPUSHBLOCK+2POPBLOCKPOPBLOCK+2########################28.设一个字节数据x存放在AL寄存器中,试说明下列程序的功能XORAH,AH;AH清0SALAX,1;AX=2x算术左移MOVBX,AX;BX=2xMOVCL,2;CL=2SALAX,CL;AX=AX*2*2=AX*4=8xADDAX,BX;AX==10x功能:x扩大10倍存放在AX29.编程实现:⑴AL寄存器低4位清0;⑵BL寄存器低4位置1;⑶CL寄存器低4位取反;⑷测试DL寄存器的最低2位是否为0,若是将0送入AL寄存器;否则将1送入AL寄存器。⑴ANDAL,OFOH⑵ORBL,OFH⑶XORCL,OFH⑷TESTDLO3HTESTDLO3HJNZNEXTJZP1MOVAL,0MOVAL,1JMPOVERJMPP2NEXT:MOVAL,1P1:MOVAL,0OVER:HLTP1:HLT30.试编程统计在AX寄存器中有多少个1,并将结果送DL寄存器中.DODELTINYCODESTARTUPMOVDL,0MOVCL,16AGAIN:ROL(ROR)AX,1JNCNEXTINCDLNEXT:DECCLJNZAGAINEXITEND31.试编程统计在内存BLOCK单元开始按字节存放的100个带符号数中有多少负数,并将结果存放在DL寄存器中。MODELSMALLDATABLOCKDB0,1,5,…(100个带符号数)CODESTARTUPMOVCX,100MOVDL,0LEABX,BLOCKAGAIN:MOVAL,[BX]TESTAL,80HJZNEXTINCDLNEXT:INCBXLOOPAGAINEXITEDD.第四章1.试计算下列伪指令中各变量所分配的字节数A1DW20;2个字节A2DW8DUP(?),10,20;20个字节A3DD10DUP(?);40个字节A4DB3DUP(?,4DUP(0));15个字节A5DB’HappyNewYear!!’;16个字节3.试编写查表程序,将BUF中任意存放的16个00H~0FH之间的数转换为对应的表示十六进制数的ASCII码,并显示。MODELSMALLDATABUFDB00H,01H,02H,03H,04H,….0FHTABLEDB30H,31H,32H……39H……46HCODESTARTUPMOVCX,16MOVBXOFFSETTABLEMOVSIOFFSETBUFNext:MOVAL,[SI]XLATMOV[SI],ALMOVDL,ALMOVAH,2INT21INCSILOOPNextEXITEND104页4.在首地址为BUF的内存单元存放了10个字节的无符号数,试编程求其和,存入SUB单元MODELSMALLDATABUFDB10H,32H,……(10个数)SUBDWCODESTARTUPMOVCX,10HCLCMOVBXOFFSETBUFMOVAX,OLOOP1:ADCAX,[BX]INCBXLOOPLOOP1MOVSUB,AXEXITEND6.试使用IF,ELSE和ENDIF语句编程,将存入AL寄存器的00H~0FH之间的二进制数转换为ASCII码。MODELSMALLCODESTARTUPIFAL=’0’&&AL=’9’ADDAL,30HELSEADDAL,37HENDIFEXITEND7.试使用WHILE和ENDW语句编程,从键盘接收字符存入内存BUF缓冲区,直到出现回车符时停止接收MODELSMALLDATABUFDB40DUP(?)CODESTARTUPMOVAH,1INT21HLEABX,BUFWHILEAL!=0DHMOV[BX],ALINCBXINT21HEND8.试使用REPEAT和UNTILCXZ语句编程,在首地址为BUF的缓冲区填入100个00H。MODELSMALLDATABUFDB100DUP(?)CODESTARTUPMOVBXOFFSETBUFMOVCX,100REPEATMOV[BX],00HINCBXUNTILCXZEXITENDMOVDL,0LEABX,BLOCKMOVCX,100again:CMPBYTEPTR[BX],0;[BX]和0比较JGENEXT;若A≥B,转NEXT,否则DL加1INCDLNEXT:INCBXLOOPagainEXITEND

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功