微机原理及应用实验报告

时间:2024.3.31

      

 

实   验  报  告

文本框: 微机原理及应用课 程 名 称

实 验 名 称

实 验 日 期

学 生 专 业

学 生 学 号

学 生 姓 名

教 师 姓 名

成      绩

南京理工大学机械工程学院

   实验三  8254定时/计数器应用实验

一、实验目的

1、掌握8254的工作方式及应用编程;

2、掌握8254典型应用电路的接法。

二、实验设备

    PC机一台,TD-PIE实验装置一套,示波器一台。

三、实验内容

    1、计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1 +’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。

    2、定时应用实验。编写程序,应用8254的定时功能,产生一个1 ms的方波。

1、计数应用实验

编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK 1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符‘M’。

实验步骤:

(1) 实验接线如图4-2所示;

(2) 编写实验程序,经编译、链接无误后装入系统;

(3) 运行程序,按动KK1+产生单次脉冲,观察实验现象;

(4) 改变计数值,验证8254的计数功能。


实验程序清单:

A8254   EQU  06C0H      ;8254计数器0的端口地址

B8254   EQU  06C2H       ;8254计数器1的端口地址

C8254   EQU  06C4H       ;8254计数器2的端口地址

CON8254 EQU  06C6H      ;8254控制字寄存器的端口地址

SSTACK  SEGMENT  STACK

DW 32 DUP(?)

SSTACK  ENDS

CODE  SEGMENT

ASSUME CS:CODE, SS:SSTACK

START :  PUSH DS

MOV  AX, 0000H

MOV  DS,AX

MOV  AX,OFFSET  IRQ7

MOV  DS:3CH,AX

MOV  AX,SEG  IRQ7

MOV  DS:3EH,AX

POP  DS

CLI

POP DS

;初始化主片8259,其端口地址为20H和21H

MOV  AL,11H

OUT  20H,AL                       ;ICW1

MOV  AL,08H

OUT  21H,AL                       ;ICW2

MOV  AL,04H

OUT  21H,AL                       ;ICW3

MOV  AL,01H

OUT   21H,AL                     ;ICW4

MOV  AL,6FH                      ;OCW1

OUT  21H,AL

;初始化8254

MOV  DX,CON8254

MOV  AL,  11H                       ;计数器0,方式0

OUT  DX,AL

MOV  DX,A8254

MOV  AL,  04H                ;给计数器0送初值

OUT  DX,AL

STI

AA1:       JMP  AA1

;中断服务程序

IRQ7:       MOV  AX,014DH

INT  10H                                             ;显示字符M

MOV  AX,0120H

INT  10H

MOV  AL,  20H  

OUT    20H   ,AL                                  ;中断结束命令

IRET

CODE        ENDS

              END   START

2、定时应用实验

    编写程序,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,OUT0输出波形为1 ms方波。

实验步骤:

(1)接线图如图4-3所示;

