微机原理课后答案Word文档下载推荐.docx

上传人:b****2 文档编号:5803449 上传时间:2023-05-05 格式:DOCX 页数:20 大小:99.25KB
下载 相关 举报
微机原理课后答案Word文档下载推荐.docx_第1页
第1页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第2页
第2页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第3页
第3页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第4页
第4页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第5页
第5页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第6页
第6页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第7页
第7页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第8页
第8页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第9页
第9页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第10页
第10页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第11页
第11页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第12页
第12页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第13页
第13页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第14页
第14页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第15页
第15页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第16页
第16页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第17页
第17页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第18页
第18页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第19页
第19页 / 共20页
微机原理课后答案Word文档下载推荐.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理课后答案Word文档下载推荐.docx

《微机原理课后答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课后答案Word文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。

微机原理课后答案Word文档下载推荐.docx

8086/8088CPU内部设置了4个16位段寄存器,它们分别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES,由它们给出相应逻辑段的首地址,称为“段基址”。

  控制寄存器:

含指令指针IP及标志位寄存器FR。

    IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。

    标志寄存器FR用来存放运算结果的特征

  3.58086的存储器采用什么结构?

8086的存储器采用分体结构。

1M的存储空间分成两个存储体:

偶地址存储体和奇地址存储体,各为512K字节。

  3.78086系统中的堆栈操作是按什么原则进行的?

堆栈操作的原则是后进先出。

  4.3存储器的地址译码有几种方式?

各自的特点是什么?

常用的存储器地址译码有两种方式,即单译码和双译码方式。

  单译码方式是一个“N中取1”的译码器,译码器输出驱动N根字线中的一根,每根字线由M位组成。

若某根字线被选中,则对应此线上的M位信号便同时被读出或写入,经输出缓冲放大器输出或输入一个M位的字。

主要用于小容量的存储器。

  双译码方式采用的是两级译码电路。

当字选择线的根数N很大时,N=2p中的p必然也大,这时可将p分成两部分,如:

N=2p=2q+r=2q×

2r=X×

Y,这样便将对N的译码分别由X译码和Y译码两部分完成。

从而大大减少了选择线的数目。

  4.4某RAM芯片的存储容量为1024×

8位,该芯片的外部引脚应有几条地址线?

几条数据线?

若已知某RAM芯片引脚中有13条地址线,8条数据线,那么该芯片的存储容量是多少?

该芯片的外部引脚应有10条地址线,8条数据线。

  RAM芯片引脚中有13条地址线,8条数据线,那么该芯片的存储容量是8K×

8位。

  4.5用Intel21141K×

4位的RAM芯片组成32K×

8位的存储器,需要多少块这样的芯片?

需要64块。

  注:

扩展时需要的芯片数量可以这样计算:

要构成一个容量为M×

N位的存储器,若使用p×

k位的芯片(p<

M,k<

N),则构成这个存储器需要(M/p)×

(N/k)个这样的存储器芯片。

  4.6利用2764芯片(EPROM,8K×

8位)并采用74LS138译码器进行全译码,在8086系统的最高地址区组成32KB的ROM,请画出这些芯片与系统总线连接的示意图。

5.1试出指令MOVBX,3040H和MOVBX,[3040H]有什么不同?

1、寻址方式不同:

立即数寻址和直接寻址。

2、运行结果不同:

  MOVBX,3040H;

BX=3040H

  MOVBX,[3040H];

将DS段3040H和3041H的内容送BX

  5.2指出下列指令是否有错,并说明理由。

(1)MOV[DI],[SI];

错,内存单元之间不能直接进行数据传送

  

(2)MOVCS,AX;

错,CS不能做目的操作数

  (3)MOV1200,AX;

错,立即数不能做目的操作数

  (4)MOVDS,CS;

错,段寄存器之间不能互相传送

  (5)PUSHFLAG;

  (6)POPCS;

  (7)MOVCL,AX;

错,源、目的操作数长度不一致

  (8)MOV[5000H],[1000H];

  5.3在8086中,堆栈操作是字操作还是字节操作?

