您的当前位置:首页正文

微机原理实验

来源:筏尚旅游网
实验一、DEBUG应用

一、DEBUG的作用和实验目的

专门调试8086上用汇编语言编写的程序。调试的对象:扩展名为.Com和.Exe的文件。扩展名为.Com的文件地址从0100H开始存放,扩展名为.Exe的文件地址从0000H开始存放。

DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。 实验目的:

1、熟悉DEBUG有关命令的使用方法; 2、利用DEBUG掌握有关命令的功能; 3、利用DEBUG运行简单的程序段。 二、调试内容(程序)

1,将Lm开始到Lm+100的内存区中的一组数据按与原来相反的次序Pm到Pm+100的内存区。

2用加法指令设计一简单程序,实现两个十六位十进制数相加,结果放在被加数单元。 三、步骤

四、调试过程(错误排除) 五、收获体会

调试对象:扩展名为.com(地址0100开始存放) .EXE的文件(0000开始存放) 专门调试8086上用汇编语言编写的程序 启动与退出

(DOS提示符) 〉DEBUG 文件名.com ↙ 或DEBUG ↙

-Q 退出

修改寄存器:—R 寄存器名↙修改指定的寄存器 —R↙列出所有寄存器的内容观察 显示存储器(CPU外部)

-D n1,n2↙ 列出第n1~n2单元的内容观察 -D n↙ 列出第n单元开始显示存储器内容 -D ↙ 接着上一个D命令显示存储器内容 修改存储器

-E 地址↙ 功能:显示原值,输入新值

若按空格键就显示下一个单元原值,若按“-”[减号]键就显示上一个单元原值,若按回车就退出E命令再装入调试文件:-N文件名.扩展名↙

-L

编码程序:在DOS提示符

〉DEBUG 文件名.com ↙

-A↙此时显示****:0100地址,可以开始编写了 语句1 语句2

编完后直接回车或ctrl-c结束A命令

-H 最后一行下面的行号 0100↙计算出两地址之差

-R CX↙ 写上计算出的差值。 若没起文件名可在这-N 文件名.com -W↙ 存盘

-Q↙ 退出

DEBUG只认十六进制数并且不能加H。 DEBDG不认识标号。 反汇编 –U 地址↙ -U ↙

-U ↙伪地址 n1,n2↙ 执行程序 –G 结束地址↙ -G↙ -T↙

例 (1)进行DEBUG并用A命令直接写入并汇编一个程序

该程序将对两个压缩BCD码,分别存放在0120H和0122H单元(其中[0120H]=0708H,[0122H]=0809H),进行求和运算,结果存放在0124H单元,即结果[0124H]=11H,[0125H]=0FH

〉debug

MOV AL,[0120] ;不能使用变量名,在DEBUG中只能使用直接地址 ADD AL,[0122] DAA

MOV BY[0124], AL ;BY就是BYTE PIR MOV AL,[0121] ADC AL,[0123] DAA

MOV BY[0125], AL ;用BY修改存储单元字节操作数类型 INT 20

回车,或ctrl+c或ctrl+Break组合键

(2)-D 120 125 指定要显示的结果所在段的偏移地址 段地址默认 -E 120 修改存储器 (3) -G 执行该程序

(4) -D 120 125 用于显示计算结果 (5)用U命令反汇编程序 (6)保存 -R -W (7) Q ↙

-N 文件名.com 再装入调试文件 -L

实验二、MASM的应用 一、实验目的:

通过对汇编语言程序的设计和调试,使学生掌握一般程序设计的方法进一步加深对汇编语言的理解。

二、标准汇编程序上机方法

A.建立ASM文件,用EDIT .COM全屏幕编辑文件或其他编辑文件建立扩展名 为ASM的源程序.

B.用MASM(或ASM)产生扩展名为OBJ目标文件。 C.用LINK产生扩展名为EXE可执行文件。 D.在DEBUG下,把文件调入内存,调试程序。 E.在DOS下可直接执行扩展名为EXE的文件。 三、实验步骤

A.首先进入EDIT.COM编辑器,输入源程序,检查正确后,用MASM汇编成目标文件,用LINK连接成可运行文件,若正确无误,则用DEBUG调入内存,进行调试.

B.调试与运行程序:用单步,断点,连续等方法调试与运行程,根据存储器,寄存器与标志位的内容与变化,如:SP,IP,CF,SF,ZF,OF等,检查指令结果,程序中间结果及程序运行最后结果是否正确,排除软件错误,直到达到本实验目的为止。