(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统;

(3)运行实验程序,用示波器测试OUT0输出,验证程序功能。


实验程序清单

A8254   EQU  06C0H

B8254   EQU  06C2H

C8254   EQU  06C4H

CON8254 EQU  06C6H

SSTACK  SEGMENT  STACK

DW 32 DUP(?)

SSTACK  ENDS

CODE  SEGMENT

ASSUME CS:CODE

START:MOV  DX,CON8254                     

        MOV  AL,  37H                  ;8254控制字,计数器0,方式3

        OUT   DX,AL

        MOV  DX,A8254

MOV  AL,  00H                   ;给计数器0送初值

OUT   DX,AL

MOV  AL,  10H 

OUT   DX,AL

AA1: JMP  AA1

CODE   ENDS

         END  START

六、思考题

1、在将计数初值赋给8254后,马上就可以启动并进行定时或计数吗?

答:不是,计数的开始还得看门控信号,在写入初值后若门控信号有效(软件触发为高电平有效,硬件触发为上升沿有效)则开始计数,否则等待有效门控信号的到来才开始计数

2、若CLK0输入1.925MHz的时钟,能否在OUT0实现输出30ms的定时脉冲?

答:30*1925=57750<65535 所以用二进制写初值方式可以实现,若用十进制方式写初值则不能实现(十进制最大计数初值为0,即10000)

实验四  8255并行接口实验

一、实验目的

    1、学习并掌握8255的工作方式及其应用;

    2、掌握8255典型应用电路的接法。

二、实验设备

    PC机一台,TD-PITE实验装置一套。

三、实验内容

1、基本输入输出实验。

本实验系统中,8255的端口地址分别为0640H,0642H,0644H以及0646H。编写程序,使8255的A口为输入,接拨动开关,B口为输出,接发光二极管;要求只要开关拨动,发光二极管的显示就发生相应改变。

2、流水灯显示实验。

编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

四、实验原理

文本框: 图5.1  8255内部结构及外部引脚图
    并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A, B, C三个并行接口,用+5 V单电源供电,能在以下三种方式下工作:方式0——基本输入/输出方式、方式1——选通输入/输出方式、方式2——双向选通工作方式。8255的内部结构及引脚如图5-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图5-2所示。

五、实验步骤

1、基本输入输出实验

    本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:


      (1) 实验接线图如图5-3所示,按图连接实验线路图;

      (2) 编写实验程序,经编译、连接无误后装入系统;


      (3) 运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

实验程序清单

SSTACK  SEGMENT  STACK

          DW  32  DUP (?)

SSTACK  ENDS

CODE    SEGMENT

                ASSUME  CS:CODE

START:  MOV  DX,0646H

MOV  AL,  90H                     ;8255的工作方式控制字

OUT  DX,AL

AA1:    MOV  DX,0640H

IN  AL,DX

CALL  DELAY

MOV  DX,0642H

OUT  DX,AL

JMP  AA1

;延时子程序

DELAY:  PUSH  CX

MOV  CX,0F00H

AA2:     PUSH  AX

POP  AX

LOOP  AA2

POP  CX

RET

CODE     ENDS

           END  START

2、流水灯显示实验

    使8255的A口和B口均为输出,数据灯D7àDO由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图5-5所示。实验步骤如下所述:

      (1) 按图5-5连接实验线路图;

      (2) 编写实验程序,经编译、链接无误后装入系统;

      (3) 运行程序,观察LED灯的显示,验证程序功能;


      (4) 自己改变流水灯的方式,编写程序。

实验程序清单

SSTACK  SEGMENT  STACK

          DW  32  DUP (?)

SSTACK  ENDS

CODE    SEGMENT

                ASSUME  CS:CODE

STRAT:  MOV  DX,0646H

          MOV  AL,80H

          OUT  DX,AL

          MOV  BX,0180H

AA1:    MOV  DX,0640H

          MOV  AL,BL

          OUT  DX,AL

          CALL  DELAY

          MOV  DX,0642H

          MOV  AL,BH

          OUT  DX,AL

          CALL  DELAY

          ROR  BL,1

          ROL  BH,1

          JMP  AA1

DELAY:  PUSH  CX

MOV  CX,0F00H

AA2:     PUSH  AX

POP  AX

LOOP  AA2

POP  CX

RET

CODE     ENDS

           END  START


第二篇:微机原理及应用参考答案


参考答案

第一章 计算机中的数制和码制

第二章  计算机概述

一、填空题

1.         8

2.         2

3.         1024

4.         25.5、11001.1、00100101.0101B

5.         1000010B、42H、66H

6.         41.625、29.AH

7.         10001101B

8.         11001001、11001010

9.         -128 ~ +127

10.     系统软件、应用软件

11.    电子管、超大规模集成电路

二、单选题

1.  A         2.  C       3.  D       

4.  C         5.  A       6.  C         

分析简答题

1.         8086 CPU的总线根据其中信息传送的类型可分为几种?哪几种?

:8086 CPU的总线根据其中信息传送的类型可分为三种种,

分别是:数据总线、地址总线和控制总线

2.   写出-25的原码、反码、补码,并将补码转换成十六进制数(设机器字长为8位)。

答:X=-25=-11001B      

X原码:10011001B   

X反码:11100110B   

X补码:11100111B = E7H  

3.   举例说明什么是机器数,什么是真值?

答:将符号数值化了的数称为机器数。

如:-18=-10010B(真值);机器数为:10010010B

第三章  半导体存贮器

一、填空题

1.         ROM、RAM

2.         6个

3.         8、4

二、单选题

1.  A         2.  B       3.  D      4.  B       

5.  C         6.  C       7.  B    

分析简答题

1.         在对存储器芯片进行片选时,全译码方式、部分译码方式和线选方式各有何特点?

答:①全译码方式:存储器芯片中的每一个存储单元对应一个唯一的地址。译码需要的器件多;

  ②部分译码方式:存储器芯片中的一个存储单元有多个地址。译码简单;

  ③线选:存储器芯片中的一个存储单元有多个地址。地址有可能不连续。不需要译码。

四、硬件接口设计题

1.   :(1)

 

      (2) 存储器类型为RAM     总容量为 4K×8            

          地址范围: 0#  2000H-27FFH    

1# 2800H-2FFFH  

2.   :(9分)

(1)      存储器类型:RAM

该系统的存储器容量为:6K×8位(或:6K字节)

(2)      1#芯片的地址范围:1000H ~ 17FFH            

    2#芯片的地址范围:0800H ~ 0FFFH                          

3#芯片的地址范围:0000H ~ 07FFH            

3.   1)1K×4

    2)2K×8或2KB

