微机原理答案第一章习题答案

合集下载

微机原理课后答案详解(朱红刘景萍)-南理工的哦

微机原理课后答案详解(朱红刘景萍)-南理工的哦

微机原理课后答案详解(朱红刘景萍)-南理工的哦第一章习题答案一、选择题1.十进制数66转换成二进制数为_______。

A.11000010B.01100110C.11100110D.01000010答案:D2.十进制数27.25转换成十六进制数为_______。

A.B1.4HB.1B.19HC.1B.4HD.33.4H答案:C3.下列数中最小的是________。

A.(101001)2B.(52)8C.(2B)16D.(50)10答案:A4.若一个数的BCD编码为00101001,则该数与______相等。

A.41HB.121DC.29DD.29H答案:C5.十进制数9874转换成BCD数为________。

A.9874HB.4326HC.2692HD.6341H答案:A6.BCD数64H代表的真值为_______。

A.100B.64C.-100D.+100答案:B7.十六进制数88H,可表示成下面几种形式,错误的表示为_______。

A.无符号十进制数136B.带符号十进制数-120C.压缩型BCD码十进制数88D.8位二进制数-8的补码表示答案:D8.若[A]原=10111101,[B]反=10111101,[C]补=10111101,以下结论正确的是______。

A.C最大B.A最大C.B最大D.A=B=C答案:B9.8位二进制补码表示的带符号数10000000B和11111111B的十进制数分别是____。

A.128和255B.128和-1C.-128和255D.-128和-1答案:D10.微机中地址总线的作用是___________。

A.用于选择存储器单元 B.用于选择进行信息传输的设备C.用于指定存储器单元和I/O设备接口单元的选择地址D.以上选择都不对答案:C11.计算机中表示地址使用____。

A.无符号数B.原码C.反码D.补码答案:A二、填空题1.计算机的主机由_______、控制器、主存储器组成。

微机原理习题解答

微机原理习题解答
(3)MOV CL,10[BX] (4)SUB ES:[BX+SI+10H],BL
(5)OR AL,[SI-80H] (6)PUSH AX
(7)MOV AX,[2020H] (8)JMP DWORD PTR ES:[SI]
3-3 指出下列指令的错误。
(1)MOV AL,BX (2)MOV CS,AX
1-4将下列十六进制数转换为二进制数、十进制数。
(1)8E6H (2)0A42H (3)7E.C5H (4)0F19.1DH
1-5将下列二进制数转换为BCD码。
(1)1011011.101 (2)1010110.001
1-6将下列BCD码转换为二进制数。
(1)(0010 0111 0011)BCD(2)(1001 0111.0010 0101)BCD
试画出存储器分段地址分配示意图,指出CS、DS、SS各段寄存器内容是什么?
2-23 解释什么是规则字、非规则字,8086 CPU对它们的存取各需要几个总线周期?
第三章 指令系统
3-1 指出下列指令的寻址方式。
(1)MOV BX,2000H (2)MOV BX,[2000H]
(3)MOV [BP],CX (4)MOV AL,[BX+SI+100H]
2-11 试画出在最小模式下,8086 CPU读、写总线周期时序图。
2-12 8086与8088相比有哪些不同?8086引脚BHE的作用是什么?其存储器组织为什么要由偶存
储体和奇存储体组成?
2-13 在最小模式下,8086的哪些引脚是分时复用的?哪些信号需要由系统进行锁存?
2-14 8086/8088内指令队列的作用是什么?其各自长度为多少?8086 CPU复位后,有哪些特
1-15已知补码如下,分别求出真值、原码、反码。

(完整版)微机原理答案1

(完整版)微机原理答案1

(完整版)微机原理答案1第 1 章微型计算机系统概述习题参考答案1-1.微型计算机包括哪几个主要组成部分,各部分的基本功能是什么?答:微型计算机由CPU、存储器、输入/输出接口及系统总线组成。

CPU是微型计算机的核心部件,一般具有下列功能:进行算术和逻辑运算。

暂存少量数据。

对指令译码并执行指令所规定的操作。

与存储器和外设进行数据交换的能力。

提供整个系统所需要的定时和控制信号。

响应其他部件发出的中断请求;总线是计算机系统各功能模块间传递信息的公共通道,一般由总线控制器、总线发送器、总线接收器以及一组导线组成;存储器是用来存储数据、程序的部件;I/O接口是微型计算机的重要组成部件,在CPU和外设之间起适配作用。

1-2.CPU 执行指令的工作过程。

