您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 16、32位微机原理、汇编语言及接口技术教程课后习题答案
1《16/32位微机原理、汇编语言及接口技术教程》部分习题参考解答第1章微型计算机系统概述〔习题1.2〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。〔习题1.5〕说明微型计算机系统的硬件组成及各部分作用。〔解答〕CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。存储器:存储器是存放程序和数据的部件。外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。2总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。〔习题1.6〕什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。3组信号线:数据总线、地址总线和控制总线。(1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。(2)数据总线:传输读写操作的数据信息。(3)控制总线:协调系统中各部件的操作。〔习题1.7〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)ROM-BIOS(4)中断(5)ISA总线〔解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。(3)ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。(4)中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。(5)ISA总线是指IBMPC/AT机上使用的系统总线。〔习题1.8〕下列十六进制数表示无符号整数,请转换为十进制形式的真值:(1)FFH(2)0H(3)5EH(4)EFH〔解答〕(1)255(2)0(3)94(4)2393〔习题1.9〕将下列十进制数真值转换为压缩BCD码:(1)12(2)24(3)68(4)99〔解答〕(1)12H(2)24H(3)68H(4)99H〔习题1.10〕将下列压缩BCD码转换为十进制数:(1)10010001(2)10001001(3)00110110(4)10010000〔解答〕(1)91(2)89(3)36(4)90〔习题1.11〕将下列十进制数用8位二进制补码表示:(1)0(2)127(3)-127(4)-57〔解答〕(1)00000000(2)01111111(3)10000001(4)11000111〔习题1.12〕数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码0DH和0AH分别对应什么字符?〔解答〕数码0~9对应的ASCII码依次是30H~39H。大写字母A~Z对应的ASCII码依次是:41H~5AH。小写字母a~z对应的ASCII码依次是:61~7AH。ASCII码0DH和0AH分别对应的是回车和换行字符。4第2章微处理器指令系统〔习题2.1〕微处理器内部具有哪3个基本部分?8088分为哪两大功能部件?其各自的主要功能是什么?这种结构与8位CPU相比为什么能提高其性能?〔解答〕算术逻辑单元ALU、寄存器组和控制器;总线接口单元BIU:管理8088与系统总线的接口负责cpu对接口和外设进行访问执行单元EU:负责指令译码、执行和数据运算;8位cpu在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。而取指令是cpu最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位cpu节省了时间,提高了性能。〔习题2.2〕说明8088的8个8位和8个16位通用寄存器各是什么?〔解答〕8个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL;8个16位寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。〔习题2.4〕举例说明CF和OF标志的差异。〔解答〕例:有运算:3AH+7CH=B6H作为无符号数运算,没有进位,CF=0;作为有符号数运算,结果超出范围,OF=1.〔习题2.5〕什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达:⑴FFFFH:0⑵40H:17H⑶2000H:4500H⑷B821H:4567H〔解答〕物理地址:物理存储单元具有的一个唯一的20位编号逻辑地址:在8088内部和用户编程时,所采用的“段地址:偏移地址”形式将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址51MB最多能分成1MB÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段⑴FFFFH:0=FFFF0H⑵40H:17H=00417H⑶2000H:4500H=24500H⑷B821H:4567H=BC777H〔习题2.8〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的内容,以及源操作数的寻址方式?⑴movax,1200h⑵movax,bx⑶movax,[1200h]⑷movax,[bx]⑸movax,[bx+1100h]⑹movax,[bx+si]⑺movax,[bx][si+1100h]〔解答〕⑴movax,1200h;AX=1200H,立即数寻址⑵movax,bx;AX=0100H,寄存器寻址⑶movax,[1200h];AX=4C2AH,直接寻址⑷movax,[bx];AX=3412H,寄存器间接寻址⑸movax,[bx+1100h];AX=4C2AH,寄存器相对寻址⑹movax,[bx+si];AX=7856H,基址变址寻址⑺movax,[bx][si+1100h];AX=65B7H,相对基址变址寻址〔习题2.9〕说明下面各条指令的具体错误原因⑴movcx,dl⑵movip,ax⑶moves,1234h⑷moves,ds⑸moval,300⑹mov[sp],ax⑺movax,bx+di⑻mov20h,ah〔解答〕(1)cx为字寄存器,dl为字节寄存器,类型不匹配。(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。(3)不允许立即数到段寄存器的传送。(4)不允许段寄存器之间的直接传送。6(5)数据溢出。(6)sp不能用于寄存器间接寻址。(7)格式不对。应为:movax,[bx+di](8)mov指令的操作数不能是立即数。〔习题2.10〕已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。leabx,tablemoval,8xlat〔解答〕leabx,table;获取table的首地址,BX=200Hmoval,8;传送欲转换的数字,AL=8xlat;转换为格雷码,AL=12H〔习题2.11〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:moval,89haddal,aladdal,9dhcmpal,0bchsubal,aldecalincal〔解答〕moval,89h;AL=89HCFZFSFOFPFaddal,al;AL=12H10011addal,9dh;AL=0AFH00101cmpal,0bch;AL=0AFH10101subal,al;AL=00H01001decal;AL=0FFH00101incal;AL=00H01001〔习题2.12〕请分别用一条汇编语言指令完成如下功能:7⑴把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。⑵用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。⑶用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。⑸把数0A0H与AL寄存器的内容相加,并把结果送回AL中〔解答〕⑴adddx,bx⑵addal,[bx+si]⑶add[bx+0b2h],cx⑷addwordptr[0520h],3412h⑸addal,0a0h〔习题2.13〕设有4个16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。movax,XimulYmovcx,axmoxbx,dxmovax,Zcwdaddcx,axadcbx,dxsubcx,540sbbbx,0movax,Vcwdsubax,cxsbbdx,bxidivX〔解答〕(V-(X*Y+Z-540)/X〔习题2.14〕给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。8movax,1470handax,axorax,axxorax,axnotaxtestax,0f0f0h〔解答〕movax,1470h;AX=1470HCFZFSFOFPFandax,ax;AX=1470H00000orax,ax;AX=1470H00000xorax,ax;AX=0000H01001notax;AX=FFFFH01001testax,0f0f0h;AX=FFFFH00101〔习题2.15〕控制转移类指令中有哪三种寻址方式?〔解答〕相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接)〔习题2.16〕假设DS=2000H、BX=1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?⑴JMPBX⑵JMPTABLE[BX]〔解答〕(1)1256H(2)3280H〔习题2.17〕判断下列程序段跳转的条件⑴xorax,1e1ehjeequal⑵testal,10000001bjnzthere⑶cmpcx,64hjbthere9〔解答〕⑴AX=1e1eh(异或后为0)⑵AL的D0或D7至少有一位为1⑶CX(无符号数)<64h〔习题2.18〕如下是一段软件延时程序,请问NOP指令执行了多少次?xorcx,cxdelay:noploopdelay〔解答〕216次〔习题2.20〕按照下列要求,编写相应的程序段:⑴由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。⑵有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。⑶编写一个程序段,在DX高4位全为0时,使AX=0;
本文标题:16、32位微机原理、汇编语言及接口技术教程课后习题答案
链接地址:https://www.777doc.com/doc-5202578 .html