3)地址分配范围

 第一组 :  A19~ A10   A9   A8  A7   A6  A5   A4  A3  A2   A1  A0

最小地址    0  ~   0    0    0    0    0    0    0    0    0    0    0   00000H~

最大地址    0  ~   0    1    1    1    1    1    1    1    1    1    1   003FFH

第二组:    0  ~   1    0    0    0    0    0    0    0    0    0    0   00400H~

            0  ~   1    1    1    1    1    1    1    1    1    1    1   007FFH

第四章  微型计算机及微处理器的结构和组成

一、填空题

1.         BIU、EU、指令的译码和指令执行

2.         4、16、16、6、20

3.         8、16

4.        1、2

二、单选题

1.  B         2.  B 

分析简答题

1.         8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?

答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、

DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。

2.         8086/8088 CPU内部包含有哪6个专用寄存器?它们的主要功能是什么?

答:有CS、DS、ES、SS、IP、PSW

CS(代码段寄存器):用来存放当前代码段的基地址。

DS(数据段寄存器):用来存放供程序使用的数据的一段存储区的基地址。

ES(附加段寄存器):附加的数据段的基地址,

SS(堆栈段寄存器):堆栈段的基地址。

IP:16位寄存器。指示代码段存储区域中下一条指令的段内偏移量。

PSW:标志寄存器,用来指示微处理器的状态并控制其操作。

3.         8086CPU状态标志位有哪些?说明其符号、名称和含义

:(SF):符号标志位,本次运算结果的最高位为1时,SF=1,否则SF=0

(ZF):全零标志位,本次运算结果的为0时,ZF=1,否则ZF=0

  (AF):辅助进位标志位,本次运算中低4位向最4位有进位或借位时,AF=1,否则AF=0

(PF):奇偶校验标志位,本次运算结果低8位中有偶数个“1”时,PF=1,否则PF=0

  (CF):进位标志位,本次运算中最高位有进位或借位时,CF=1,否则CF=0

(OF):溢出标志位,本次运算过程中产生溢出时,OF=1,否则OF=0

4.   执行下面两个数相加:

        1010 0011 0100 1101

       +  0011 0010 0001 1001

          1101 0101 0110 0110

分析其结果对下列标志位有何影响:(6分)

(SF)=    1        (ZF)=    0        (AF)=    1     

(PF)=    1        (CF)=    0        (OF)=    0    

第五章  8086/8088CPU的引脚功能、系统组成及时序

一、填空题

1.         16、20、分时复用

2.         锁存地址

3.         系统中只有一个处理器,CPU提供全部的控制信号;高电平

4.         FFFF0H

5.         逻辑地址、物理地址

6.         物理地址

7.         段基址、偏移地址、12345H

8.         段寄存器、20

9.         0000H:0400H;0020H:0200H

10.     1M

11.    高8位、低8位


二、单选题

1.  B         2.  B       3.  B       4.  A         5.  B    

6.  C         7.  D       8.  B       9.  A         10.  C 

11. D        12.  A      13.  B      14.  B         15.  C 

分析简答题

1.         8086对存储器的管理为什么采用分段的办法?最大段和最小段的存储空间分别是多大?20位的物理地址是如何形成的?

:8086CPU是一个16位的结构,内部寄存器及数据总线均为16位,16位地址只能寻址64KB空间。无法送出外部所需的20位物理地址。因此采用分段管理办法,来形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。

        最大段:64KB        最小段:16B   

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

2.   简述8086CPU最小工作方式含义。

:8086CPU的最小工作方式是指:系统中只有一个微处理器,即8086CPU,该方式构成的为单机系统,系统中所需要的控制信号全部由CPU提供,实现和存储器及I/O接口电路的连接,无需总线控制器8288的参与。

3.         说明逻辑地址和物理地址的含义,两者之间有何关系?已知逻辑地址3000H:2345H,写出段地址、物理地址、偏移地址。

答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。

物理地址是8086芯片引线送出的20位实际的地址码,用来指出一个特定的存储单元。

物理地址= 段基址*10H+偏移地址

段地址  3000H、偏移地址 2345H、物理地址 3000H*10H+2345H=32345H

4.         计算题:

某微机系统中内存的首地址为3400H,末地址为67FFH,求其内存容量并以K表示。

:内存容量=末地址-首地址+1=67FFH-3400H+1=3400H(字节)=13KB

5.         8086/8088为什么采用地址/数据引线复用技术?

答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。

第六章  8086/8088CPU寻址方式及指令系统

一、填空题

