微机原理习题答案 - 图文

更新时间:2023-10-26 16:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 绪论

2.微处理器,微型计算机,微型计算机系统有什么联系与区别? 答:微处理器(Microprocessor):由算术逻辑部件(ALU),累加器和通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。微型计算机(Microcomputer__MC):由CPU、存储器、输入/输出接口和系统总线组成。微型计算机系统(Microcomputer System_MCS):以微型计算机为主体,配上外设和系统软件,就构成了微型计算机系统。

3.微处理器由哪些主要部件组成?其功能是什么?

答:微处理器(Microprocessor):由算术逻辑部件(ALU),累加器和通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。 总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。

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

控制器输入设备主存储器输出设备运算器 运算器是执行算术运算和逻辑运算的部件,其主要任务是对数据进行加工处理。 控制器的主要作用是取出要执行的每一条指令、然后进行指令译码并执行指令。 输入设备用于将数据输入到计算机中。

输出设备把计算机加工后的信息输出给用户。 主存储器用于存放程序和数据等。

7.什么是PCI局部总线?什么是USB?

答:PC总线是PC机和PC/XT机中采用的系统总线标准,是外设互连局部总线,适用于32/64位并行数据传送,最大通信速率为132MB/s,具有即插即用的功能。

USB总线是通用串行总线,采用通用连接器和自动配置及热插拔技术和相应的软件,实现资源共享和外设的简单快速连接,不需要单独的供电系统,数据传输速率有15MB/S和1.5MB/S两种。

第二章8086系统结构

1.8086CPU内部由哪两部分组成?它们的主要功能是什么?

答:8086CPU内部由指令执行部件(EU)和总线接口部件(BIU)两部分组成。

指令执行部件(EU)主要功能是完成指令译码和执行指令。 总线接口部件(BIU)主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。

2.8086CPU中有哪些寄存器?各有什么用途? 答:

数据寄存器:共有4个寄存器AX、BX、CX、DX,用来保存操作数或运算结果等信息。 AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。 BX寄存器称为基址寄存器。常用于存放存储器地址。

CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。

DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。

变址和指针寄存器:包括SI、DI、SP、BP4个16位寄存器,主要用于存放某个存储单元的偏移地址。SI是源变址寄存器,DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。 SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。

段寄存器:8086CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。

代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。

8086CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。

标志寄存器:8086CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。

5.要完成下述运算或控制,用什么标志位判断?其值是什么?

(1)比较两数是否相等? (2)两数运算后结果是正数还是负数?

(3)两数相加后是否溢出? (4)采用偶校验方式,判定是否需要补“1”? (5)两数相减后比较大小? (6)中断信号能否允许? 答:(1)ZF=0则不等,ZF=1则相等; (2)SF=0为正,SF=1为负; (3)OF=0不溢出,OF=1溢出; (4)需要补“1”;

(5)如ZF=1则相等,否则:ZF=0时,如CF=0则被减数大于减数;CF=1则减数大于被减数; (6)如IF=1则允许CPU响应可屏蔽中断,否则IF=0则CPU不响应。

6.8086系统中存储器采用什么结构?用什么信号来选中存储体?

答:8086系统中存储器采用分体结构。分成奇、偶两个存储体,把1MB分成两个512KB存储体。分别用A0选中偶存储体,用BHE选中奇存储体。

12.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值? 答:堆栈段在存储器中的物理地址为:从以物理地址为35800H的栈顶开始递减的最大为64KB空间。

若此时入栈10个字节,(SP)=03F6H; 若再出栈6个字节,(SP)=03FCH。

15.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?

答:8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是:最小模式为单处理器系统,系统中所需的控制信号由CPU提供,实现存储器及I/O接口电路的连接。最大模式可以构成多处理器/协处理器系统,系统中所需的控制信号由总线控制器8288提供,8086提供信号控制8288,以实现全局资源分配及总线控制权传递。

16.8086系统中为什么要用地址锁存器?8282地址锁存器与CPU如何连接?

答:CPU与存储器(或I/O端口)进行数据交换时,CPU首先要送出地址信号,然后再发出控制信号及传送数据。由于8086引脚限制,地址和数据分时

复用一组总线,所以要加入地址锁存器,先锁存地址,使在读/写总线周期内地址稳定。

第三章 8086的寻址方式和指令系统

7.已知当前数据段中有一个十进制数字0~9的7段代码表,其数值依次为40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。要求用XLAT指令将十进制数57转换成相应的7段代码值,存到BX寄存器中,试写出相应的程序段。

答:TAB DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H START: MOV AL, 5 LEA BX, TAB XLAT TAB

MOV DH, AL MOV AL, 7

LEA BX, TAB

XLAT TAB

MOV BL, AL MOV BH, DH

10.某班有7个同学的英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作: (1)给每个人加5分,结果存到NEW数组中。 (2)把总分存到SUM单元中。