C.记录程序入口参数与出口参数,重要的指令结果,程序中间结果及程序运行最后结果。 四、实验报告 (实验心得及有意义的建议) 下图为汇编和链接的截图:

实验三、RAM扩展实验 一、实验目的

1.掌握PC机外存的扩展方法 2.掌握6264芯片的连线方法

3.掌握8086十六位数据的存储方法 二、实验内容

向2000H~2100H单元的偶地址送AAH,奇地址送55H。 三、实验原理图

电路包括数据线、地址线和控制线的连接,两个6264芯片的数据线、地址线连接方法相同。其中两片6264的CS1,连在区分偶地址库和奇地址库的信号线上,实验板分别称为CSA和CSB。 四、实验步骤

1.连线(本实验内部已接好) 2.编写程序并调试

3.运行实验程序,可单步、设断点,观察存储单元内容的变化。 4.记录实验结果,编写实验报告。 五、实验说明

本实验使用的RAM区地址在0~3FFFH之间,编程时可设段地址为100H,段内偏移量为1000H,则物理地址正好为2000H。若用字节写入,则AL要交替的为AAH和55H,若用字写入,则AX应为55AAH。 六、程序流程图

开始初始化数据段DS初始化偏移地址SICX< - - 100HDS[SI]< - - 55AAHCX=0NY空操作结束(设置断点处)

七、程序清单 code segment

assume cs:code org 0100h

start: mov ax,0100h ;设定数据段段地址 mov ds,ax mov es,ax

mov si,1000h ;设定数据段内偏移地址 mov cx,0100h ;设定计数初值256 mov al,0 intram: mov [si],al inc si

loop intram ;256个字节清成0 mov si,1000h mov cx,100h mov ax,55aah fil: mov [si],ax inc si inc si

loop fil ;写入256个字 nop

jmp start

code ends ;end of code segment end start ;end assembly

实验四 8259A中断控制器实验 一、实验目的

1.掌握8259A的工作原理

2.掌握编写中断服务程序的方法 3.掌握初始化中断向量的方法 二、实验内容

用单脉冲发生器的输出做中断源,每按一次产生一次中断申请,在中断服务程序中将AX的值修改为0055H,如果不产生中断,则AX的值始终为0。 三、实验原理图

四、实验步骤

推荐两种方法

1.利用已开发好的DMA实验板;

(1)将DMA中断控制实验板插入实验箱右上角DMA 插槽中,单脉冲发生器(PLU键处)输出口(P0)与DMA中断实验板的IR0相连,C59与CS7相连。 (2)编辑程序并调试,注意断点设置要在中断发生条件之后。 2.利用普通面包板扩展实验

(1)将8259芯片插在面包板上,对照原理图将8259芯片的引脚与CPU板PI插座的对应信号相连, PI插座定义如下:

(2)单脉冲发生器输出CZ35(P0)

与8259A的IR0相连;CS7与8259A的CS相连; 将8259A的A0与P1的A1相连; 其他信号线按原理图标注连接。 (3)P1插座的OC接VCC;

(4)编辑程序并调试,注意断点设置要在中断发生条件之后。 五、实验说明

中断向量在内存中的位置应是N乘以4,中断向量的高5位从8259A读出,低3位由IR编码决定,其中IR0的编码为000。 六、程序流程图

开始中断服务程序关中断AX< - - 55AAH返回设ICW1—13H设ICW2—80H设IW4—01打开中断屏蔽OCW1设DS=0设中断向量位置SI=200H将中断服务程序的偏移量—200H将中断服务程序的段地址—202H清AX,开中断判AX=55HNYNOP空操作结束

七、参考程序 (T8.ASM) assume cs:code

code segment public org 100h start: mov dx,3f0h

mov ax,13h ;设ICW1 out dx,ax mov dx,3f2h mov ax,80h out dx,ax ;设ICW2为80H mov ax,01 out dx,ax ;设ICW4为01H mov ax,0h

out dx,ax ;写OCW1,即打开屏蔽 mov ax,0 mov ds,ax mov si,200h ;中断向量位置0+200h mov ax,offset hint mov ds:[si],ax add si,2 mov ds:[si],0100h;填入中断向量表 mov ax,0 ;清AX sti ;开中断 wati: cmp ax,55h jne wait nop jmp start