1.         操作码、操作数

2.         00FEH、1000H

3.         最高地址端

4.         0FF2H、0056H

5.         0214H、24514H、0306H、24306H

6.         1、2000H

7.         1

8.         0FFH、00H

9.         DX

二、单选题

1.  A         2.  C       3.  D      4.  A         5.  C    

6.  B         7.  A       8.  B       9.  D        10.

11. B        12.  D      13.  B      14.  C         15.  C 

16. C        17.  D      18.  C      19.  B 

分析简答题

1.         写出至少3种指令,使AX寄存器置零

MOV AX,00     SUB AX,AX     XOR AX,AX     AND AX,00H

2.   用单条指令或程序片段,实现下述功能

(1)XOR AX,0FF00H      OR AX,000FH

(2)MOV CL,4      ROR AL,CL(或ROL AL,CL)

(3)XCHG AX,BX

3.   堆栈存储区由哪两个寄存器管理?简述数据压栈和弹栈的过程。

答:堆栈存储区由两个寄存器管理:堆栈指针(SP)和堆栈段寄存器(SS)。当一个字数据被压入堆栈时,SP首先减2,然后对栈顶存储单元进行16位字的写操作;其高 8位数据被放在SP-1单元中,低8位数据被放在 SP-2单元中。当数据从堆栈中弹出时,低8位从SP单元移出,高8位从SP+1单元移出,然后SP+2。

4.         举例说明与数据有关的寻址方式有哪些?

答:

1、 

2、 

3、立即寻址、寄存器寻址

、直接寻址

、寄存器间接寻址

、寄存器相对寻址

、基址加变址寻址、相对基址加变址寻址;例子略。

5.         输入输出的寻址方式有哪几种?举例说明

答:有两种:直接端口寻址,如 IN AL,05H;

间接端口寻址,如 MOV DX,05H          IN AL,DX

6.   答:MOV指令是将源操作数即内存单元的内容传送到目的操作寄存器中;而LEA为取偏移量指令,它是将源操作数所在内存单元的偏移地址取出送目的寄存器;

MOV AX,TABLE    ;AX=3412H         

LEA AX,TABLE    ;AX=0020H 

7.   分别指出下列指令中的源操作数的寻址方式。

(1)直接寻址

(2)立即寻址

(3)寄存器寻址

(4)基址加变址

(5)相对基址加变址寻址

(6)寄存器相对寻址

(7)寄存器间接寻址

(8)段内间接寻址

(9)直接端口寻址

(10)间接端口寻址

8.   指出下列指令的错误

(1)源、目的操作数长度不匹配        

(2)立即数不能做目的操作数

(3)CS不能做目的操作数

(4)SI、DI不能同时出现在一个[]中    

(5)源、目的操作数长度不匹配

(6)源、目的操作数不能均为存储器操作数

(7)立即数不能直接送至段寄存器

(8)IN指令中目的操作数不能用BL(只能用AL或AX)

(9)IP不能做目的操作数

(10)DX不能间接寻址,可改为 MOV SI,[BX]

(11)PUSH指令的操作数必须为16位(即:按字操作)

9.         设8086/8088CPU的SS=1050H,SP=0008H,AX=1234H,当执行指令:PUSH  AX后, 寄存器SS、SP、AX内容分别是什么?画图说明1234H在内存中的存放情况。

SS=1050H             SP=0006H             AX=1234H                                 

  (10506H)=34H           (10507H)=12H    

10.     假设(DS)=2000H,(BX)=1256H,(SI)=528FH;位移量TABLE=20A1H,

(232F7H)=3280H,(264E5H)=2450H,则;

(1)  IP =  1256H                            

(2)  IP =  3280H                           

(3)  IP =  2450H    

11.  已知8086 CPU各寄存器和有关内存单元内容如下:指出执行下列指令后AX寄存器的内容:

(1)  AX= 1200H      (2)  AX= 43EFH      (3)  AX= 3412H

    (4)  AX= BC9AH     (5)  AX= 8765H

第七章  汇编语言程序设计

一、填空题

1.         ‘d’

2.        第一个AND是逻辑指令,第二个AND 是逻辑与操作符

3.         0FFFFH

4.         03H

5.        同一代码段内、不同代码段

二、单选题

1.  A         2.  A       3.  D      4.  B         5.  A   

分析简答题

1.         汇编语言中的伪指令与执行指令有何不同?

答:伪指令的功能主要用于完成变量定义、段定义等,变量名称后不能带‘:’,它仅仅在汇编过程中告诉汇编程序应如何汇编,而不生成机器代码,即由汇编程序进行处理;执行指令可以完成数据传送、各种运算、字符串处理、程序控制等功能,标号后要跟‘:’,这种指令由汇编程序翻译成对应的机器代码,最终由CPU执行处理。

