1、1632位微机原理汇编语言及接口技术教程课后习题答案16/32位微机原理、汇编语言及接口技术教程部分习题参考解答第1章 微型计算机系统概述习题1.2什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?解答通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。嵌入式系
2、统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。习题1.5说明微型计算机系统的硬件组成及各部分作用。解答CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。存储器:存储器是存放程序和数据的部件。外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。总线:互连各个部件的共用通道,主要含
3、数据总线、地址总线和控制总线信号。习题1.6什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么?解答总线:传递信息的共用通道,物理上是一组公用导线。3组信号线:数据总线、地址总线和控制总线。(1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。(2)数据总线:传输读写操作的数据信息。(3)控制总线:协调系统中各部件的操作。习题1.7简答如下概念:(1)计算机字长(2)取指译码执行周期(3)ROM-BIOS(4)中断(5)ISA总线解答(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(
4、简称译码),然后执行指令所规定的操作(简称执行)的过程。(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将下列十进制数真
5、值转换为压缩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数码09、大写字母AZ、小写字母az对应的ASCII码分别是多少?ASC
6、II码0DH和0AH分别对应什么字符?解答数码09对应的ASCII码依次是30H39H。大写字母AZ对应的ASCII码依次是:41H5AH。小写字母az对应的ASCII码依次是:617AH。ASCII码0DH和0AH分别对应的是回车和换行字符。第2章 微处理器指令系统习题2.1微处理器内部具有哪3个基本部分?8088分为哪两大功能部件?其各自的主要功能是什么?这种结构与8位CPU相比为什么能提高其性能?解答算术逻辑单元ALU、寄存器组和控制器;总线接口单元BIU:管理8088与系统总线的接口负责cpu对接口和外设进行访问执行单元EU:负责指令译码、执行和数据运算;8位cpu在指令译码前必须等待
7、取指令操作的完成,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;作为有符号数运算
8、,结果超出范围,OF=1.习题2.5什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达: FFFFH:0 40H:17H 2000H:4500H B821H:4567H解答物理地址:物理存储单元具有的一个唯一的20位编号逻辑地址:在8088内部和用户编程时,所采用的“段地址:偏移地址”形式将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址1MB最多能分成1MB16B22024216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段 FFFFH:0FFFF0H 40H
9、:17H00417H 2000H:4500H24500H B821H:4567HBC777H习题2.8已知DS2000H、BX0100H、SI0002H,存储单元20100H20103H依次存放12H、34H、56H、78H,21200H21203H依次存放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,bxsi+1100h解答 mov ax,1200h ;AX1200H,立即数寻
10、址 mov ax,bx ;AX0100H,寄存器寻址 mov ax,1200h ;AX4C2AH,直接寻址 mov ax,bx ;AX3412H,寄存器间接寻址 mov ax,bx+1100h ;AX4C2AH,寄存器相对寻址 mov ax,bx+si ;AX7856H,基址变址寻址 mov ax,bxsi+1100h ;AX65B7H,相对基址变址寻址习题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为字寄存器,d
11、l为字节寄存器,类型不匹配。(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。(3)不允许立即数到段寄存器的传送。(4)不允许段寄存器之间的直接传送。(5)数据溢出。(6)sp不能用于寄存器间接寻址。(7)格式不对。应为:mov ax,bx+di(8)mov指令的操作数不能是立即数。习题2.10已知数字09对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。lea bx,tablemov al,8xlat解答
12、lea bx,table ;获取table的首地址,BX200H mov al,8 ;传送欲转换的数字,AL8 xlat ;转换为格雷码,AL12H习题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 ;AL89H CF ZF SF OF PF add al,al ;AL12H 1 0 0 1 1 add al,9dh ;AL0AFH 0 0 1 0 1 cmp al,0bch ;AL0AFH 1 0 1
13、 0 1 sub al,al ;AL00H 0 1 0 0 1 dec al ;AL0FFH 0 0 1 0 1 inc al ;AL00H 0 1 0 0 1习题2.12请分别用一条汇编语言指令完成如下功能: 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。 用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。 用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。 把数0A0H与AL寄存
14、器的内容相加,并把结果送回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给出下列各
15、条指令执行后的结果,以及状态标志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 ;AX1470H CF ZF SF OF PF and ax,ax ;AX1470H 0 0 0 0 0 or ax,ax ;AX1470H 0 0 0 0 0 xor ax,ax ;AX0000H 0 1 0 0 1 not ax ;AXFFFFH 0 1 0 0 1 test ax,0f0f0h ;AXFFFFH 0 0 1 0 1习题2.15控制转移类指令中有哪三
16、种寻址方式?解答相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接)习题2.16假设DS2000H、BX1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么? JMP BX JMP TABLEBX解答(1)1256H(2)3280H习题2.17判断下列程序段跳转的条件 xor ax,1e1eh je equal test al,10000001b jnz there cmp cx,64h jb there解答 AX1e1eh(异或后为0) AL的D0或D7至少有一位为1 CX(无符号数) 64
17、h习题2.18如下是一段软件延时程序,请问NOP指令执行了多少次? xor cx,cxdelay: nop loop delay解答216次习题2.20按照下列要求,编写相应的程序段: 由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。 有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AXbuffer1buffer2功能。 编写一个程序段,在DX高4位全为0时,使AX0;否则使AX1。 把DX.AX中的双字右移4位 有一个100个字节元素的数组,其首地址为arr
18、ay,将每个元素减1(不考虑溢出或借位)存于原处。解答(1) mov dl,string1 mov dh,string6(2) mov ax, word ptr buffer1 sub ax, word ptr buffer2 ; 先减低16位 mov dx, word ptr buffer1+2 sbb dx, word ptr buffer2+2 ; 后减高16位,需减低16位的借位(3) test dx,0f000h jz next mov ax,-1 jmp donenext: mov ax,0done: (4) mov cx,4again: shr dx,1 ; 右移一位,移出的低位
19、进入CF标志 rcr ax,1 ; 将CF移进AX高位,同时实现AX右移 loop again ; 循环4次,实现4位右移(5) mov cx,100 mov bx,0again: sub arraybx,1 inc bx loop again 第3章 汇编语言程序设计习题3.9给出下列语句中,指令立即数(数值表达式)的值: mov al,23h AND 45h OR 67h mov ax,1234h/16+10h mov ax,23h SHL 4 mov al,a AND (NOT(a-A) mov ax,(76543 LT 32768) XOR 7654h解答(1) al=67h(2) a
20、x=133h,dx=4h(3) ax=0230h(4) al=41h(5) ax=7654h习题3.10画图说明下列语句分配的存储空间及初始化的数据值: byte_var db ABC,10,10h,EF,3 dup(-1,?,3 dup(4) word_var dw 10h,-5,3 dup(?)解答(1)从低地址到高地址,各个字节依次是:41h 42h 43h 0ah 10h 45h 46h ffh - 04h 04h 04h ffh - 04h 04h 04h ffh - 04h 04h 04h(2)从低地址到高地址,各个字节依次是:10h 0 FBh FFh - - - - - -其中
21、“-”表示无初值,实际上汇编程序会填入0。习题3.11请设置一个数据段,按照如下要求定义变量: my1b为字符串变量,表示字符串“Personal Computer” my2b为用十进制数表示的字节变量,这个数的大小为20 my3b为用十六进制数表示的字节变量,这个数的大小为20 my4b为用二进制数表示的字节变量,这个数的大小为20 my5w为20个未赋值的字变量 my6c为100的符号常量 my7c为字符串常量,代替字符串“Personal Computer”解答my1b db Personal Computermy2b db 20my3b db 14hmy4b db 00010100bm
22、y5w dw 20 dup(?)my6c = 100my7c equ 习题3.15假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的具体错误原因。 mov byte ptr bx,1000 mov bx,offset mywordsi cmp mybyte1,mybyte2 mov mybyte1,al+1 sub al,myword jnz myword解答(1) 1000 超过一个字节所能表达的最大整数(2)SI 应为偶数(3)两个内存单元不能直接运算(4)不能使用al+1,应改为al+1(5)源操作数与目的操作数类型不匹配(6)条件转移指令后面应
23、接标号,而不是变量习题3.16编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来。解答mov ah,1 ;只允许输入小写字母int 21hsub al,20h ;转换为大写字母mov dl,almov ah,2int 21h ;显示第4章 微机总线习题4.1微机总线的信号线包括_、_、_、以及电源和地线。微机系统可以将总线划分为三层(类),它们是_、_和_。解答数据总线 、 地址总线 、 控制总线芯片总线、 内总线、外总线第5章 主存储器习题5.3类似处理器总线,存储器芯片也分成数据、地址和控制3类引脚。以存储结构为32K8的SRAM 62256为例,该芯片应有_个数据引脚、_个地址引
24、脚,3个典型的控制引脚分别是_、_和_。解答815片选输出允许写入允许习题5.7EEPROM的擦写与闪存的擦写有什么不同?以AT28C040或AT29C512为例,说明常用的两种判断擦写是否完成的方法,并估算两者完成整个芯片编程的最快时间。解答AT28C040最快编程时间:(5121024/256)10ms20480ms20sAT29C512最快编程时间:512扇区(10ms128字节(15010-39010-6)ms)14950.4ms15s习题5.8SRAM芯片的片选引脚有什么用途?假设在8088微处理器系统中,地址信号A19A15输出01011时译码电路产生一个有效的片选信号,则该片选信
25、号将占有多少主存容量?其地址范围是什么?解答主存容量:21532KB,因低位地址信号的个数是15个。地址范围:01011 000000000000000 01011 11111111111111,即58000H5FFFFH。习题5.11什么是存储器芯片连接中的“位扩展”和“字扩展”?采用DRAM 21256(256K1)构成512KB的RAM存储模块,需要多少个芯片,怎样进行位扩展和字扩展?解答位扩充:存储器芯片数据引脚个数小于主机数据信号个数时,利用多个存储器芯片在数据“位”方向的扩充。字扩充:当一个存储器芯片不能满足系统存储容量时,利用多个存储器芯片在“数据字”方向的扩充。组成512KB存
26、储模块,用DRAM 21256(256K1)需要16个芯片;位扩充8个,字扩充2组。习题5.13给出图5-28中4个存储器芯片各自占用的地址范围。如果采用部分译码,要指出重复的地址范围。解答4个存储芯片各自的可用地址范围:芯片号A19A18A17A16A15A0地址范围12340001111101全0全1全0全1全0全1全0全100000H3FFFFH40000H7FFFFHC0000HCFFFFH,重复地址:E0000HEFFFFHD0000HDFFFFH,重复地址:F0000HFFFFFH第6章 输入输出接口习题6.1典型的I/O接口电路通常有哪3类可编程寄存器?各自的作用是什么?解答(1
27、)数据寄存器:保存外设给CPU和CPU发往外设的数据(2)状态寄存器:保存外设或接口电路的状态(3)控制寄存器:保存CPU给外设或接口电路的命令习题6.2I/O端口与存储器地址常有_和_两种编排方式,8088/8086处理器支持后者,设计有专门的I/O指令。其中指令IN是将数据从_传输到_,执行该指令时8088/8086处理器引脚产生_总线周期。指令“OUT DX, AL”的目的操作数是_寻址方式,源操作数是_寻址方式。解答(I/O端口与存储器地址)统一编址(I/O端口与存储器地址)独立编址外设处理器I/O读(I/O端口的DX)寄存器间接寄存器习题6.5有一个查询输入接口电路类似图6-9,但其
28、数据端口为8F40H、状态端口为8F42H。从状态端口最低位可以获知输入设备是否准备好一个字节的数据:D01表示准备好,D00说明没准备好。不考虑查询超时,编程从输入设备读取100个字节保存到INBUF缓冲区。解答 mov bx,offset inbuf mov cx,100again: mov dx,8f42hstatus: in al,dx ;查询一次 test al,01h jz status mov dx,08f40h in al,dx ;输入一个字节 mov bx,al inc bx loop again ;循环,输入100个字节习题6.10查询、中断和DMA传送是微机中常用的外设数据交换方式,请说明各自的特点。解答第7章 中断控制接口习题7.28088中断向量表的作用是什么?解答习题7.48259A中IRR、IMR和ISR三个寄存器的作用是什么?解答中断请求寄存器IRR:保存8条外界中断请求信号IR0IR7的请求状态,Di位为1表示
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1