已知SS=1050H,SP=0006H,AX=1234H,若对AX执行压栈操作(即执行PUSHAX);

试问AX的内容存放在何处?

堆栈操作是字操作。

  入栈时“先减后压”(SP先减2,再压入操作数),执行压栈操作后AL的内容存放在10504H,AH的内容存放在10505H。

 

  5.4假如要从200中减去AL中的内容,用SUB200,AL对吗?

如果不对,应采用什么方法?

不对,立即数不能作为目的操作数。

先把立即数传送到一个存储器或寄存器当中。

  例如:

MOVBL,200

  SUBBL,AL

  或:

NEGAL

  ADDAL,200

  5.5编程求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放内存(2800H)单元中。

  解:

CMPAX,BXCMPAX,BXCLC

  JAPT1JAPT1SUBAX,BX

  SUBBX,AXXCHGAX,BXJCPT1

  MOVDX,2800HPT1:

SUBAX,BXMOVDI,2800H

  MOVDX,BXMOV[2800H],AXMOV[DI],AX

  HLTHLTHLT

  PT1:

SUBAX,BXPT1:

SUBBX,AX

  MOVDX,2800HMOVDI,2800H

  MOVDX,AXMOV[DI],BX

  HLTHLT

  5.6若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元,将所求的和存放在2000H开始的内存单元中,试编制程序。

     MOVDI,2000H

     LEASI,3000H

     MOVAX,[DI]

     MOVDX,[DI+2]

     ADDAX,[SI]

     ADCDX,[SI+2]

     MOV[DI],AX

     MOV[DI+2],DX

  5.7用两种方法写出从88H端口读入信息的指令,再用两种方法写出从44H端口输出数据56H的指令。

  方法一:

INAL,88H方法二:

MOVDX,0088H

  INAX,DX

  

  MOVAL,56HMOVAL,56H

  OUT44H,ALMOVDX,0044H

  OUTDX,AL

  6.12指出以下四条指令的作用(HEX为数据段的一个变量名)

   ⑴MOVBX,HEX;

将变量HEX的内容传送到BX寄存器

   ⑵LEABX,HEX;

取变量HEX的偏移地址送BX

   ⑶MOVBX,OFFSEGHEX;

BX指向变量HEX的偏移地址

   ⑷MOVBX,SEGHEX;

将变量HEX所在段的段地址传送到BX

   

  6.13下面是变量定义伪指令,

 DATASEGMENT

 BUFDW3DUP(5,2DUP(8))

 CEDDB‘Welcometoyou’,ODH,OAH,‘$’

 ADDRDWBUF

 COUNTEQU$-CED

 DATAENDS

 问:

 ⑴按内存单元存放的先后次序,按字节写出数据段中的数据。

05H,00H,08H,00H,08H,00H,

  05H,00H,08H,00H,08H,00H,

  05H,00H,08H,00H,08H,00H,

  57H,65H,6CH,63H,6FH,6DH,65H,20H,74H,6FH,20H,79H,6FH,75H,

  0DH,0AH,24H,00H,00H

 ⑵说明对BUF,CED,ADDR等变量施行TYPE,LENGTHSIZE运算符后,其结果分别为多少?

  TYPEBUF=2LENGTHBUF=3SIZEBUF=6

  TYPECED=1LENGTHCED=1SIZECED=1

  TYPEADDR=2LENGTHADDR=1SIZEADDR=2

 ⑶COUNT的值为多少?

19

  6.17编写一个将16位二进制数转化为四位十六进制数的程序,并将十六进制数的各位显示出来。

注:

答案中给了一个假定的16位二进制数。

DATASEGMENT

  BINDW1001110101111011B

  HEXASCDB4DUP(20H)

  DB‘$’

  DATAENDS

  STACK1SEGMENTPARASTACK

  DW20HDUP(0)

  STACKlENDS

CODESEGMENT

  ASSUMECS:

CODE,DS:

DATA,SS:

STACKl

  BINHEX:

MOVCH,4;

十六进制数的位数

  MOVBX,BIN;