2.         试举例说明一条汇编语句可以有哪几部分组成?各部分之间采用何种分隔符(定界符)相隔离?

答:略。

3.         指出下面程序片段中的错误。

MYDATA  SEGMENT                

       A       DB  12  24  34      错误1:多个操作数之间必须用“,”分开

       B     DW  ‘12’             错误2:变量后面不能带冒号“:”

     MYDATA  ENDS

     MYCODE  SEGMENT

        ASSUME  DS:MYDATA,CS:MYCODE

              MOV  DS,MYDATA   错误3:立即数不能直接送进段寄存器

              MOV  AH,A

              MOV  AL,B          错误4:源、目的操作数字长不一致

              MOV  CX,A          错误5:源、目的操作数字长不一致

    MOV  AX,B

MOV  IP,B           错误6:MOV 指令中IP不能做操作数

4.         改正下面程序片段中的错误或指出错误原因。

 DATA  SEGMENT

            A      DB  12、24、34         错误1:多个操作数之间用“,”分开

            B      DW  ‘12’, ‘ABCD’  错误2:‘ABCD’改为‘AB’,‘CD’

        DATA  ENDS

        CODE  SEGMENT

            ASSUME  DS:DATA,CS:CODE

            MOV  DS,DATA           错误3:立即数不能直接送进段寄存器

            MOV  DX,OFFSET  A      错误4:DX不能用于间接寻址,可改为BX

        MOV  AL,[DX+2]         错误5:DX不能用于间接寻址,可改为BX

        MOV  BL,CX             错误6:源、目的操作数字长不一致

5.   指出下面程序片段中的错误。

          A1DB  ?      错误1:变量后面不能带冒号“:”

          A2  DW  10     

          K1  EQU  1024

          MOV  AX,80

          MOV  K1,AX    错误2:K1为立即数,不能做目的操作数

          MOV  AL,A2    错误3:源、目的操作数字长不一致

          MOV  BX,A1    错误4:源、目的操作数字长不一致

MOV  A1,K1    错误5:A1为字节变量,K1超出的范围

6.         假设某程序段中的数据定义如下:

(1)

(2) 变量DA1、DA2、DA3占用字节数分别为:6、2、1;

COUNT=9   表示数据段的长度为9个字节

7.   假设某程序段中的数据定义如下:

A1占24个字节             

A2占5个字节           

A3占4个字节          

L的值为33            

L表示的意义:变量A1、A2、A3所占的字节总数

8.   对下面两个数据段,请分析偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么?

答:不一样. 分别是72H, 04H和04H, 72H.      

因为字存储时低8位存放在低字节,高8位存在高字节。

9.   若STR是字符串的首地址,指出下列程序的功能,并将语句加上注解。

            LEA     BX,STR     ;STR的偏移量放到BX中

            MOV   CX,20        ;_设置循环次数________

LP:   CMP [BX],‘*’

            JNZ NEXT           ;BX所指单元内容不为*’,则转移至NEXT

            MOV [BX],‘$’    ;将BX所指单元用‘$’替代

NEXT: INC     BX          ;BX加1,指向下一个单元

            LOOP    LP          ;CX-1不等于0则转移至LP处,继续循环

            HLT

程序的功能:将STR开始的前20个字符中的‘*’用‘$’替代

10.  填入适当指令或指令的一部分,完成指定功能。

10.  MAX:          MOV     BX,  2000H

                    M0V     AL,[BX]

                    M0V     CX,  63H(或99)

LOOP1:       INC     BX

CMP     AL,[BX]

JAE   LOOP2      

MOV     AL,[BX]

LOOP2:       DEC      CX

JNZ       LOOP1

M0V      [2100H] ,AL

11.  指出下列程序的功能,并将有分号(;)的语句加上简要注解

  BUF   DB 100 DUP(?)

MOV BX,OFFSET BUF   ; 取BUF的偏移地址,设置地址指针BX  

MOV CL,64H         

LP:  MOV BYTE PTR[BX],0  ; 将BX所指向的内存单元清0        

INC BX               ; BX内容加1,指向下一个内存单元   

DEC CL               ; CL内容减1                        

JNZ LP               ;若计数器CL的内容不为0则转向LP 继续循环

程序的功能:将BUF单元开始的100个字节的存储单元全部清0 

12.  分析填空

MOV BL,09H         ;执行后 BL=___09H______

MOV AL,05H         ;执行后 AL=___05H______

ADD AL,BL          ;执行后 AL=___0EH______

DAA                ;执行后 AL=___14H______

 BL=___09H______

13.  分析填空