答:指令执行的基本过程:(1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令存放在存储器的哪个单元。

(2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令。

存储器根据此地址取出一条指令,经过数据总线进入指令寄存器IR。

(3)指令译码器译码,控制逻辑阵列发操作命令,执行指令操作码规定的操作。

(4)修改程序计数器的内容。

1-3.果微处理器的地址总线为20 位,它的最大寻址空间为多少?答:220=1048576=1MB1-4.处理器、微型计算机和微型计算机系统之间有什么关系?答:微处理器是微型计算机的核心部件。

微处理器配上存储器、输入/输出接口及相应的外设构成完整的微型计算机。

以微型计算机为主体,配上系统软件和外部设备以后,就构成了完整的微型计算机系统。

1-5.下面十进制数分别转换为二进制、八进制和十六进制数:128,65535,1024答:128,二进制:10000000B,八进制:200O,十六进制:80H 65535,二进制:1111111111111111B,八进制:177777O,十六进制:FFFFH1024,二进制:10000000000B,八进制:2000O,十六进制:400H1-6.下面二进制数分别转换为十进制及十六进制数:1011.1010B,1111101.11 B答:1011.1010B,十进制:11.625,十六进制:B.AH111101.11B,十进制:125.75,十六进制:7D.CH1-7.(5487)10=(0101010010000111)BCD=1010101101111 B1-8.设字长为8 位,请写出下列数的原码、反码、补码和移码:15,-20,-27/32 答:[+15]原=00001111,[+15]反=00001111,[+15]补=00001111,[+15]移=10001111 [-20]原=10010100,[-20]反=11101011,[-20]补=11101100,[-20]移=01101100 [-27/32]原=1.1101100,[-27/32]反=1.0010011,[-27/32]补=1.0010100,[-27/32]移=0.0010100第 2 章微型计算机系统的微处理器习题参考答案2-1.086/8088 CPU 的功能结构由哪两部分组成?它们的主要功能是什么?答:8086/8088 CPU 的功能结构由以下两部分组成:总线接口单元BIU(Bus Interface Unit),执行部件EU (Execution Unit)。

微机原理课后习题解答

微机原理课后习题解答

微机原理习题第一章绪论习题与答案1. 把下列二进制数转换成十进制数、十六进制数及BCD码形式;2 =解:2 = == 1001 0010 0101BCD2. 把下列十进制数转换成二进制数;1 100D =2 1000D =3 =解:1 100D = 01100100B3 =3. 把下列十六进制数转换成十进制数、二进制数;1 2B5H =2 =解:1 2B5H = 693D = 0010 1011 0101B2 = = 0100 1100 0101 B4. 计算下列各式;1 A7H+B8H =2 E4H-A6H =解:1 A7H+B8H = 15FH2 E4H-A6H = 3EH5. 写出下列十进制数的原码、反码和补码;1 +892 -37解:1 +89 原码、反码和补码为: 01011001B6.求下列用二进制补码表示的十进制数101001101补 =解:101001101补 = 77D7.请用8位二进制数写出下列字符带奇校验的ASCII码; 1C: 1000011 2O: 10011113M: 1001101 4P: 1010000解:1C:0 1000011 2O: 0 10011113M:1 1001101 4P: 1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码; 1+:0101011 2=: 01111013:0100011 4>: 0111110解:1+:0 0101011 2=: 1 01111013:1 0100011 4>: 1 01111109.叙述 CPU 中PC的作用;解:PC是CPU中的程序计数器,其作用是提供要执行指令的地址;第二章微处理器体系与结构习题与答案1. 8086/8088 CPU 由哪两大部分组成请分别叙述它们的功能;解:8086/8088 CPU均由两个独立的逻辑单元组成,一个称为总线接口单元BIUBus Interface Unit,另一个称为执行单元EUExecution Unit;总线接口单元BIU取指令时,从存储器指定地址取出指令送入指令队列排队;执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据;执行单元EU任务是执行指令,进行全部算术逻辑运算、完全偏移地址的计算,向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理;2. 8086/8088与传统的计算机相比在执行指令方面有什么不同这样的设计思想有什么优点解:总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时 ,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列;这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令;即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的;这样大大提高了CPU利用率,降低了系统都对存储器速度的要求;3. 状态标志和控制标志有何不同8086/8088的状态标志和控制标志分别有哪些解:8086/8088 CPU设立了一个两字节的标志寄存器,共九个标志;其中标志位O、S、Z、A、P、C是反映前一次涉及ALU操作结果的状态标志,D、I、T是控制CPU 操作特征的控制标志;4. 8086/8088 CPU寻址存储器时,什么是物理地址逻辑地址它们之间有何关系解:8086/8088系统中每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码;在CPU与存贮器之间进行任何信息交换时,需利用物理地址来查找所需要的访问的存储单元;逻辑地址由段地址和偏移地址两部分组成;逻辑地址的表示格式为:段地址:偏移地址;知道了逻辑地址,可以求出它对应的物理地址:物理地址=段地址×10H+偏移地址;5. 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少指向这一物理地址的CS值和IP值是唯一的吗解:根据:物理地址=段地址×10H+偏移地址,指令的物理地址为21F00H;指向这一物理地址的CS值和IP值不唯一;6. 8086 CPU中信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分怎样区分解:若存取一个字节的数据,总是用一个总线周期来完成该操作;若存取一个字,则依该字是规则字还是不规则字需用一个或两个总线周期来完成;对规则字,只用一个总线周期来完成16位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存储操作,先取其奇地址字节即数据的低位字节,然后存取偶地址字节;在组成存储系统时,总是偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,即通过总线高字节传送; 信号和A0信号控制存储器读写见下表:7.什么叫总线为什么各种微型计算机系统中普遍采用总线结构答:总线是模块与模块之间传送信息的一组公用信号线;总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行;因此微型计算机系统中普遍采用总线结构;8.微型计算机系统总线从功能上分为哪三类它们各自的功能是什么答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类;地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作;9.8086/8088 CPU 分为哪两个部分如何协调工作答:EU是执行部件,主要的功能是执行指令和形成有效地址;BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数;EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令;EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作;10.8086/8088 CPU的地址总线有多少位其寻址范围是多少答:8086/8088 CPU的地址总线共20 位,最大可寻址1MB空间;11.8086/8088 CPU使用的存储器为什么要分段怎么分段答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器如SP、IP以及BX、BP、SI、DI等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内;而实际上8086/8088有20条地址线,它的最大寻址空间为1MB;这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址实际使用的解决办法是:将1MB大小的存储空间分为若干“段”,每段不超过64KB;这样,一个20位的物理地址就可以用“16位段基址:16位偏移量”的形式称为逻辑地址来表示了,其中段地址存放在8086/8088的段寄存器中;12.8086/8088 CPU 中有几个通用寄存器有几个变址寄存器有几个指针寄存器通常哪几个寄存器亦可作为地址寄存器使用答:8086/8088 CPU 中共有:8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SI、DI 亦可作地址寄存器;13.Intel 8086与8088有何区别答:8086与8088的区别主要表现在以下几个方面:第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列;而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码;第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位;注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同;第三、其他不同的引脚定义:1AD15~AD0,在8086中为地址/数据复用,而在8088中AD15~AD8 改为A15~A8只作地址线用;234、28号引脚定义不同;14.8086/8088CPU工作在最小模式时:当CPU访问存储器时,要利用哪些信号当CPU访问外设接口时,要利用哪些信号答:8086/8088 CPU工作在最小模式时,若访问存储器,需用到以下信号:IOM/、ALE、RDT/、DEN、READY、BHE、W R、RD、AD0~AD15、A19/S6~A16/S3;若访问外设,需用到以下信号:IODT/、DEN、READY、W R、RD、AD0~AD15;M/、ALE、R15.试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:11278H+3469H答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1254E3H-27A0H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=033881H+3597H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1401E3H-01E3H答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1其中,进位标志CF 用于判别无符号数运算是否超出数的表示范围,而溢出标志OF 用于判别带符号数运算是否超出数的表示范围;奇偶标志PF 只能判断结果低8 位中“1”的个数为奇数还是偶数;16.什么是逻辑地址什么是物理地址它们之间有什么联系各用在何处答:逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上;由于8086/8088CPU 中的寄存器只有16 位长,所以程序不能直接存放20 位的物理地址,而必须借助逻辑地址,即用两个16 位的寄存器来表示物理地址;他们之间的关系是:物理地址=段基址16+偏移量;另外,一个物理地址可对应多个逻辑地址;17.设现行数据段位于存储器0B0000H~0BFFFFH 单元,DS 段寄存器内容为多少答: DS 段寄存器内容为0B000H;18.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么答:逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:0088H;偏移地址是指段内某个存储单元相对该段首地址的差值;物理地址是8086芯片引线送出的20位地址码,物理地址=段基址16+偏移地址,用来指出一个特定的存储单元;19.给定一个存放数据的内存单元的偏移地址是20C0H,DS=0C0E0H,求出该内存单元的物理地址;答:物理地址:0C2EC0H;20.8086/8088为什么采用地址/数据引线复用技术答:考虑到芯片成本和体积,8086/8088采用40条引线的封装结构;40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线;21.怎样确定8086的最大或最小工作模式答:引线MXMN引线接高电平,8086 MN的逻辑状态决定8086的工作模式,MX被设定为最小模式,MXMN引线接低电平,8086被设定为最大模式;22.8086基本总线周期是如何组成的答:基本总线周期由4个时钟CLK周期组成,按时间顺序定义为T1、T2、T3、T4;23.在基于8086的微计算机系统中,存储器是如何组织的存储器是如何与处理器总线连接的BHE信号起什么作用答:8086为16位微处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接BHE信号;A0信号有效时允许访问偶体中的低字节存储单元,BHE信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问;24.有一个由20个字组成的数据区,其起始地址为610AH:1CE7H;试写出该数据区首末单元的实际地址PA;首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H+27H=62DAEH25.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H 和00135H,试画出它们的存储器示意图;地址00130H00132H00133H00134H00135H00136H26.试说明8086CPU答:8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位地址线通过锁存器保存,以形成系统地址总线;第三章 80x86指令系统习题与答案1、指出下列指令中操作数的寻址方式8086系统;1 MOV AX,1002 MOV AX,1003 MOV DL,BP+SI4 MOV BX,CX5 MOV DX,SI6 MOV 1234HBX,DS7 MOV DI+5678H,AL 8 MOV 12BPDI,BH9 POP CX 10MOV AX,BX+SI+10解:2、指出下列指令中操作数的寻址方式80386系统;1 MOV EBX+12H,AX2 MOV EBP+EDI2,EBX3 MOV EBX4,BX4 MOV EDX,EAX+ESI8-12H解:3、指出以下指令中,哪些指令是非法的,并说明为什么8086系统;1 PUSH 1234H2 MOV CS,AX3 IN AX, 3004 MOV AX,DX+125 MOV BX,BX6 MOV DS,1000H7 XCHG AL,AL 8 MOV AL,100H9 MOV DX,AL 10LEA BL,BX+511LEA DX,BX 12MOV 1000H,12H13ADD AX,DS 14SUB 0100H,BYTE PTR 000115SHL BL,2 16SHR CL,CL17MUL AL,BL 18INT 400解: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 MOV AX,12EBXSI162 RCR EAX,103 PUSH 5678H4 POP 1000H5 MOV EAX+EAX,EAX6 MOV AL,ESP+ESP27 MOV BL,AX+12 8 IMUL AL,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,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容;PUSH AX ;AX=,BX=,SP=,栈顶字节SP=, 栈顶第二字节SP+1=PUSH BX ;AX=,BX=,SP=,栈顶字节SP=, 栈顶第二字节SP+1=POP AX ;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=56HAX=5678H,BX=5678H,SP=0FFEH,栈顶字节SP=34H,栈顶第二字节SP+1=12H6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写程序段,完成以下各算术运算题;1计算YY←A+BC,其中A、B、C都是无符号数;2计算AA+BB/C-D,商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数;3计算YY←A-BC,其中A、B、C都是未组合BCD码;解:1MOV AL,BMUL CADD AL,AADC AH,0MOV YY,AX2MOV AX,AAADD AX,BBMOV BL,CSUB BL,DIDIV BLMOV X,ALMOV Y,AH3MOV AL,ASUB AL,BAASMUL CAAMMOV YY, AX7、利用移位指令编写程序段,实现以下运算;1计算AX←AX10,其中AX为无符号数;232位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算DX,AX←DX,AX2;332位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算DX,AX←DX,AX/2;解:1SHL AX,1MOV BX,AXSHL AX,1SHL AX,1ADD AX,BX2SAL AX,1RCL DX,13SAR DX,1RCR AX,18、指出以下指令执行后,标志寄存器OF、SF、ZF、AF、PF、CF的状态;1AL=0FFH,BL=20H,执行指令:ADD AL,BL2AL=01H, BL=02H,执行指令:CMP AL,BL3AL=0FFH,执行指令:INC AL4AL=0,执行指令:DEC AL5AL=0F0H,BL=04H,执行指令:IMUL BL6AX=1F0H,BL=08H,执行指令:DIV BL7AL=12H, BL=34H,执行指令:TEST AL,BL8AL=98H,执行指令:SAL AL,1解:注:0表示结果为0,1表示结果为1,×表示结果不变,—表示结果不确定;9、在8086系统下,编写实现如下功能的程序段:1从地址为80H的端口中读入一个字节;2如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序;3如果该字节最高位为“0”,则转向第1步,继续循环扫描;解:参考程序段:AGAIN: IN AL, 80HTEST AL, 80HJZ AGAINMOV AL, 0FFHOUT 81H, AL10、我们知道,MOV指令并不能直接修改CS、IP的值,但事实上,我们还可以通过其他方法来达到修改CS、IP的目的;试编写一个程序段,使该程序段运行后,CS=0100H,IP=0000H;解:方法一、利用段间返回指令RETF:MOV AX,0100HPUSH AX ;段基址入栈MOV AX,0PUSH AX ;偏移量入栈RETF方法二、利用JMP指令实现段间跳转,假设ADDR为双字变量:MOV WORD PTR ADDR,0 ;WORD PTR ADDR←偏移量MOV WORD PTR ADDR+2, 0100H ;WORD PTR ADDR+2←段基址JMP DWORD PTR ADDR11.写出能完成下述操作的指令;1将立即数1234H 送至DS 寄存器;2将存储单元3000H 和内容送至4000H 单元;3将累加器AX 与寄存器CX 中的内容对调;答案:1MOV AX, 1234HMOV DS, AX2 MOV AX, 3000HMOV 4000H, AX3 XCHG AX, CX12.编程:将数据段中以BX 为偏移地址的连续4 单元的内容颠倒过来;答案:MOV AL, BXXCHG AL, BX+3MOV BX, ALMOV AL,BX+1XCHG AL, BX+2MOV BX+1, AL13.将AX 寄存器清零有4 种方法,试写出这4 条指令;答案:MOV AX, 00HSUB AX, AXAND AX, 00HXOR AX, AX14.使用一条逻辑运算指令实现下列要求:1使AL 高4 位不变,低4 位为0; 2使AL 最高位置1,后7 位不变; 3使AL 中的bit3、bit4 变反,其余位不变; 4测试判断CL 中的bit2、bit5、bit7 是否都为1;答案:1 AND AL, 0F0H2OR AL, 80H3XOR AL 18H4TEST AL, 0A4H15.试分析下面的程序段完成什么功能;MOV CL, 4SHL AX, CLSHL BL, CLMOV AL, BLSHR DH, CLOR AL, DH答案:将AX 中间8 位,BX 的低 4 位,DX 的高 4 位组成一个新字存放在AX 中;16.若要将源串100 个字节数据传送到目标串单元中去,设源串首址的偏移地址为2500H, 目标串首址的偏移地址为1400H,请编写程序实现以下功能; 1完成源串到目标串的搬移; 2比较两串是否完全相同,若两串相同,则BX 寄存器内容为0;若两串不同,则BX 指向源串中第一个不相同字节的地址,且该字节的内容保留在AL 的寄存器中;答案: 1 CLDMOV CX, 100MOV SI, 2500HMOV DI, 1400HREP MOVSB2 CLDMOV CX, 100MOV SI, 2500MOV DI, 1400REPE CMPSBJZ EDEC SIMOV BX, SIMOV AL, SIJMP STOPE: MOV BX, 0STOP: HLT17.设若标志寄存器原值为0A11H,SP=0060H,AL=4;下列几条指令执行后,标志寄存器、AX、SP的值分别是多少PUSHFLAHFXCHG AH,ALPUSH AXSAHFPOPF答:指令执行后标志寄存器的值为0411H,AX=0411H ,SP=005EH;18.假如在程序的括号中分别填入指令:1 LOOP L202 LOOPNE L203 LOOPE L20试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么BEGIN: MOV AX,01MOV BX,02MOV DX,03MOV CX,04L20: INC AXADD BX,AXSHR DX,1答案: 1AX= 5 BX= 16 CX= 0 DX= 02AX= 3 BX= 7 CX= 2 DX= 03AX= 2 BX= 4 CX= 3 DX= 119.变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列;答案:MOV AX, 0MOV AL, N1SUB AL, N2AASMOV DL, ALMOV AL, N1+1SBB AL, N2+1AASMOV DH, AL20.在已学的指令中,可实现累加器清0的单条指令有哪些比较它们的功能;答:1MOV AX,0 ;仅将累加器清0,不会影响任何标志位2SUB AX,AX ;累加器清0的同时影响所有状态标志,具体地有:ZF、PF置1,CF、AF、SF、OF均清03AND AX,0 ;将累加器清0,ZF、PF置1,CF、OF、SF清04XOR AX,AX ;将累加器清0,ZF、PF置1,CF、OF、SF清021.已知DS=2000H,有关的内存单元值为:21000H=00H,21001H=12H,21200H=00H,21201H=10H,23200H=20H,23201H=30H,23 400H=40H,23401H=30H,23600H=60H,23601H=30H,符号COUNT的偏移地址为1200H;执行下列指令后,寄存器AX、BX、SI的值分别是多少MOV BX,OFFSET COUNTMOV SI,BXMOV AX,COUNTSIBX答:执行结果为BX=1200H,SI=1000H,AX=3040H;22.设若内存单元DATA在数据段中偏移量为24C0H处,24C0H~24C3H单元中依次存放着55H、66H、77H、88H;下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少MOV AX,DATALEA SI,DATAMOV CL,SILDS BX,DATA答:执行结果为AX=6655H,BX=6655H,CL=55H,SI=24C0H,DS=8877H;23.若AX=26D3H,CX=7908H,CF=1,执行下列指令后,寄存器AX、CX的值分别是多少CF=OF=SAL CH,1RCR AX,CLROL AL,1答:执行结果为AX=0A64CH,CX=0F208H,CF=OF=0;24.已知有程序段如下:MOV AL,35HMOV DL,ALAND DL,0FHAND AL,0F0HMOV CL,4SHR AL,CLMOV BL,10MUL BLADD AL,DL执行之后,AL的值等于多少该程序段完成了什么功能答:程序段执行后AL=23H;该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能;25.下面的程序执行后,DX、AX的值分别是多少;以X为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321HLEA SI,XLEA DI,YMOV DX,SI+2MOV AX,XADD AX,XADC DX,SI+2CMP DX,DI+2JL L2CMP AX,YJL L1JMP EXITL1: MOV AX,1JMP EXITL2: MOV AX,2EXIT:……答:执行结果为AX=2,DX=0ACF0H;26.设VAR字单元的值为x,F1字单元的值为y,试编程按以下要求给y赋值:2 x>30y = 0 30≥x≥1-2 x<1答:一种可能的程序段实现如下:MOV AX,VAR ;AX xCMP AX,30JG PLUS2 ;x>30,则转PLUS2CMP AX,1JL MIN2 ;x<1,则转MIN2MOV F1,0 ;30≥x≥1,y=0JMP GOPLUS2:MOV F1,2 ;y=2JMP GOMIN2: MOV F1,-2 ;y = -2或00FEHGO:……;后续处理简析:本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用;若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;若当作无符号数,则应使用JA、JB、JAE、JBE等指令;第四章 80x86汇编语言程序设计习题与答案1、指出以下数据定义伪指令所分配的字节数8086系统; 1DATA1 DB 10,,‘A’2DATA2 DW 10 DUP2,3 DUP,13DATA3 DB ‘HELLO,WORLD’,‘$’4DATA4 DW DATA4解:13字节;2100字节;313字节;42字节;2、指出以下数据定义伪指令所分配的字节数80386系统; 1DATA1 DF 12,34,562DATA2 DF DATA23DATA3 DQ 0,10 DUP4DATA4 DT 0,1,2解:118字节;36字节; 388字节;430字节;3、指出以下指令中哪些是无效的,并说明原因;1ADDR DB $2DATA DB F0H,12H31_DATA DW 1234H4VAR DW VAR1 ;VAR1为一个字节变量5MOV AX,10-VAR1 ;VAR1为一个字变量6MOV BX,VAR22+1 ;VAR2为一个字变量解:1非法,地址计数器$是32位数;2非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;3非法,变量名非法,不能以数字开头;4合法;5非法,地址表达式不能是“常数-地址”;6非法,地址表达式不能出现乘法;4、假设已定义数据段如下:DATA SEGMENTORG 100HDATA1 DB 10 DUP1,2,3DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址假设段基址为1234H;请指出以下指令执行后,相应的寄存器中的内容;1MOV AX,WORD PTR DATA1 ;AX=2MOV BX,DATA2 ;BX=3MOV CX,DATA2+2 ;CX=4MOV DX,OFFSET DATA2 ;DX=5MOV SI,SEG DATA1 ;SI=6MOV DI,LENGTH DATA1 ;DI=7MOV SP,TYPE DATA1 ;SP=8MOV BP,SIZE DATA2 ;BP=解:1AX=0201H;2BX=0100H;3CX=0120H;4DX=011EH;5SI=1234H;6DI=000AH;7SP=0001H;8BP=0002H;5、在8086系统下,编写完整程序,实现从键盘上输入8位二进制数,从显示器上显示相应的16进制数,例如从键盘上输入“00010010”,应在显示器上显示“12H”; 解:参考程序:DATA SEGMENTMSG1 DB 'Input binary numberESC to exit:','$'MSG2 DB 0AH,0DH,'Input error',0AH,0DH,'$'DATA ENDSOUTPUT MACRO ASC ;定义输出一个字符的宏MOV DL, ASCMOV AH, 2INT 21HENDMCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXAGAIN: LEA DX, MSG1MOV AH, 9INT 21H ;提示输入信息MOV CX, 8 ;输入8位二进制数MOV BL, 0L: MOV AH, 1INT 21HSHL BL, 1CMP AL, 1BH ;ESC键退出JZ DONECMP AL, '0' ;输入“0”JZ NEXTCMP AL, '1' ;输入“1”JNZ ERROR ;输入其他则出错INC BLNEXT: LOOP LOUTPUT 0AHOUTPUT 0DHPUSH BXMOV CL, 4SHR BL, CLCALL TRAN ;显示高4位对应的16进制数POP BXAND BL, 0FHCALL TRAN ;显示低4位对应的16进制数OUTPUT 'H'OUTPUT 0AHOUTPUT 0DHJMP AGAINERROR: LEA DX, MSG2MOV AH, 9INT 21HJMP AGAINDONE: RETMAIN ENDPTRAN PROC FARCMP BL, 0AHJB BELOWADD BL, 7BELOW: ADD BL, 30HOUTPUT BLRETTRAN ENDPCODE ENDSEND MAIN6、在8086系统下,编写完整程序,实现从键盘上输入两个4位十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6912”; 解:参考程序:DATA SEGMENTMSG1 DB 'Input the first numberESC to exit:','$'MSG2 DB 'Input the second numberESC to exit:','$'MSG3 DB 0AH,0DH,'Input errorInput again:','$'DATA ENDSOUTPUT MACRO ASC ;定义输出一个字符的宏MOV DL, ASCMOV AH, 2INT 21HENDMCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN: MOV AX, DATAMOV DS, AXAGAIN: LEA DX, MSG1MOV AH, 9INT 21H ;提示输入第一个数CALL INPUT ;输入过程PUSH BXOUTPUT 0AHOUTPUT 0DHLEA DX, MSG2MOV AH, 9INT 21H ;提示输入第二个数CALL INPUT ;输入过程OUTPUT 0AHOUTPUT 0DHPOP AX ;实现两个4位组合BCD码相加ADD AL, BL ;低8位相加DAA ;校正MOV CL, AL ;保存至CLADC AH, BH ;高8位相加MOV AL, AH ;移至ALDAA ;校正MOV AH, ALMOV AL, CLMOV BX, AX ;最后结果放在BX中JNC NEXTOUTPUT '1' ;如果相加结果大于9999,则显示进位“1”NEXT: PUSH BXMOV CL, 4SHR BH, CLADD BH, 30HOUTPUT BH ;显示千位数POP BXPUSH BXAND BH, 0FHADD BH, 30HOUTPUT BH ;显示百位数POP BXPUSH BXMOV CL, 4SHR BL, CLADD BL, 30HOUTPUT BL ;显示十位数POP BXAND BL, 0FHADD BL, 30HOUTPUT BL ;显示个位数OUTPUT 0AHOUTPUT 0DHJMP AGAININPUT PROC FAR ;输入一个4位十进制数的过程BEGIN: MOV CX, 4MOV BX, 0L: SHL BX, 1SHL BX, 1SHL BX, 1SHL BX, 1 ;BX的值乘以16MOV AH, 1INT 21H ;输入CMP AL, 1BH ;ESC键退出JZ DONECMP AL, '0'JB ERROR ;非数字,出错CMP AL, '9'JA ERROR ;非数字,出错SUB AL, 30HXOR AH, AHADD BX, AX ;将输入加到BX中LOOP LRETERROR: LEA DX, MSG3MOV AH, 9INT 21HJMP BEGINDONE: MOV AH, 4CHINT 21HINPUT ENDPCODE ENDSEND MAIN7、在8086系统下,编写完整程序,实现两个32位带符号数相乘;假设被乘数存放在以字变量MUL1开始的连续4个字节中,乘数存放在以字变量MUL2开始的连续4个字节中中,相乘结果存放在以字变量RES开始的连续8个字节中;解:参考程序:DATA SEGMENTMUL1 DW 0FFFFH,0FFFFH ;被乘数MUL2 DW 5678H,1234H ;乘数RES DW 4 DUP0 ;结果DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV CX, MUL1MOV BP, MUL1+2MOV SI, MUL2MOV DI, MUL2+2TEST BP, 8000H ;被乘数是否为负数JZ NEXT1NOT BP ;为负数,则取反加1 NOT CXADD CX, 1ADC BP, 0NEXT1: TEST DI, 8000H ;乘数是否为负数JZ NEXT2NOT SI ;为负数,则取反加1 NOT DIADD SI, 1ADC DI, 0NEXT2: MOV AX, SI ;相乘过程MUL CXMOV RES, AXMOV AX, SIMUL BPADD RES+2, AXADC RES+4, DXMOV AX, DIMUL CXADD RES+2, AXADC RES+4, DXMOV AX, DIMUL BPADD RES+4, AXADC RES+6, DXMOV AX, MUL1+2XOR AX, MUL2+2 ;判断被乘数和乘数是否同号JNS DONE ;同号,则结果为正数,无须修改结果NOT RES ;不同号,则结果为负数,须取反加1 NOT RES+2NOT RES+4NOT RES+6ADD RES, 1ADC RES+2, 0ADC RES+6, 0DONE: RETMAIN ENDPCODE ENDSEND MAIN8、在8086系统下,编写完整程序,找出字节数组ARRAY中的最大值和最小值;假设ARRAY的长度为100个字节,每个字节为一个无符号数,程序执行后最大值将存放到字节变量MAX中,最小值则存放到字节变量MIN中;解:参考程序:DATA SEGMENTARRAY DB 100 DUP ;字节数组MAX DB ;最大值MIN DB ;最小值DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXLEA SI, ARRAYCLDMOV BH, 0 ;存放临时最大值的寄存器MOV BL, 0FFH ;存放临时最小值的寄存器MOV CX, 100AGAIN: LODSBCMP AL, BHJNA NEXT1MOV BH, AL ;如果当前数值比临时最大值大,则代替NEXT1: CMP AL, BLJNB NEXT2MOV BL, AL ;如果当前数值比临时最小值小,则代替NEXT2: LOOP AGAINMOV MAX, BHMOV MIN, BLRETMAIN ENDPCODE ENDSEND MAIN9、在8086系统下,编写完整程序,将字节数组ARRAY中的所有数据往高地址的方向移动一位,即原来存放在ARRAY中的字节移动到ARRAY+1中,原来存放在ARRAY+1中的字节移动到ARRAY+2中,……,依此类推;假设ARRAY的长度为100个字节; 解:可利用MOVSB指令实现移位,但应该注意,必须从串尾开始移动,因为假如直接从串头开始,将串头移到第二个数,那么第二个数将被覆盖;为使程序能从串尾开始移动,可令方向标志位DF=1;参考程序:DATA SEGMENTARRAY DB 100 DUP,DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, ARRAY+99 ;SI指向源串尾LEA DI, ARRAY+100 ;DI指向新串尾STD ;DF=1,串尾先移动MOV CX, 100REP MOVSB ;循环移动RETMAIN ENDPCODE ENDSEND MAIN10、在8086系统下,编写在长字符串L_STR中查找短字符串S_STR的完整程序,如果找到匹配的字符串,则将字节变量RES置0FFH,否则置0;例如,在字符串“ABABCD”中可找到字符串“ABC”,则RES=0FFH;解:参考程序:DATA SEGMENTL_STR DB 'ABDABABCD' ;长串L_LTH DW $-L_STR ;长串长度S_STR DB 'ABC' ;短串S_LTH DW $-S_STR ;短串长度RES DB ;存放结果DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, L_STRLEA DI, S_STRCLDMOV CX, L_LTHSUB CX, S_LTHINC CX ;作串比较的次数AGAIN: CALL COMP ;进行串比较INC SILOOP AGAINMOV RES, 0RETMAIN ENDPCOMP PROC FARPUSH CXPUSH SIPUSH DIMOV CX, S_LTHREPZ CMPSBJZ YES ;如果两个串相同,则说明找到POP DIPOP SIPOP CXRETYES: MOV RES, 0FFHMOV AH, 4CHINT 21HCOMP ENDPCODE ENDSEND MAIN11.执行下列指令后,AX寄存器中的内容是什么TABLE DW 10,20,30,40,50ENTRY DW 3..MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX答:AX=4012.指出下列程序中的错误:STAKSG SEGMENTDB 100 DUPSTA_SG ENDSDTSEG SEGMENTDATA1 DBDTSEG ENDCDSEG SEGMENTMAIN PROC FARSTART: MOV DS,DATSEGMOV AL,34HADD AL,4FHMOV DATA,ALSTART ENDPCDSEG ENDSEND答案:改正后:。

微机原理课后习题答案

微机原理课后习题答案

第1章进制及码元1、进制转换129= 81H= 10000001B=201Q298= 12AH= 100101010B=452Q1000= 3E8H= 1111101000B= 1750Q5DH= 1011101 B= 135 Q= 93 D3E8H= 1111101000 B= 1750Q= 1000 D;357Q=11101111 B= 0EF H= 239 D2、进制计算10010110 2FE3 F7,-119 FFF7,-32759 4 73、数据表示范围:一个字节的无符号数表示范围为0~255,有符号数补码表示范围为-l28—+127。

两个字节的无符号数表示范围为0~65535,有符号数补码表示范围为—32768~+32767。

N位二进制数的无符号数表示范围为0~(2N-1),有符号数(补码)表示范围为-2N-1~(2N-1-1).4、35H代表的ASC II字符为'5',代表十六进制数时等价的十进制值为53 ,代表压缩8421BCD码等价的十进制值为35 ,代表非压缩8421BCD码等价的十进制值为5。

5、FFH代表无符号数时等价的十进制值为255 ,代表补码有符号数时等价的十进制值为一1 ,代表反码有符号数时等价的十进制值为一0 ,代表原码有符号数时等价的十进制值为一l27。

6、—20的8位二进制补码为ECH ,原码为94H ,反码为EBH 。

158的16位二进制补码为009EH,原码为009EH ,反码为009EH 。

7、英文字符一般在计算机内占用(1)个字节,每个字节的最高位一定为0 ,全角英文字符在计算机内占用2个字节,一个汉字在计算机内占用 2 个字节,每个字节最高位为 1 。

8、设阶码用8位补码表示,尾数部分用16位补码表示,则—(1/32+1/128+1/512)的尾数部分及阶码分别为多少?第2章微机硬件基础1、请画出计算机系统硬件图。

2、8086/88CPU为什么要分为BIU和EU两大模块?答:为了使取指和分析、执行指令可并行处理,提高CPU的执行效率。

微机原理答案第一章习题答案

微机原理答案第一章习题答案

微机原理答案第⼀章习题答案第⼀章习题1 什么是冯·诺依曼机?答:冯·诺依曼在1946 年提出了⼀个完整的现代计算机的结构雏型,它由5 个部分组成,即运算器、控制器、存储器、输⼊设备和输出设备。

运算器负责指令的执⾏;控制器的作⽤是协调并控制计算机的各个部件按程序中排好的指令序列执⾏;存储器是具有记忆功能的器件,⽤于存放程序和需要⽤到的数据及运算结果;⽽输⼊/输出设备则是负责从外部设备输⼊程序和数据,并将运算的结果送出。

1. 什么是冯.诺伊曼计算机1946年6⽉,美籍匈⽛利科学家冯·诺依曼(Johe Von Neumman)提出了“存储程序”的计算机设计⽅案。

按照这⼀原理设计的计算机称为冯·诺依曼型计算机。

特点:(1)采⽤⼆进制数形式表⽰数据和计算机指令。

(2)指令和数据存储在计算机内部存储器中,能⾃动依次执⾏指令。

(3)由控制器、运算器、存储器、输⼊设备、输出设备5⼤部分组成计算机硬件。

(4)⼯作原理的核⼼是“存储程序”和“程序控制”。

冯·诺依曼提出的体系结构奠定了现代计算机结构理论的基础,被誉为计算机发展史上的⾥程碑。

2.微处理器,微型计算机,微型计算机系统有什么联系与区别?微处理器只是⼀个中央处理器(CPU),由算术逻辑部件(ALU),累加器和通⽤寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。

微处理器不能构成独⽴⼯作的系统,也不能独⽴执⾏程序,必须配上存储器,外部输⼊、输出接⼝构成⼀台微型计算机⽅能⼯作。

微型计算机由CPU,存储器,输⼊/输出接⼝电路和系统总线组成。

它已具有计算功能,能独⽴执⾏程序,但若没有输⼊/输出设备,数据及程序不能输⼊,运算结果⽆法显⽰或输出,仍不能正常⼯作。

以微型计算机为主体,配上外部输⼊/输出设备及系统软件就构成了微型计算机系统。

没有配置软件的计算机称为裸机,仍然什么⼯作也不能做,必须配置系统软件和应⽤软件,这样才可以正常提供使⽤。

微机原理习题集答案

微机原理习题集答案

第1章 概述1.电子计算机主要由.电子计算机主要由 运算器运算器 、 控制器控制器 、 存储器存储器 、 输入设备输入设备 和 输出设备输出设备 等五部分组成。

等五部分组成。

等五部分组成。

2. 运算器运算器 和 控制器控制器 集成在一块芯片上,被称作CPU CPU。

3.总线按其功能可分.总线按其功能可分 数据总线数据总线 、 地址总线地址总线 和 控制总线控制总线 三种不同类型的总线。

三种不同类型的总线。

4.计算机系统与外部设备之间相互连接的总线称为.计算机系统与外部设备之间相互连接的总线称为 系统总线(或通信总线)系统总线(或通信总线) ;用于连接微型机系统内各插件板的总线称为系统内总线(板级总线) ; CPU 内部连接各寄存器及运算部件之间的总线称为内部连接各寄存器及运算部件之间的总线称为 内部总线内部总线 。

5.迄今为止电子计算机所共同遵循的工作原理是迄今为止电子计算机所共同遵循的工作原理是 程序存储程序存储 和 程序控制程序控制 的工作原理。

的工作原理。

这种原理又称这种原理又称为 冯·诺依曼型冯·诺依曼型 原理。

原理。

第3章 微处理器及其结构1.8086/8088 CPU 执行指令中所需操作数地址由执行指令中所需操作数地址由 EU EU EU 计算出计算出计算出 16 16 16 位偏移量部分送位偏移量部分送位偏移量部分送 BIU BIU BIU ,由,由,由 BIU BIU BIU 最后最后形成一个形成一个 20 20 20 位的内存单元物理地址。

位的内存单元物理地址。

2.8086/8088 CPU CPU在总线周期的在总线周期的在总线周期的T1 T1 T1 时刻,用时刻,用时刻,用A19/S6A19/S6A19/S6~~A16/S3 A16/S3 输出输出输出 20 20 20 位地址信息的最高位地址信息的最高位地址信息的最高 4 4 4 位,而在位,而在其他时钟周期,则输出其他时钟周期,则输出 状态状态 信息。

微机原理课后习题解答(DOC)

微机原理课后习题解答(DOC)

微机原理习题第一章绪论习题与答案1. 把下列二进制数转换成十进制数、十六进制数及BCD码形式。

(1)10110010B =(2)01011101.101B =解:(1)10110010B = 178D = B2H = (0001 0111 1000)BCD (2)01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)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 = 0010 1011 0101B(2)4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B4. 计算下列各式。

(1)A7H+B8H =(2)E4H-A6H =解:(1)A7H+B8H = 15FH(2)E4H-A6H = 3EH5. 写出下列十进制数的原码、反码和补码。

(1)+89(2)-37解:(1)[+89 ] 原码、反码和补码为: 01011001B(2)[-37] 原码= 10100101 B[-37] 反码= 11011010 B[-37] 补码= 11011011 B6.求下列用二进制补码表示的十进制数(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:0 1000011 (2)O:0 1001111(3)M:1 1001101 (4)P:1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章习题
1 什么是冯·诺依曼机?
答:冯·诺依曼在1946 年提出了一个完整的现代计算机的结构雏型,它由5 个部分组成,即运算器、控制器、存储器、输入设备和输出设备。

运算器负责指令的执行;控制器的作用是协调并控制计算机的各个部件按程序中排好的指令序列执行;存储器是具有记忆功能的器件,用于存放程序和需要用到的数据及运算结果;而输入/输出设备则是负责从外部设备输入程序和数据,并将运算的结果送出。

1. 什么是冯.诺伊曼计算机
1946年6月,美籍匈牙利科学家冯·诺依曼(Johe Von Neumman)提出了“存储程序”的计算机设计方案。

按照这一原理设计的计算机称为冯·诺依曼型计算机。

特点:
(1)采用二进制数形式表示数据和计算机指令。

(2)指令和数据存储在计算机内部存储器中,能自动依次执行指令。

(3)由控制器、运算器、存储器、输入设备、输出设备5大部分组成计算机硬件。

(4)工作原理的核心是“存储程序”和“程序控制”。

冯·诺依曼提出的体系结构奠定了现代计算机结构理论的基础,被誉为计算机发展史上的里程碑。

2.微处理器,微型计算机,微型计算机系统有什么联系与区别?
微处理器只是一个中央处理器(CPU),由算术逻辑部件(ALU),累加器和通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。

微处理器不能构成独立工作的系统,也不能独立执行程序,必须配上存储器,外部输入、输出接口构成一台微型计算机方能工作。

微型计算机由CPU,存储器,输入/输出接口电路和系统总线组成。

它已具有计算功能,能独立执行程序,但若没有输入/输出设备,数据及程序不能输入,运算结果无法显示或输出,仍不能正常工作。

以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统。

没有配置软件的计算机称为裸机,仍然什么工作也不能做,必须配置系统软件和应用软件,这样才可以正常提供使用。

3. 微处理器有哪些主要的部件组成?其功能是什么?
中央处理单元CPU (Control Processing Unit)也称微处理器, CPU是微型计算机的核心部件,由运算器ALU、控制器、寄存器组以及总线接口等部件组成,且这些部件集成在一块大规模集成电路芯片上。

运算器ALU:主要完成算术运算、逻辑运算。

寄存器组:用于存放运算数据、中间结果、地址等。

控制器:负责对整机的控制。

总线接口:与外部联系的信息通道。

4.画一个计算机系统的方框图,简述各部分的主要功能。

运算器主要完成算术运算、逻辑运算,控制器负责对整机的控制,运算器和控制器组成CPU,存储器用于存储程序和数据。

输入/输出接口电路主要用于CPU与外设之间的数据格式转换、数据传输、速度匹配、电平匹配等。

总线是连接计算机系统中其他主要功能部件的桥梁,是计算机系统中信息输送的枢纽,只有通过总线,计算机系统的各部件才能实现相互通信。

5 列出计算机系统中的三种总线结构,画出面向存储器的双总线结构。

6 8086微处理器可寻址多少字节存储器?pentiun II微处理器可寻址多少字节存储器?答:8086CPU寻址范围1MB。

因为8086CPU地址线为20条,2^20=1024KB,即1MB。

8086系统中,指令仅给出16位地址,与寻址有关的寄存器也只有16位长,因此寻址范围只有64KB,为了寻址1MB,所以分成四个逻辑段。

当CPU访问内存时,段寄存器的内容(段基址)自动左移4位(二进制),与段内16位地址偏移量相加,形成20位的物理地址。

7 什么是PCI局部总线?什么是USB?
PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。

USB就是通用串行总线(Universal Serial Bus )是一新型界面规格,支持主系统与不同外设间的数据传输。

USB允许外设在开机状态下插拔使用,USB具有易于使用、高带宽、可接多达127个外设、数据传输稳定、支持即时声音播放及影像压缩等特点。

目前在国内市场可以见到的USB设备主要有扫描仪、数码相机、打印机、集线器和外置存储设备等。

8 说明以下一些伪指令的作用。

(1)DB (2)DQ (3)DW (4)DD
答:(1)定义字节(2)定义4个字(3)定义字(4)定义双字
9 将下列二进制数转换为十进制数。

(1) 1101.01 (2) 111001.0011 (3) 101011.0101 (4) 111.0001
解:(1)13.25 (2)57.375 (3)43.315 (4)3.0625
10 将下列十六进制数转换为十进制数。

(1) A3.3H (2) 129.CH (3) AC.DCH (4) FAB.3H
解:
(1) 163.1875
(2) 297.75
(3) 172.859375
(4) 4011.1875
11. 将下列十进制数转换为二进制数、八进制数、十六进制数。

(1)23 =0001 0111B =27O =17H (2)107 =0110 1011 =153O =6BH
(3)1238=0000010011010110B =2326O = 4D6H(4)92 =0101 1100 =134O =5CH
12. 将下列十进制数转换为8位有符号二进制数
(1)+32 =0010 0000 (2)-12 =1000 1100
(3)+100 =0110 0110 (4)-92 =1101 1100
13. 将下列十进制数转换为压缩和非压缩BCD码
(1)102=66H=0001 0000 0010(压缩BCD码)
=0000 0001 0000 0000 0000 0010(非压缩BCD码)
(2)44=2CH=0100 0100(压缩BCD码)=0000010000000100(非压缩BCD码)
(3)301=12DH=001100000001(压缩BCD码)
=0000 0011 0000 0000 0000 0001(非压缩BCD码)
(4)1000 =3E8H= 0001 0000 0000 0000 (压缩BCD码)
=0000 0001 0000 0000 0000 0000 0000 0000非压缩BCD码)
14 将下列二进制数转换为有符号十进制数。

(1) 10000000 (2) 00110011 (3) 10010010 (4) 10001001
解:
(1) -0
(2) 51
(3) -18
(4) -9
15 将下列十进制数转换为单精度浮点数。

(1) +1.5 (2) -10.625 (3) +100.25 (4) -1200
解:
(1) 0 01111111 10000000000000000000000
(2) 1 10000010 01010100000000000000000
(3) 0 10000101 10010001000000000000000
(4) 1 10001001 00101100000000000000000。

相关文档
最新文档