(3)把平均分存到AVERAGE单元中。 答:(1)ARRAY DB 60,62,63,65,67,68,69 NEW DB 7DUP(?) START: LEA SI, ARRAY LEA DI, NEW MOV CX, 7 L1: MOV AL, [SI] MOV [DI], AL ADD AL, 5 DAA

INC SI INC DI

LOOP L1

(2)SUM DW 0 (3)AVERAGE DB 0 START: LEA BX,ARRAY MOV AX,SUM MOV CX,7 MOV BX,7 MOV AX,0 DIV BX

L2:MOV DL,[BX] MOV AVERAGE,AL MOV DH,0 ADD AX,DX INC BX LOOP L2

MOV SUM,AX

13.编程将AX寄存器中的内容以相反的次序传送到DX寄存器中,并要求AX中的内容不被破坏,然后统计DX寄存器中的1的个数是多少? 答:DATA DW ?

START: MOV BX, 0 MOV CX, 16 MOV AX, DATA L1: ROL AX, 1 JNC L2 INC BX L2: RCR DX, 1 LOOP L1 END START

第四章 程序设计

1.下列变量各占多少字节?

A1 DW 23H,5876H ;4 A2 DB 3 DUP(?),0AH,0DH,‘$’ ;6

A3 DD 5 DUP(1234H,567890H) ;40 A4 DB 4 DUP(3 DUP(1,2,‘ABC’)) ;60

7.编程完成下列功能:

(2)利用中断调用,在屏幕上显示1~9之间随机数。 答:

stack SEGMENT DW 50 DUP(?) stack ENDS code SEGMENT

ASSUME CS:code,SS:stack start:

MOV AX,stack MOV SS,AX

L1: MOV AH,2CH

INT 21H ;取时间,DL=1/100秒为随机数(0~99) XOR AX,AX MOV AL,DL

MOV BL,10

DIV BL ;1/100秒除10 MOV DL,AH

ADD DL,30H ;二进制数转换为ASCII码 MOV AH,2

INT 21H ;显示1~9 MOV AH,4CH

INT 21H ;返回DOS

code ENDS END start

15.从键盘输入20各有符号,将他们排序并在屏幕上显示。

data SEGMENT

buf1 DB 20 DUP(?) buf2 db 0dh,0ah,'$' data ENDS

stack SEGMENT DW 50 DUP(?) stack ENDS code SEGMENT

ASSUME CS:code,DS:data,SS:stack start:MOV AX,data MOV DS,AX MOV AX,stack

MOV SS,AX

MOV BX,0 MOV CX,20 input:MOV AH,1 INT 21h CMP AL,39h JBE z1 ADD AL,9 z1: AND AL,0fh PUSH CX MOV CL,4 SAL AL,CL MOV DL,AL MOV AH,1 INT 21h CMP AL,39h JBE z2 ADD AL,9 z2: AND AL,0fh OR AL,DL

MOV buf1[BX],AL INC BX MOV DL,',' MOV AH,2

123456DDa1RDWR322925ALE242627283130RDLOC/WRQS0ALEQS1INAS0,DENS1DT/RS2M/IORQ/GT0RQ/GT1AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9AD10AD11AD12AD13AD14AD15A16/S3A17/S4A18/S5A19/S6BHE/S716151413121110987654323938373635AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9AD10AD11AD12AD13AD14AD15A16A17A18A19AD0AD1AD2AD3AD4AD5AD6AD712345678911a2DI0DI1DI2DI3DI4DI5DI6DI7OESTB8282a3AD81AD92AD103AD114AD125AD136AD147AD158911DI0DI1DI2DI3DI4DI5DI6DI7OESTB8282a4a5DO0DO1DO2DO3DO4DO5DO6DO71918171615141312A16A17A18A191A162A173M/IO6A184A195SEL ASEL BSEL CEN 1EN 2AEN 2BY0 OUTY1 OUTY2 OUTY3 OUTY4 OUTY5 OUTY6 OUTY7 OUTBHE15141312111097DO0DO1DO2DO3DO4DO5DO6DO71918171615141312A8A9A10A11A12A13A14A15DO0DO1DO2DO3DO4DO5DO6DO71918171615141312A0A1A2A3A4A5A6A7A110A29A38A47A56A65A74A83A925A1024A1121A1223A132RD22WR27A02620a8A0A1A2A3A4A5A6A7A8A9A10A11A12OEWECS2CS16264a9A110A29A38A47A56A65A74A83A925A1024A1121A1223A132RD22WR27BHE2620A0A1A2A3A4A5A6A7A8A9A10A11A12OEWECS2CS16264D0D1D2D3D4D5D6D71112131516171819D8D9D10D11D12D13D14D15A110A29A38A47A56A65A74A83A925A1024A1121A1223A132RD22WR272620D0D1D2D3D4D5D6D71112131516171819D0D1D2D3D4D5D6D7A110A29A38A47A56A65A74A83A925A1024A1121A1223A132RD22WR27A02620a10A0A1A2A3A4A5A6A7A8A9A10A11A12OEWECS2CS16264a11A0A1A2A3A4A5A6A7A8A9A10A11A12OEWECS2CS16264D0D1D2D3D4D5D6D71112131516171819D8D9D10D11D12D13D14D15D0D1D2D3D4D5D6D71112131516171819D0D1D2D3D4D5D6D7DENALE1718332322NMIINTRMN/MXTESTREADY1921CLKRESET808634BHEALECM/IOA16A17A18A1912345678911DI0DI1DI2DI3DI4DI5DI6DI7OESTBC74LS138(16)ALEBHE828221A02A4ASN74001A4ASN7400a6AD0AD1AD2AD3AD4AD5AD6AD7DENDT/R12345678911A0A1A2A3A4A5A6A7OET8286a7AD81AD92AD103AD114AD125AD136AD147AD158DENDT/R911A0A1A2A3A4A5A6A7OET8286B0B1B2B3B4B5B6B71918171615141312D8D9D10D11D12D13D14D15A14B0B1B2B3B4B5B6B71918171615141312D0D1D2D3D4D5D6D7BHEa12A1A2A3A4A5A6A7A8A9A10A11A12A1332SN7400109876543252421232A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPP2764a13A1A2A3A4A5A6A7A8A9A10A11A12A131098765432524212322022271A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPP276465SN7400D0D1D2D3D4D5D6D71112131516171819D8D9D10D11D12D13D14D15A110A29A38A47A56A65A74A83A925A1024A1121A1223A13220RD22271D0D1D2D3D4D5D6D71112131516171819D0D1D2D3D4D5D6D7A110A29A38A47A56A65A74A83A925A1024A1121A1223A13220RD22271a14A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPP2764a15A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPP2764D0D1D2D3D4D5D6D71112131516171819D8D9D10D11D12D13D14D15D0D1D2D3D4D5D6D71112131516171819D0D1D2D3D4D5D6D733BA19A1B20RD22271A16NOTRDA3B4 AATitleSizeCDate:File:12345NumberRevision1-Dec-2008 H:\\ZY\\homework1.DdbSheet of Drawn By:6解:

A 19 A 18 A 17 A16 A 15 A 14 A13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A0

8.2 CPU响应中断的条件是什么?简述中断处理的过程。 答:

CPU响应中断的条件: 1.外设请求

2.中断接口未屏蔽 3.中断允许 中断处理过程 1.取类型号

2.标志寄存器入栈 3.TF=IF=0(关中断)

4.CS、IP入栈(保护断点) 5.查找入口地址→ CS、IP

6.恢复有关寄存器内容(IP 、CS 、PSW)

8.8 假定中断类型号15的中断处理程序的首地址为ROUT15,编写 主程序中为建立一个中断向量的程序。 解:

Rout15: .

mov al,15

mov ah,35h ;利用DOS功能35H号 int 21h ;获取原15号中断向量 Push es ;保存段基地址 Push bx ;保存偏移地址

Push ds ; 保存原数据段基地址 mov dx,offset rout15 ;取中断程序偏移地址

mov ax,seg rout15 ; 取中断程序段地址 mov ds,ax mov al,15 mov ah,25h int 21h pop ds

Pop dx ;恢复原中断向量

Pop ds mov al,15 mov ah,25h int 21h Ret .

. iret

8.15 某系统中有3片8259A级联使用,1#片为8259A主片,2#片为8259A从片,从片接入8259A主片的IR2和IR5端,并且当前8259A主片的IR3及两片8259A从片的IR4各接有一个外部中断源。中断类型基号为80H、 90H 、A0H,中断入口段基址在2000H,偏移地址分别为1800H、 2800H、3800H ,主片8259A的端口地址为CCF8H、CCFAH。一片8259A从片 的端口地址为FFE8H、FFEAH,另一片8259A从片的端口地址为FFECH、FFEEH,中断采用电平触发,完全嵌套工作方式,普通EOI结束。 (1)画出硬件连接图; (2)编写初始化程序。 解: (1)硬件连接图

DSEG SEGMENT

D_BUF DB 8 DUP(?) DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG ,ES:DSEG MAIN PROC

MOV AX,DSEG MOV DS,AX MOV ES,AX MOV CX,8 CLD

MOV AL,10011001B

MOV DX,3C3H ;8255初始化 OUT DX,AL

MOV BL,00H ;模拟通道号 LEA DI,DATA

NEXT1: MOV DX,3C2H ;C口 MOV AL,BL OUT DX,AL

MOV DX,3C3H ;指向控制口

MOV AL,00000111B ;PC3置1 OUT DX,AL

MOV AL,00000110B OUT DX,AL MOV DX,3C2H A1: IN AL,DX TEST AL,80H JNZ A1

A2: IN AL,DX TEST AL,80H JZ A2

MOV DX,3C0H IN AL,DX STOSB INC BL

LOOP NEXT1 INT 20H MAIN ENDP CSEG ENDS END

本文来源:https://www.bwwdw.com/article/ofk2.html

Top