MOV AX,00H          ;执行后 AX=   00H  

    PUSH AX             ;执行后 AX=   00H  

    POP BX              ;执行后 BX=   00H  

MOV AX,3F5FH       ;执行后 AL=   5FH  

    MOV CX,4

    ROR AL,CL          ;执行后 AL=   0F5H  

    AND AL,0FH         ;执行后 AL=   05H  

14.     分析填空

假设(BL)=0E3H,变量VALUE中存放的内容79H,确定下列各条指令单独执行后的结果。

(1)BL=9AH                                  

(2)BL =FBH                               

(3)BL =1CH                                 

(4)BL =00H                                   

(5)BL =C6H

15.  阅读程序回答问题

(1)该程序的功能是 计算BLOCK 数据元素中奇数的个数,并存入RESULT中 

(2)程序执行后,RESULT单元的内容是  5(奇数的个数)              

(3)第3行汇编后COUNT=  10(BLOCK数组元素的个数              

(4)* 处的完整指令应是  MOV AX,DATA                           。

(5)** 处的完整指令应是 MOV SI,OFFSET BLOCK ,该指令也可以用 LEA SI,BOLCK           指令代替

四、程序设计题

1.         内存中有X、Y两个数:X=32,Y=-78 利用汇编语言编写完整的程序,计算这两个数之和,并将结果存入内存S,即:S=X+Y

参考程序:

DATA  SEGMENT                    

    X DB 32

    Y DB -78

    S DB ?

DATA ENDS

CODE SEGMENT                      

     ASSUME CS:CODE,DS:DATA    

START:MOV AX,DATA               

       MOV DS,AX

MOV AL,X                  

ADD AL,Y

MOV S,AL                 

       MOV AH,4CH                

       INT 21H

CODE ENDS

END START

2.         编程检测从外设端口71H输入的字节数据,若该数据≤20,则向73H端口送0H;若该数据>20,则向73H端口送0FFH。请写出完整的汇编源程序。

参考程序如下所示:

CODE SEGMENT               

              ASSUME CS:CODE    

      START:IN AL,71H          

             CMP AL,20          

             JNG K1              

             MOV AL,0FFH        

             JMP  K2             

         K1:MOV AL,00H

         K2:OUT 73H,AL         

             MOV AH,4CH         

             INT 21H             

       CODE  ENDS

               END START

3.         编程检测80H端口输入的字节数据,若为正,将BL清0;若为负,将BL置为FFH。请写出完整的汇编源程序。

参考程序如下所示:

CODE SEGMENT

              ASSUME CS:CODE

      START:IN AL,80H

              TEST AL,80H

              JZ   APOS

              MOV BL,0FFH

              JMP  EXIT

       APOS:MOV BL,00H

       EXIT:MOV AH,4CH

             INT 21H

       CODE  ENDS

               END START

4.   内存中有X、Y两个数组:X=32、-43、76,Y=-78、127、-128 利用汇编语言编写完整的程序,计算这两个数组之和,即S(i)=X(i)+Y(i)

参考程序:

DATA  SEGMENT          

    X DB 32,-43,76

    Y DB -78,127,-128

    S DB 3 DUP(0)

DATA ENDS

CODE SEGMENT

     ASSUME CS:CODE,DS:DATA    

START:MOV AX,DATA               

       MOV DS,AX

       MOV BX,00H

       MOV CX,3

AGAIN:MOV AL,X[BX]               

       ADD AL,Y[BX]

       MOV S[BX],AL

       INC BX                     

       LOOP AGAIN                 

       MOV AH,4CH                

       INT 21H

CODE ENDS

     END START

5.         在BLOCK开始有一个字节型数组,共有15个元素,利用汇编语言编写完整的程序,计算这个数组中奇数的个数,并将结果存入内存SUM单元。

DATA    SEGMENT

     BLOCK  DB 15 DUP (?)

     SUM    DB 00

     DATA    ENDS

CODE    SEGMENT

          ASSUME  CS:CODE,DS:DATA

      START:MOV  AX,DATA           

             MOV  DS,AX

             MOV  SI, OFFSET BLOCK

             MOV  CX,15              

        CON:MOV  AL,[SI]

             TEST  AL,01H               

             JZ  NEXT                           

             INC  SUM

       NEXT:INC  SI

             LOOP  CON

MOV AH,4CH

INT 21H

 CODE  ENDS

             END  START

6.         在BUF开始有一个字节型数组,共有50个元素,利用汇编语言编写完整的程序,将该数组全部元素清零。

DATA    SEGMENT

     BUF   DB 50 DUP (?)

     DATA    ENDS

CODE    SEGMENT

          ASSUME  CS:CODE,DS:DATA

      START:MOV  AX,DATA           

             MOV  DS,AX

             MOV  SI, OFFSET BUF

             MOV  CX,50              

        CON:MOV  [SI],00H

             INC  SI

             LOOP  CON

MOV AH,4CH

INT 21H

 CODE  ENDS

             END  START

7.   在BUF开始有一个字节型数组,共有100个元素,利用汇编语言编写完整的程序,计算这个数组中负数的个数,并将结果存入内存COUNT单元。

DATA    SEGMENT

     BUF   DB 100 DUP (?)

     COUNT DB 00

     DATA    ENDS

CODE    SEGMENT

          ASSUME  CS:CODE,DS:DATA

      START:MOV  AX,DATA           

             MOV  DS,AX

             MOV  SI, OFFSET BUF

             MOV  CX,100              

        CON:MOV  AL,[SI]

             TEST  AL,80H               

             JZ  NEXT                           

             INC  COUNT

       NEXT:INC  SI

             LOOP  CON

MOV AH,4CH

INT 21H

 CODE  ENDS

             END  START

第八章  中断处理

一、填空题

1.         内部中断、外部中断,可屏蔽中断、非屏蔽中断

2.         256、4

3.         INTR、NMI、是否可被屏蔽

4.         00008H

5.   INTR、IF=1

6.         中断请求、中断是开放的、当前指令结束后

7.         64

二、单选题

1.  C         2.  A       3.  B      4.  A         5.  D   

分析简答题

1.         8086可屏蔽中断请求输入线是什么?“可屏蔽”的涵义是什么?

:可屏蔽中断请求输入线为INTR;“可屏蔽”是指该中断请求可经软件清除标志寄存器中IF位而被禁止。

2.         计算机使用中断有什么好处?

答:(1)解决快速CPU与慢速外设之间的矛盾,使CPU可以与外设同时工作,甚至可以与几个外设同时工作。

(2)计算机实现对控制对象的实时处理。

(3)计算机可以对故障自行处理。

3.         答:除法出错,不可屏蔽中断,可屏蔽中断,单步中断。

4.         什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

答:处理机可处理的每种中断的编号为中断类型码。

中断向量是指中断处理程序的入口地址,由处理机自动寻址。

中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。

8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

5.         写出两种8086中断向量表的建立方法。

设中断类型号为80H(00H~FFH均可)

a.   MOV  AX,0                           ;向量表段地址

              MOV  ES,AX                        

              MOV  DI,80H*4                     ;向量表地址送DI

              MOV  AX,OFFSET  INTER1

              CLD

              STOSW

              MOV AX,SEG INTER1

STOSW

b.         b.  MOV  AX,0                           ;向量表段地址

              MOV  DS,AX                        

              MOV  SI,80H*4                     ;向量表地址送SI

              MOV  AX,OFFSET  INTER1

              MOV  [SI],AX

              MOV AX,SEG INTER1

MOV  [SI+2],AX

6.         说明8086 CPU中断和调用子程序过程的异同。

相同点:二者都是在需要时,用户用相应的指令实现

不同点: 调用子程序时,指令已经指明子程序的入口地址,而中断则需要根据指令中提供的中断类型号,查中断向量表才能得到中断服务程序的入口地址;调用子程序时,系统只是保护断点处的地址,而软中断,系统不仅保护断点处的地址,而且还保存PSW寄存器的内容。

第九章  输入/输出方法及常用的接口电路

一、填空题

1.         统一编址、独立编址、独立编址

2.         数据信息、状态信息、控制信息

3.         程序控制方式、中断方式、DMA方式

4.         3、8

5.         3种、2种

6.         64K、存储器地址空间、1M

7.   输入要缓冲、输出要锁存

二、单选题

   1.  C         2.  B       3.  A      4.  A 

  5.  A         6.  C        7.  D      8.  A 

分析简答题

1.         计算机对I/O端口编址时采用哪两种方法?在8086CPU中一般采用哪种编址方法?

:统一编址(或存储器映象寻址)

I/O独立编址(单独编址)

8086CPU中一般采用I/O独立编址

2.         设计计算机接口要遵循的原则是什么?为什么?

答:输出要锁存,输入要缓冲。

因为计算机的运行速度比较快,输出数据通常要经过锁存才能被外设读取;外设的数据线通过缓冲器与CPU的数据线相连接,从而保证CPU在读取一个外设数据时不会因其它外设的存在而出错。

3.   微机输入/输出的主要设备有哪些?至少写出三种

:键盘、鼠标、扫描仪、显示器、打印机等

四、硬件接口及程序设计题

1.         INTEL 8255A接口芯片

:(1)A口作为输入口,B口作为输出口           

(2)初始化:

A口作为输入口,B口作为输出口,均工作于方式0,则控制字为:90H(不唯一)

参考程序片段:

   …….

       MOV  AL,90H

       OUT  63H,AL

       IN  AL,60H

            OUT  61H,AL

2.   根据下面的接口电路图,回答下列问题:

:(1) 查询式输入接口电路图                        

(2) U1:锁存器                                

        U2:三态缓冲器(或三态门)               

   (3)1.                                 

2. M /                                 

3. 地址线A15~A0                          

4.                                 

3.   根据下面的接口电路图,回答下列问题:

:(1)查询式输出接口电路图

(2) U1:锁存器(

          U2:三态缓冲器(或三态门)

     (3) 电路图中的1、2、3、4、5、6应接到何处?写出符号。

1.                           

2. M                         

3. 地址译码器输出                

注:1.、2.、3.次序可以颠倒

4.                             

5. M                         

6.地址译码器输出                

更多相关推荐:
微机原理及应用实验报告

微机原理及应用实验报告班级姓名学号中南大学机电工程学院精密测控实验室实验二软件程序设计1实验目的1掌握MCS51单片机指令系统及用汇编语言编程技巧2了解和熟悉用MCS51单片机仿真开发机调试程序的方法2实验内容...

微机原理及应用实验报告

实验报告课程名称实验日期学生专业学生学号学生姓名教师姓名成绩南京理工大学机械工程学院实验一DEBUG命令及其操作一实验目的1熟练掌握debug的常用命令学会用debug来调试程序2深入了解数据在存储器中的存取方...

微机原理及应用实验报告(中南大学20xx年)

微机原理及应用实验报告班级姓名学号中南大学机电工程学院精密测控实验室实验二软件程序设计1实验目的1掌握MCS51单片机指令系统及用汇编语言编程技巧2了解和熟悉用MCS51单片机仿真开发机调试程序的方法2实验内容...

微机原理及应用实验报告

实验报告课程名称实验名称实验日期学生专业学生学号学生姓名教师姓名成绩微机原理及应用实验1DEBUG操作实验实验2汇编程序设计实验实验38253定时计数器实验实验48255并行接口实验年月日至年月日南京理工大学机...

微机原理及应用实验报告

微机原理及应用实验报告班级姓名学号座位号中南大学机电工程学院实验一单片机仿真开发机操作和MCS51指令系统应用一实验目的1熟悉MCS51单片机仿真开发机和开发调试软件的操作使用和调整2学会编写和输入汇编语言源程...

微机原理及应用实验报告

微机原理及应用微型计算机技术实验报告预习报告实验一两个多位十进制数相加的实验实验目的1学习数据传送和算术运算指令的用法2熟悉在PC机上建立汇编链接调试和运行8088汇编语言程序的过程实验仪器工业控制计算机一台原...

微机原理及应用实验报告(中南大学20xx年)

微机原理及应用实验报告班级姓名学号中南大学机电工程学院精密测控实验室实验一单片机仿真开发机操作和MCS51指令系统应用一实验目的1熟悉MCS51单片机仿真开发机和开发调试软件的操作使用和调整2学会编写和输入汇编...

微机原理及应用实验一、二(通信、网络)

微机原理及应用实验指导河北科技大学信息科学与工程学院书目录实验一汇编语言程序的建立调试和运行3实验二两个多位十进制数加减运算编程10实验三8255并行接口应用14实验四8251串行接口应用18实验五8253定时...

《微机原理及应用》实验指导书(jian)

实验守则1学生应按照课程教学计划准时上实验课不得迟到早退2实验前认真阅读实验指导书明确实验目的步骤原理预习有关的理论知识并接受实验教师的提问和检查3进入实验室必须遵守实验室的规章制度不得高声喧哗和打闹不准抽烟随...

《微机原理及应用》实验指导(终版)

微机原理及应用实验指导书沈阳化工大学信息工程学院20xx年2月1实验一初级程序的编写与调试实验一实验目的1熟悉在PC上建立汇编连接8086汇编语言程序的过程及操作步骤2熟练掌握DEBUG的常用命令学会用DEBU...

单片机原理及应用实验报告

单片机原理及应用实验报告一选题意义2二单片机AT89C52结构介绍2三实验内容3四实验步骤3五在uvision环境下软件程序设计4六Proteus仿真6七实验器件9八焊接电路实物图10九实验心得101一选题意义...

单片机原理实验报告

桂林航天工业学院电子工程系20xx20xx学年第专业班级学号姓名同组者指导教师任务一单片机控制单灯亮灭一实验目的1初步学会使用KeilVision开发环境和简单程序的编辑编译与运行方法2学习Proteus软件绘...

微机原理及应用实验报告(19篇)