微型计算机原理及应用 课后习题答案(部分)

第二章 Intel 8086/8088微处理器

12.在8086/8088系统中怎样用16寄存器实现对20位物理地址存贮单元寻址?
13.什么是逻辑地址?什么是物理地址?有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的的实际地址PA

逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序中出现的地址 都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。
14.指出 8086/8088系统中8284A、8282/8283、8286/8287,、8288几个芯片的作用
简述8086系统中8284A时钟发生器、8282/8283地址锁存器、8286/8287总线收发器、8288总线控制器的作用

答:8284A时钟发生器提供一个频率固定的时钟脉冲信号。
8282/8283地址锁存器:对地址等需要锁存的信号进行锁存。
8286/8287总线收发器:用来对数据信号进行驱动和数据收发。
8288总线控制器:控制外部总线的操作,替代CPU的部分总线控制器功能,产生并发送总线控制信号,提供总线控制的能力。
15.8086/8088寻址IO端口时,使用多少地址总线?最多可访问()个字节端口?在IBM PC/XT系统中实际使用多少条地址线对I/O端口进行寻址?
16;64k;10;
8086中,CPU实际利用哪几条地址线来访问I/O端口?最多能访问多少个端口?
访问内存时,地址为A0-A19,共20位,寻址能力为1MB;
访问I/O时,地址为A0-A15,共16位。此时A16-A19为 0。 ____
16.在8086/8088中断响应过程中,CPU向8259A发出的两个INTA 信号分别起什么作用?
当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0;
当8259A接收到第二个/INTA有效的负脉冲后,就将其中断类型号送入数据总线。

8086CPU使用()根地址线访问I/O端口,最多可访问()个字节端口,使用()根地址线访问存储单元,最多可以访问()个字节单元。
参考答案:16;64k;20;1M

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

4.设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500H,则1.下一条带执行指令的物理地址为多少? 当前栈顶的物理地址为多少? 3.[BX]代表的存储单元的物理地址为多少?4…[BP]代表的 存储单元的物理地址为多少?5.ES:[BX+SI]代表的存储单元的物理地址为多少?
1.下一条要执行指令的物理地址为:1000H10H+100H=10100H
2,栈顶物理地址=SS
10H+SP=40200H;
3.[BX]代表的存储单元的物理地址=DS10H+BX=20300H;
4.[BP]代表的存储单元的物理地址=SS
10H+BP=40400H;
5.ES:[BX+SI]代表的存储单元的物理地址=ES*10H+BX+SI=30800H

5.试根据以下要求,分别写出相应的汇编语言指令。

  1. 用寄存器BX和SI作为基址变址寻址方式把存储器中的一个字送到DX寄存器。
  2. )以寄存器 BX 和偏移量 VALUE 作为寄存器相对寻址方式把存储器中的一个字和 AX 相加,把结果送回到那个字单元。
  3. 将BH的高四位与低四位互换。
  4. 测试bx的第6,7,8,12,13位是否同时为0
  5. 将存放了0到9的数值的DL寄存器中的内容转化为相应的‘0’到‘9’的字符。**

解答:1.MOV DX , [BX][SI]
2. ADD VALUE[BX],AX
3. MOV  CL,4       
ROR BH,CL;或者ROL BH,CL;
4. TEST  BX,31C0H;0011 0001 1100 0000B
5. ADD  DL,30H  ;或者OR DL,30H

6.写出清除bx寄存器的多种方法并比较。(要求单指令实现)

7.分别用存储器的5种寻址方式实现将以VAR为首址的第3个字(注意:从第0个),送AX的指令序列。

8.指出下列指令错误的原因:
1)MOV  CL,300    ;300超过字节数据表示范围
9.试着不计较以下几条指令的功能。

第四章MASM汇编语言基础

6.指出下列每一小题中的伪指令表达的操作哪些是错误的?错误在哪里?  
(1)DATA   DB   375
1个字节最多能够表示256

