您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理汇编语言与接口技术周杰英张萍习题答案汇总
第1章绪论习题与参考答案(部分)1.把下列二进制数转换成十进制数、十六进制数及BCD码形式。(1)10110010B=(2)01011101.101B=解:(1)10110010B=178D=B2H=(000101111000)BCD(2)01011101.101B=93.625D=5D.AH=(10010011.011000100101)BCD2.把下列十进制数转换成二进制数。(1)100D=(2)1000D=(3)67.21D=解:(1)100D=01100100B(2)1000D=1111101000B(3)67.21D=1000011.0011B3.把下列十六进制数转换成十进制数、二进制数。(1)2B5H=(2)4CD.A5H=解:(1)2B5H=693D=001010110101B(2)4CD.A5H=1229.6445D=010011001101.10100101B4.计算下列各式。(1)A7H+B8H=(2)E4H-A6H=解:(1)A7H+B8H=15FH(2)E4H-A6H=3EH5.写出下列十进制数的原码、反码和补码。(1)+89(2)-37解:(1)[+89]原码、反码和补码为:01011001B(2)[-37]原码=10100101B[-37]反码=11011010B[-37]补码=11011011B6.求下列用二进制补码表示的十进制数(1)(01001101)补=(2)(10110101)补=解:(1)(01001101)补=77D(2)(10110101)补=-75D7.请用8位二进制数写出下列字符带奇校验的ASCII码。(1)C:1000011(2)O:1001111(3)M:1001101(4)P:1010000解:(1)C:01000011(2)O:01001111(3)M:11001101(4)P:110100008.请用8位二进制数写出下列字符带偶校验的ASCII码。(1)+:0101011(2)=:0111101(3)#:0100011(4):0111110解:(1)+:00101011(2)=:10111101(3)#:10100011(4):101111109.叙述CPU中PC的作用。解:PC是CPU中的程序计数器,其作用是提供要执行指令的地址。第2章微处理器的结构习题与参考答案1.8086/8088CPU由哪两大部分组成?请分别叙述它们的功能。解:8086/8088CPU均由两个独立的逻辑单元组成,一个称为总线接口单元BIU(BusInterfaceUnit),另一个称为执行单元EU(ExecutionUnit)。总线接口单元BIU取指令时,从存储器指定地址取出指令送入指令队列排队;执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据。执行单元EU任务是执行指令,进行全部算术逻辑运算、完全偏移地址的计算,向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。2.8086/8088与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?解:总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列。这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令。即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的。这样大大提高了CPU利用率,降低了系统都对存储器速度的要求。3.状态标志和控制标志有何不同?8086/8088的状态标志和控制标志分别有哪些?解:8086/8088CPU设立了一个两字节的标志寄存器,共九个标志。其中标志位O、S、Z、A、P、C是反映前一次涉及ALU操作结果的状态标志,D、I、T是控制CPU操作特征的控制标志。4.8086/8088CPU寻址存储器时,什么是物理地址?逻辑地址?它们之间有何关系?解:8086/8088系统中每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码。在CPU与存贮器之间进行任何信息交换时,需利用物理地址来查找所需要的访问的存储单元。逻辑地址由段地址和偏移地址两部分组成。逻辑地址的表示格式为:段地址:偏移地址。知道了逻辑地址,可以求出它对应的物理地址:物理地址=段地址×10H+偏移地址。5.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?解:根据:物理地址=段地址×10H+偏移地址,指令的物理地址为21F00H。指向这一物理地址的CS值和IP值不唯一。6.8086CPU中BHE信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的?这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分?解:若存取一个字节的数据,总是用一个总线周期来完成该操作;若存取一个字,则依该字是规则字还是不规则字需用一个或两个总线周期来完成。对规则字,只用一个总线周期来完成16位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存储操作,先取其奇地址字节(即数据的低位字节),然后存取偶地址字节。在组成存储系统时,总是偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,即通过总线高字节传送。BHE信号和A0信号控制存储器读写见下表:操作BHEA0使用的数据总线存取规则字00AD15~AD0传送偶地址的一个字节10AD7~AD0传送奇地址的01AD15~AD8一个字节存取非规则字01AD15~AD8(第一个总线周期)10AD7~AD0(第二个总线周期)11为非法码第3章80x86指令系统习题与参考答案1、指出下列指令中操作数的寻址方式(8086系统)。(1)MOVAX,100(2)MOVAX,[100](3)MOVDL,[BP+SI](4)MOV[BX],CX(5)MOVDX,[SI](6)MOV1234H[BX],DS(7)MOV[DI+5678H],AL(8)MOV12[BP][DI],BH(9)POPCX(10)MOVAX,[BX+SI+10]解:目的操作数源操作数(1)MOVAX,100寄存器寻址立即数寻址(2)MOVAX,[100]寄存器寻址直接寻址(3)MOVDL,[BP+SI]寄存器寻址基址变址寻址(4)MOV[BX],CX寄存器间接寻址寄存器寻址(5)MOVDX,[SI]寄存器寻址寄存器间接寻址(6)MOV1234H[BX],DS寄存器相对寻址寄存器寻址(7)MOV[DI+5678H],AL寄存器相对寻址寄存器寻址(8)MOV12[BP][DI],BH相对基址变址寻址寄存器寻址(9)POPCX寄存器寻址隐含为堆栈(10)MOVAX,[BX+SI+10]寄存器寻址相对基址变址寻址2、指出下列指令中操作数的寻址方式(80386系统)。(1)MOV[EBX+12H],AX(2)MOV[EBP+EDI*2],EBX(3)MOV[EBX*4],BX(4)MOVEDX,[EAX+ESI*8-12H]解:目的操作数源操作数(1)寄存器相对寻址寄存器寻址(2)基址比例变址寻址寄存器寻址(3)比例变址寻址寄存器寻址(4)寄存器寻址相对基址比例变址寻址3、指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。(1)PUSH1234H(2)MOVCS,AX(3)INAX,300(4)MOVAX,[DX+12](5)MOVBX,[BX](6)MOVDS,1000H(7)XCHGAL,AL(8)MOVAL,100H(9)MOVDX,AL(10)LEABL,[BX+5](11)LEADX,BX(12)MOV[1000H],12H(13)ADDAX,DS(14)SUB[0100H],BYTEPTR[0001](15)SHLBL,2(16)SHRCL,CL(17)MULAL,BL(18)INT400解:(1)非法,8086系统不允许PUSH指令的操作数为立即数;(2)非法,MOV指令中CS不能作为目的操作数;(3)非法,端口号大于0FFH;(4)非法,DX不能出现在中括号[]内;(5)合法;(6)非法,不能把立即数赋给段寄存器;(7)合法;(8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;(9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;(10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;(11)非法,LEA指令的源操作数只能是存储器操作数;(12)非法,指令存在歧义,无法确定传送的是字节还是字;(13)非法,段寄存器不能参与算术运算;(14)非法,源和目的寄存器不能同为存储器操作数;(15)非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中;(16)合法;(17)非法,在8086系统中MUL指令没有双操作数的用法;(18)非法,中断类型号大于0FFH。4、指出以下指令中,哪些指令是非法的,并说明为什么(80386系统)。(1)MOVAX,12[EBX][SI*16](2)RCREAX,10(3)PUSH5678H(4)POP1000H(5)MOV[EAX+EAX],EAX(6)MOVAL,[ESP+ESP*2](7)MOVBL,[AX+12](8)IMULAL,BL,12解:(1)非法,比例因子只能是1、2、4、8,不能是16;(2)合法;(3)合法;(4)非法,POP指令的目的操作数不能是立即数;(5)合法;(6)非法,ESP只能作为基址寄存器,不能作为变址寄存器;(7)非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;(8)合法。5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容。PUSHAX;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?PUSHBX;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?POPAX;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?,栈顶第二字节[SP+1]=?解:(AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H(AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H(AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写程序段,完成以下各算术运算题。(1)计算YY←A+B*C,其中A、B、C都是无符号数;(2)计算(AA+BB)/(C-D),商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数;(3)计算YY←(A-B)*C,其中A、B、C都是未组合BCD码。解:(1)MOVAL,BMULCADDAL,AADCAH,0MOVYY,AX(2)MOVAX,AAADDAX,BBMOVBL,CSUBBL,DIDIVBLMOVX,ALMOVY,AH(3)MOVAL,ASUBAL,BAASMULCAAMMOVYY,AX7、利用移位指令编写程序段,实现以下运算。(1)计算AX←AX*10,其中AX为无符号数;(2)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算(DX,AX)←(DX,AX)*2。(3)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算(DX,AX)←(DX,AX)/2。解:(1)SHLAX,1MOVBX,AXSHLAX,1SHLAX,1ADDAX,BX(2)SALAX,1RCLDX,1(
本文标题:微机原理汇编语言与接口技术周杰英张萍习题答案汇总
链接地址:https://www.777doc.com/doc-2435682 .html