当前位置:文档之家› 微机原理实验

微机原理实验

实验一、DEBUG应用一、DEBUG的作用和实验目的专门调试8086上用汇编语言编写的程序。

调试的对象:扩展名为.Com和.Exe的文件。

扩展名为.Com的文件地址丛0100H开始存放,扩展名为.Exe的文件地址从0000H 开始存放。

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

实验目的:1、熟悉DEBUG有关命令的使用方法;2、利用DEBUG掌握有关命令的功能;3、利用DEBUG运行简单的程序段。

二、调试内容(程序)课后4-6、4-10三、步骤四、调试过程(错误排除)五、收获体会调试对象:扩展名为.com(地址0100开始存放) .EXE的文件(0000开始存放)专门调试8086上用汇编语言编写的程序启动与退出(DOS提示符)〉DEBUG 文件名.co m ↙或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 〉debugMOV AL,[0120] ;不能使用变量名,在DEBUG中只能使用直接地址ADD AL,[0122]DAAMOV BY[0124], AL ;BY就是BYTE PIRMOV AL,[0121]ADC AL,[0123]DAAMOV 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.首先进入编辑器,输入源程序,检查正确后,用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。

六、程序流程图七、程序清单code segmentassume cs:codeorg 0100hstart: mov ax,0100h ;设定数据段段地址mov ds,axmov es,axmov si,1000h ;设定数据段内偏移地址mov cx,0100h ;设定计数初值256mov al,0intram: mov [si],alinc siloop intram ;256个字节清成0mov si,1000hmov cx,100hmov ax,55aahfil: mov [si],axinc siinc siloop fil ;写入256个字nopjmp startcode 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。

六、程序流程图设ICW1—13H 设ICW2—80H 设IW4—01打开中断屏蔽OCW1设DS=0设中断向量位置SI=200H将中断服务程序的偏移量—200H将中断服务程序的段地址—202H清AX ,开中断开始返回关中断AX< - - 55AAH中断服务程序判AX=55H NOP 空操作结束YN七、参考程序(T8.ASM)assume cs:codecode segment publicorg 100hstart: mov dx,3f0hmov ax,13h ;设ICW1out dx,axmov dx,3f2hmov ax,80hout dx,ax ;设ICW2为80Hmov ax,01out dx,ax ;设ICW4为01Hmov ax,0hout dx,ax ;写OCW1,即打开屏蔽mov ax,0mov ds,axmov si,200h ;中断向量位置0+200hmov ax,offset hintmov ds:[si],axadd si,2mov ds:[si],0100h;填入中断向量表mov ax,0 ;清AXsti ;开中断wati: cmp ax,55hjne waitnopjmp starthint: mov ax,55hnopcli ;关中断iretcode endsend 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端口地址为04A0HB端口地址为04A2H控制端口地址为04A6H8255A工作在基本输入输出方式,即方式0;六、程序流程图七、参考程序(T2.ASM) assume cs:codecode segment publicorg 100hstart: mov dx,04a6hmov ax,90hout dx,axstart1: mov dx,04a0hin ax,dxmov dx,04a2hout dx,axjmp start1code endsend 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芯片旁边靠内侧的接口)相连。

相关主题