(2)SEGMENT DATA
        …
         ENDS DATA
书写格式错误
DATA SEGMENT
DATA ENDS

(3)COUNT EQU 100
         COUNT EQU 10
不可以用EQU给一个变量重复赋值

(4)MAIN PROC
          …
         END
过程结束标志,应该有个MAIN

(5)ARRAY DW 10 DUP(?)
         …
        JMP ARRAY
ARRAY是变量,JMP不能跳到ARRAY处

第五章  汇编程序设计

3、编程实现两个字节变量相乘送字变量的程序。 
答:DATA  SEGME

4、编程实现从键盘接收两位十六进制数并将其转化为等值的十进制数显示出来(如输入7CH=124,要求至少设计一个子程序)
5、编程实现三个变量值的排序(分别用无符号数和有符号数处理)。 
答:实现A、B、C三个变量从小到大排序的程序如下。 
DATA  SEGMENT
     A  DB  l2H 
     B  DB  34H 
     C  DB  23H
 DATA ENDS 
 CODE  SEGMENT  
 ASSUME CS:CODE,DS:DATA 
 START:MOV  AX,DATA  
        MOV  DS,AX     
        MOV  AL,A
        CMP  AL,B
        JBE  NEXT1      ;无符号,有符号用JLE
        XCHG  AL,B
        MOV  A,AL
 NEXT1: CMP   AL,C
         JBE   NEXT2      ;无符号,有符号用JLE
         XCHG   AL,C
         MOV   A,AL
 NEXT2: MOV   AL,B
       CMP   AL,C
       JBE   NEXT3      ;无符号,有符号用JLE
       XCHG   AL,C
       MOV   B,AL
 NEXT3: MOV   AH, 4CH
         INT   21H
 CODE   ENDS
      END   START
6、编程实现任意个有符号字节数据之和(和要求用字变量存放)。 
答:DATA&
7,编程实现从VAR带符号数据区中找出最大数。
DATA SEGMENT
     VAR    DB -2,2,1,3,4,5,6,9
     MAX   DB ?
DATA ENDS
CODE SEGMENT
     ASSUME   CS:CODE,DS:DATA
BEGIN: MOV AX,CODE
        MOV   DS,AX
        MOV   CX,MAX-VAR
        LEA   BX,VAR
        MOV   AL,[BX]
        LOP: INC BX
        CMP   AL,[BX]
        JA   A1
        MOV   AL,[BX]
A1: LOOP LOP
        MOV    DL,AL
        MOV   AH,02H
        INT    21H
        MOV   AH,4CH
        INT   21H
CODE ENDS
        END    BEGIN

第六章  总线技术与I/O接口基础、

1.什么是总线?微型计算机的总线通常分为哪几类?

5.RS-232C总线的逻辑电平是如何定义的?它与TTL电平之间如何转换?

11.CPU和外设之间传送数据的方式有哪三种?试着比较他们各自的优缺点和适合场合。
CPU与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA方式。

其中程序方式又可分为无条件传送方式和条件传送方式两种方式。在CPU外设传送数据不太频繁的情况下一般采用无条件传送方式。

在CPU用于传输数据的时间较长且外设数目不多时采用条件传送方式。在实时系统以及多个外设的系统中,为了提高CPU的效率和使系统具有实时性能,采用中断传送方式。

如I/O设备的数据传输效率较高,那么CPU和这样的外设进行数据传输是,即使尽量压缩程序查询方式和中断方式中的非数据传输时间,也仍然不能满足要求。

这是因为在这两种方式下,还存在另外一个影响速度的原因,即它们都是按字节或字来进行传输的。为了解决这个问题,实现按数据块传输,就需要改变传输方式,这就是直接存储器传输方式,即DMA方式。
12.I/O端口的编址方式有那两种?它们分别有什么缺点?IBM, PC/XT 中 I/O端口采用哪种编址方式?
1.独立编址(专用的I/O端口编址)----存储器和I/O端口在两个独立的地址空间中
  (1)优点:I/O端口的地址码较短,译码电路简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计
  (2)缺点:需要有专用的I/O指令,程序设计的灵活性较差