hint: mov ax,55h nop cli ;关中断 iret code ends end start

实验五CPU并行口扩展实验 一、实验目的

利用8255A实现并行接口扩展 二、实验内容

1.掌握8255A的编程原理

2.熟悉计算机的并行接口使用方法 三、实验原理图

四、实验步骤 1.连线:

8255A(IC37)的PA0~PA7分别与逻辑电平开关电路的K1~K8相连; 8255A 的 PB0~PB7 分别与发光二极管电路的L1~L8相连; 从CS0~CS7中任选一根与8255A 的片选CS8255端相连。 其他线路在内部均以连好。 2.编辑程序,单步运行,调试程序。

3.调试通过后,全速运行,观察运行结果。 4.编写实验报告。 五、实验说明

逻辑电平开关向上拨时为5V,向下拨时为0V;

发光二极管输入为1时亮,为0时灭,拨动开关观察二极管的变化。 本实验中8255A的 A端口地址为04A0H

B端口地址为04A2H 控制端口地址为04A6H 8255A工作在基本输入输出方式,即方式0; 六、程序流程图

七、参考程序 (T2.ASM) assume cs:code

code segment public org 100h start: mov dx,04a6h mov ax,90h out dx,ax start1: mov dx,04a0h in ax,dx mov dx,04a2h out dx,ax jmp start1 code ends end start

实验六 8253定时/计数器的应用 一、实验目的

掌握8253定时/计数器的工作原理,利用示波器或A/D、D/A卡观察不同工作方式下的输出波形。 二、实验内容

编程将计数器0、1、2设置为方式2(分频方式),观察其输出波形。 三、实验原理图

四、实验步骤 1.连线:

从CS0~CS7中任选一根(如CS0)与8253的片选信号CS8253端相连; 将8253的OUT0与CLK2相连; 将OUT2与发光管L1相连;

OUT1接示波器,其他信号均已在内部接好。

若有A/D、D/A卡,则不需要接示波器。但需要将A/D、D/A卡的输出与实验箱的j2(8253芯片旁边靠内侧的接口)相连。

在软件DB86中打开波形观察窗口可观察波形。 2.编辑并调试程序。

3.调试通过后,全速运行,观察运行结果。 4.编写实验报告。 五、实验说明

8253的时钟端CLK0、CLK1均为1M/8,CLK2的时钟由OUT来控制;设计数器0的初值为0F424H(十进制的62500)时,输出方波的周期为0.5秒,在计数器2中设置不同的初值2n时,可得nx0.5s,n的最大值为7FFFH(十进制的32767)时,周期最长为16383.5s(4小时33分3.5秒)。

六、程序流程图

七、参考程序 (T3.ASM) assume cs:code

code segment public org 100h

start: mov dx,04a6h;

mov ax,36h ;计数器0方式 out dx,ax

mov dx,04a0h;

mov ax,24h ;计数器0初值低位 out dx,ax

mov ax,0f4h ;计数器0初值高位 out dx,ax

mov dx,04a6h;

mov ax,76h ;计数器1方式 out dx,ax

mov dx,04a2h;

mov ax,0ah ;计数器1初值低位 out dx,ax

mov ax,0 ;计数器1初值高位

out dx,ax mov dx,04a6h

mov ax,0b6h ;计数器2方式 out dx,ax

mov dx,04a4h;

mov ax,04h ;计数器2初值低位 out dx,ax

mov ax,0 ;计数器2初值高位 out dx,ax next: nop

jmp next code ends end start

课程设计部分

A / D 实验 一、实验目的

熟悉A/D转换的基本原理,掌握ADC 0809的使用方法。 二、实验内容

按查询方式采样三路A/D转换数据,用简单输入口(74LS244)查询EOC信号,每循环一次,0、1、2通道各采样一次,采样结果为:0通道数据放入AX中, 1通道数据放入BX中, 2通道数据放入CX中,三个寄存器均是低8位有效。 三、实验原理图

四、实验步骤 1.连线:

将可变电位器KB1、KB2、KB3分别与ADC 0809的IN0、IN1、IN2相连,从CS0~CS3中任选一个端子(如 CS0 )与0809的片选端(CS0809)相连。将ADC 0809的EOC与IC25(74LS244)的SI0相连,从CS0~CS7中任选一个端(如CS1)与IC25的片选(CSU10)端相连。