取待转移数据

  MOVDI,OFFSETHEXASC;

取存放ASCII码首地址

  CONV1:

MOVCL,4

  ROLBX,CL;

取4位二进制数

  MOVAL,BL

  ANDAL,0FH

  CMPAL,09H;

是0-9吗?

  JBEASCI;

是,转移

  ADDAL,07H;

是A-F,先加07H

  ASCI:

ADDAL,30H;

加30H

  MOV[DI],AL;

存结果

  INCDI;

修改指针

  DECCH

  JNECONVI;

计数未完,继续

  LEADX,HEXASC

  MOVAH,09H

  INT21H

  CODEENDS

  ENDBINHEX

  很多同学的答案:

  ADW4

  XDW(16位二进制数)

  YDB4DUP(?

  ……

  START:

MOVCX,A

  LEADI,Y

  AGAIN:

MOVBX,X

  PUSHCX

  DECCX

  MOVING:

SHRBX,4

  LOOPMOVING

  POPCX

  ANDBL,0FH

  CMPBL,09H

  JGDAYU

  ADDBL,30H

  JMPXIAOYU

  DAYU:

ADDBL,37H

  XIAOYU:

MOV[DI],BL

  INCDI

  LOOPAGAIN

  LEADX,Y

  MOVAH,09H

  ENDSTART

  7.1名词解释

(1)时钟周期:

一个时钟脉冲的时间长度,CPU的时钟频率的倒数,也称T状态。

(2)总线周期:

CPU中,BIU完成一次访问存储器或I/O端口操作所需要的时间,称作一个总线周期,也称机器周期(MachineCycle)。

(3)指令周期:

执行一条指令所需的时间称为指令周期。

(4)等待周期:

在T3和T4之间插入的周期。

(4)

(5)空闲状态:

CPU不执行总线周期时的状态。

(6)时序:

计算机操作运行的时间顺序。

  8.5简述CPU与外设以查询方式传送数据的过程。

现有一输入设备,其数据端口的地址为FEE0H,并从端口FEE2H提供状态,当其D0位为1时表明输入数据准备好。

试编写采用查询方式进行数据传送的程序段,要求从该设备读取64个字节并输入到从2000H:

2000H开始的内存中。

(程序中需加注释)

  P144~145页。

  MOVAX,2000H

  MOVDS,AX;

设定段基址

  MOVDI,2000H;

目的地址送DI

  MOVCX,64;

字节数

  READ:

MOVDX,0FEE2H;

指向状态口

  INAL,DX;

读入状态位

  TESTAL,01H;

数据准备好否?

  JZREAD;

否,循环检测

  MOVDX,0FEE0H;

指向数据口

已准备好,读入数据

  MOV[DI],AL;

存到内存缓冲区中

  INCDI;

修改地址指针

  LOOPREAD;

未传送完,继续传送

  MOVCX,64

  NEXTIN:

INAL,0FEE2H

  TESTAL,01H

  JZNEXTIN

  INAL,0FEE0H

  MOVBX,2000H

  MOV[200H][BX],AL

  INCBX

  LOOPNEXTIN

  8.6简述中断传送的特点。

  中断传送的显著特点是:

能节省大量的CPU时间,实现CPU与外设并行工作,提高计算机的使用效率,并使I/O设备的服务请求得到及时处理。

I/O主动,CPU被动。

  9.3设8259A应用在8086系统,采用电平触发方式,中断类型号为60H-67H,采用特殊全嵌套方式,中断非自动结束,非缓冲工作方式,端口地址为63H和64H,写出其初始化程序。

  ICW1=00011011B=1BH,ICW2=01100000B=60H,ICW4=00010101B=15H

  ICW1必须写入到偶端口地址

  MOVAL,1BH

  OUT64H,AL

  MOVAL,60H

  OUT63H,AL

  MOVAL,15H

  9.4设8259A级连应用于8086系统,从片的中断请求线接于主片的IR7输入端,主片端口地址为64H和66H,从片端口地址为84H和86H,主片IR0的中断向量号为50H,从片IR0的中断向量号为58H,主片工作方式同9.3,从片工作方式采用缺省工作方式,编写初始化程序,并画出硬件连接电路图。

  64H=01100100B84H=10000100B

  66H=01100110B86H=10000110B

主片:

ICW1=00011001B=19HICW2=01010000B=50HICW3=10000000B=80HICW4=00010101B=15H

从片:

ICW1=00011001B=19HICW2=01011000B=58HICW3=00000111B=07HICW4=00000001B=01H

 

  10.3试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字寄存器I/O地址依次为40H~43H。

(因为地址小于256,所以可以不用DX。

  

(1)使计数器1工作方式0,仅用8位二进制计数,计数初值为128。

  计数器1的通道地址为:

41H;

128=80H

  控制字:

01010000B=50H

  MOVAL,50H

  OUT43H,AL

  MOVAL,80H

  OUT41H,AL

  

(2)使计数器0工作方式1,按BCD码计数,计数值为3000。

  计数器0的通道地址为:

40H;

3000的BCD码为3000H控制字:

00110011B=33H

  MOVAL,33H

  OUT43H,AL

  MOVAL,00H

  OUT40H,AL

  MOVAL,30H

  (3)使计数器2工作方式2,计数值为02F0H。

计数器2的通道地址为:

42H

10110100B=B4H

  MOVAL,B4H

  MOVAL,F0H

  OUT42H,AL

  MOVAL,02H

  10.4设8253计数器0~2和控制字寄存器的I/O地址依次为F8H~FBH,说明如下程序的作用。

     MOVAL,33H;

00110011B计数器0,先低位后高位,方式1,BCD码计数

     OUT0FBH,AL;

写控制字

     MOVAL,80H;

置计数初值低位字节80H

     OUT0F8H,AL;

先写低位字节

     MOVAL,50H;

置计数初值高位字节50H

   OUT0F8H,AL;

写高位字节

  程序的作用为:

使计数器0工作在方式1,用BCD码计数,计数初值为5080。

  10.5设8253的通道0~2和控制端口的地址分别为300H、302H、304H和306H,又设由CLK0输入计数脉冲频率为2MHz。

要求通道0输出1.5kHz的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,通道2每秒钟向CPU发50次中断请求。

试编写初始化程序,并画出硬件连线图。

  通道0:

输出方波则工作在方式3;

计数初值为n0=2MHz/1.5kHz≈1334=536H(1.499kHz)

  控制字为:

00110110B=36H

通道1:

输出序列负脉冲则工作在方式2;

计数初值为n1=1.5kHz/300Hz=5=05H

控制字为:

01010100B=54H

通道2:

每秒钟向CPU发50次中断请求则工作在方式2;

计数初值为n2=300/50=6=06H

10010100B=94H

初始化程序:

MOVDX,306H

MOVAL,36H

OUTDX,AL

MOVDX,300H

MOVAL,05H

  OUTDX,AL

  11.3编程使8255A的PC5端输出一个负跳变。

如果要求PC5端输出一个负脉冲,则程序又如何编写?

  设端口地址分别为:

B0HB2HB4HB6H。

系统复位后8255A的所有端口都被置为输入。

10000000B=80H

  输出负跳变:

  MOVAL,80H

  OUTB6H,AL

  MOVAL,0BH

  ……

  MOVAL,0AH

  输出负脉冲:

  11.5设一工业控制系统,有四个控制点,分别由四个开关K0~K3控制,控制点的状态用发光二极管L0~L3表示,开关打开则对应的发光二极管亮,表示该控制点运行正常;

开关闭合则对应发光二极管不亮,说明该控制点出现故障。

画出系统的结构框图并编写程序。

B0HB2HB4HB6H

  A口、B口都工作在方式0,A口输入,B口输出,C口未用

10010000B=90H

  MOVDX,0B6H;

控制字寄存器

MOVAL,10010000B;

控制字

OUTDX,AL;

写入控制字

  TEST:

MOVDX,0B0H;

指向A口

INAL,DL;

从A口读入开关状态

MOVDX,0B2H;

指向B口

OUTDX,AL;

B

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2