2.统一编址(存储器映像编址)----存储器和I/O端口共用统一的地址空间,当一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间
  (1)优点:不需要专用的I/O指令,任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,程序设计比较灵活;由于I/O端口的地址空间是内存空间的一部分,这样,I/O端口的地址空间可大可小,从而使外设的数量几乎不受限制
  (2)缺点:I/O端口占用了内存空间的一部分,影响了系统的内存容量;访问I/O端口也要同访问内存一样,由于内存地址较长,导致执行时间增加
微机原理
3. IBMPC及其兼容机主要使用独立编址方式,采用了一个独立的I/O地址空间对控制设备中的寄存器进行寻址和访问

第七章 并行接口与串行接口 、

2.可编程并行接口芯片8255A有哪些控制字?它们的格式及各位含义是怎样规定的?

4.某8086系统中使用一片8255A,其端口地址为90H,92H,94H,96H,欲使A口工作方式在方式1,输入,B口工作方式0,输出,下C口工作方式0.输出。试对8255A初始化编程。
https://www.docin.com/p-863216861.html

5.用端口C置位/复位控制字使8255A的C5为高电平,C1为低电平。写出8086的指令语句。

6.按下述要求用所提供的简单外设和接口芯片 设计一个简单的微机应用系统。简单外设:发光二极管8只,拨动开关1个,8255A芯片,8088CPU。设计要求

第十章 定时/计数器及接口

5.8253内部有几个独立的定时/计数器?是多少位的?它们的CLK端和GATE端的作用分别是什么?
有3个独立的16 减法计数器,CLK0-2:计数器时钟,输入。用于输入定时脉冲或脉冲信号。GATE0-12:门控信号,输入,用于控制计数器的启动计数和停止计数的操作。
6.现用8253的通道0对外界事件进行计数,要求每计到100时产生一个中断请求信号,分别是什么?

  1. 画出该8253的外部硬件链接图;
  2. 对该8253进行初始化。

复习资料转载:.

https://wenku.baidu.com/view/0d030224f424ccbff121dd36a32d7375a417c6cc.html
https://wenku.baidu.com/view/6fb03a44370cba1aa8114431b90d6c85ed3a8802.html.

8253是一个古老的定时/计数器芯片,在早期计算机系统中常用于生成各种定时信号。为了实现每10毫秒产生一次中断,我们需要设置它的工作模式、计数初值以及配置适当的控制字寄存器。 首先,确保8253处于计数器模式(一般计数器或模式选择位MSB设为0)。对于通道1,通常选择模式14(单次脉冲发生器),因为在这种模式下,计数从内部时钟频率减到0然后立即停止计数并产生中断。 以下是具体的步骤: 1. **选择工作模式**: - 通道1的控制寄存器(CR1)的第7位(M1)设置为0,选择计数模式。 2. **设定计数初值**: - 计数器需要计数到10ms * 1MHz = 100000次才能触发中断。将这个数值转换成二进制补码形式,填充到计数寄存器(IR1)中。由于8253计数器是8位的,所以我们需要一个8位数来表示100000,即0x6400(十六进制)。 ``` IR1 = 0x00 (低位) | 0x64 (高位) ``` 3. **启用中断**: - CR1的第2位(INT)设置为1,打开中断请求功能。 - 第1位(TRIG)保持为0,我们不需要外部触发。 4. **锁存控制**: - CR1的第4位(LSR)和第3位(R)可以设置为0,以便在每次计数结束后立即锁存结果并发送中断请求。 5. **加载初始计数值**: - 将计算好的计数初值写入计数寄存器。 最后,你需要确保8253的工作方式已经通过总线通信写入了相应的控制寄存器。完成这些设置后,8253会按照配置定期产生中断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值