2、编写程序并调试。

3、调试通过后,设置断点全速运行,并观察实验结果。 4、编写实验报告。 五、实验说明

实验电路中启动信号START与地址锁存信号相连,所以启 动A/D转换的方法为:

MOV DX,PADC ;PADC是ADC0809的端口地址

OUT DX ,AL ;发片选及IOW信号,这是0通道 ;启动1通道时,DX应加1

六、程序流程图

开始DA《-0通道启动地址启动A\\D通道0读EOC 信号至AX,即从CSI\\单元读,最低位为1有效AX AND 1HAX=0NY读A\\D转换结果,存入CX通道启动地址加1启动A\\D通道1 读EOC 信号至AXAX AND 1H YAX=0N读A\\D转换结果,存入BX通道启动地址加1启动A\\D通道2 读EOC 信号至AXAX AND 1H YAX=0N读A\\D结果存入AX

七. 程序 T4.asm

assume cs:code

code segment public org 100h

start: mov dx,04a0h ;启动0通道转换

mov ax,34h ;随便送出一个数 out dx,ax

mov bp,1000h ;软件延时 lay1: dec bp

cmp bp,0 jne lay1 mov dx,04b0h wait1: in ax,dx and ax,1 cmp ax,1

jne wait1 ;判转换结束 mov dx,04a0h in ax,dx and ax,0ffh

mov cx,ax ;存0通道转换值 mov dx,04a2h ;启动1通道转换 mov ax,34h out dx,ax

mov bp,1000h ;软件延时 lay2: dec bp

cmp bp,0 jne lay2

mov dx,04b0h wait2: in ax,dx and ax,1 cmp ax,1

jne wait2 ;判转换结束 mov dx,04a2h in ax,dx and ax,0ffh

mov bx,ax ;存1通道转换值 mov dx,04a4h ;启动2通道转换 mov ax,34h out dx,ax

mov bp,1000h ;软件延时 lay3: dec bp

cmp bp,0

jne lay3 mov dx,04b0h wait3: in ax,dx and ax,1 cmp ax,1

jne wait3 ;判转换结束 mov dx,04a4h in ax, dx

and ax,0ffh ;存2通道转换值 nop

jmp code ends

end start start

D / A 实验 一、实验目的

熟悉数模转换的基本原理,掌握DAC 0832的使用方法。 二、实验内容

看懂接口电路后连好硬件线路,并编写程序以产生以下两种波形并用示波器或A/D、D/A卡观察。

1、锯齿波形 2、三角波 三、实验原理图

四、实验步骤

1、连线:从CS0~CS7中任选一个端子(如 CS0 )与DAC 0832的片选端(CS0832)相连。将将示波器接至DAC0832的输出端OUT。有A/D、D/A卡可以不接示被器,但需要将 A/D、D/A 卡的输出与实验箱的j2(8253芯片旁边靠内侧的接口)相连。 2、编写程序并调试。

3、调试通过后,全速运行,产生不同波形。 4、观察实验结果,编写实验报告。 五、实验说明

KB6调节参考电压VREF,KB5调节D/A的零点,KB4调节D/A的满偏,DAC 0832工作在双缓冲接口方式下。当A1=0时可锁存输入数据,当A1=1时,可起动转换输出。所以要进行D/A转换,。需分二步进行。 六、程序流程图

七、程序

T5-1.asm 锯齿波

assume cs:code code segment public org 100h start: mov dx,04a0h up1: mov bx,0 up2: mov ax,bx

out dx,ax ;锁存数据 mov dx,04a2h

out dx,ax ;启动转换 mov dx,04a0h inc bx cmp bx,0ffh jne up2 jmp up1

code ends ;end of code segment end start ;end assembly T5-2.asm 三角波 assume cs:code

code segment public org 100h start: mov dx,04a0h up1: mov bx,0 up2: mov ax,bx

out dx,ax ;锁存数据 mov dx,04a2h

out dx,ax ;启动转换 inc bx mov dx,04a0h cmp bx,0ffh jne up2

up3: mov ax,bx ;进入三角波下降沿 out dx,ax ;锁存数据 mov dx,04a2h

out dx,ax ;启动转换 dec bx mov dx,04a0h cmp bx,0 jne up3 jmp up1

code ends ;end of code segment end start ;end assembly

因篇幅问题不能全部显示,请点此查看更多更全内容