
位微机原理汇编语言及接口技术教程课后习题答案(共26页).doc
26页精选优质文档-----倾情为你奉上《16/32位微机原理、汇编语言及接口技术教程》部分习题参考解答第1章 微型计算机系统概述〔习题1.2〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中〔习题1.5〕说明微型计算机系统的硬件组成及各部分作用〔解答〕CPU:CPU也称处理器,是微机的核心它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备I/O设备通过I/O接口与主机连接总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号〔习题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总线是指IBM PC/AT机上使用的系统总线〔习题1.8〕下列十六进制数表示无符号整数,请转换为十进制形式的真值:(1)FFH (2)0H (3)5EH (4)EFH〔解答〕(1) 255(2) 0(3) 94(4) 239〔习题1.9〕将下列十进制数真值转换为压缩BCD码:(1)12 (2)24 (3)68 (4)99〔解答〕(1) 12H(2) 24H(3) 68H(4) 99H〔习题1.10〕将下列压缩BCD码转换为十进制数:(1) (2) (3) (4)〔解答〕(1) 91(2) 89(3) 36(4) 90〔习题1.11〕将下列十进制数用8位二进制补码表示:(1)0 (2)127 (3)-127 (4)-57〔解答〕(1) (2) (3) (4) 〔习题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分别对应的是回车和换行字符第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位物理地址1MB最多能分成1MB16B=22024=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寄存器的内容,以及源操作数的寻址方式?⑴ mov ax,1200h⑵ mov ax,bx⑶ mov ax,[1200h]⑷ mov ax,[bx]⑸ mov ax,[bx+1100h]⑹ mov ax,[bx+si]⑺ mov ax,[bx][si+1100h]〔解答〕⑴ mov ax,1200h ;AX=1200H,立即数寻址⑵ mov ax,bx ;AX=0100H,寄存器寻址⑶ mov ax,[1200h] ;AX=4C2AH,直接寻址⑷ mov ax,[bx] ;AX=3412H,寄存器间接寻址⑸ mov ax,[bx+1100h] ;AX=4C2AH,寄存器相对寻址⑹ mov ax,[bx+si] ;AX=7856H,基址变址寻址⑺ mov ax,[bx][si+1100h] ;AX=65B7H,相对基址变址寻址〔习题2.9〕说明下面各条指令的具体错误原因⑴ mov cx,dl ⑵ mov ip,ax⑶ mov es,1234h ⑷ mov es,ds⑸ mov al,300 ⑹ mov [sp],ax⑺ mov ax,bx+di ⑻ mov 20h,ah〔解答〕(1)cx为字寄存器,dl为字节寄存器,类型不匹配。
2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针3)不允许立即数到段寄存器的传送4)不允许段寄存器之间的直接传送5)数据溢出6)sp不能用于寄存器间接寻址7)格式不对应为:mov ax,[bx+di](8)mov指令的操作数不能是立即数〔习题2.10〕已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果lea bx,tablemov al,8xlat〔解答〕 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H〔习题2.11〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态: mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al〔解答〕 mov al,89h ;AL=89H CF ZF SF OF PF add al,al ;AL=12H 1 0 0 1 1 add al,9dh ;AL=0AFH 0 0 1 0 1 cmp al,0bch ;AL=0AFH 1 0 1 0 1 sub al,al ;AL=00H 0 1 0 0 1 dec al ;AL=0FFH 0 0 1 0 1 inc al ;AL=00H 0 1 0 0 1〔习题2.12〕请分别用一条汇编语言指令完成如下功能:⑴ 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
⑵ 用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中⑶ 用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中⑷ 用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中⑸ 把数0A0H与AL寄存器的内容相加,并把结果送回AL中〔解答〕⑴ add dx,bx⑵ add al,[bx+si]⑶ add [bx+0b2h],cx⑷ add word ptr [0520h],3412h⑸ add al,0a0h〔习题2.13〕设有4个16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处mov ax,Ximul Ymov cx,axmox bx,dxmov ax,Zcwdadd cx,axadc bx,dxsub cx,540sbb bx,0mov ax,Vcwdsub ax,cxsbb dx,bxidiv X〔解答〕(V-(X*Y+Z-540)/X〔习题2.14〕给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
mov ax,1470h and ax,ax or ax,ax xor ax,ax not ax test ax,0f0f0h〔解答〕 mov ax,1470h ;AX=1470H CF ZF 。
