版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机原理及应用实验,电子信息技术实验教学中心,实验1 DEBUG调试程序的应用,一、实验目的,掌握DEBUG调试程序的常用命令,熟悉用DEBUG调试程序对EXE文件的调试过程,并具有一定的分析运行结果的能力。,二、实验内容,编写一个完整的一位数加法运算程序,并生成EXE文件; 利用DEBUG调试EXE文件的执行过程,并与源程序进行对比。,三、DEBUG常用命令,1.汇编命令A 格式: A 段寄存器名:偏移地址 A 段地址:偏移地址 A 偏移地址 A 功能:用该命令可以将汇编语言程序直接写入内存。,2.显示内存命令D 格式: D 段寄存器名:偏移地址 D 段地址:偏移地址 D 偏移地址 D
2、 功能:显示指定内存范围的内容。 3.修改内存单元内容命令E 格式: E 地址 内容表 E 地址 功能:修改内存单元内容,4.填充内存命令F 格式:E 地址范围 内容表 功能:将内容表中的内容重复装入内存的指定范围内。 5.内存移动命令M 格式:M 源地址范围 目标起始地址 功能:把源地址范围的内容移动到目标起始地址开始的存储单元。 6.比较命令C 格式:C 源地址范围 目标起始地址 功能:比较两个内存区域的内容是否相同,相同时不显示任何信息,不相同时显示不相同的内容,7.搜索指定内容命令S 格式:S 地址范围 内容表 功能:在指定地址范围内搜索内容表中的内容。 8.查看修改寄存器内容命令R
3、格式: R R 寄存器名 功能:查看或修改寄存器内容 关于标志位: OF:OV/NV 有/无;DF:DN/UP 减/增;IF:EI/DI 允许/禁止;SF:NG/PL 负/正;ZF:ZR/NZ 零/非零;AF:AC/NA 有/无;PF:PE/PO 偶/奇;CF:CY/NC 有/无。,9.单步执行命令T 格式: T 地址 T 地址 条数 功能:单步执行指令 10.反汇编命令U 格式: U 地址 U 地址范围 功能:将指定内存的内容显示成汇编语言形式。 11.命名命令N 格式:N 路径和文件名,12.读盘命令L 格式: L 地址 驱动器号 起始扇区号 扇区数 L 地址 L 功能:将N命令指定的文件
4、或磁盘扇区内容读到内存。 13.写盘命令W 格式: W 地址 驱动器号 起始扇区号 扇区数 W 地址 W 功能:将内存内容写到N命令指定的文件或磁盘扇区中。,14.输入命令I 格式:I 端口地址 功能:将端口的内容传送到累加器AL中。 15.输出命令O 格式:O 端口地址 功能:将累加器AL的内容传送到端口中。 16.运行命令G 格式: G=地址 G 功能:从当前地址或指定地址开始执行指令。,17.十六进制运算命令H 格式: H 数据1 数据2 功能:对数据1和数据2进行十六进制加法和减法运算。 18.P命令 格式: P 功能:在下一条指令执行之前停止 19.退出命令Q 格式: Q 功能:退出
5、DEBUG调试环境。,实验2 算术运算程序设计,一、实验目的,二、实验内容,掌握汇编语言中的数值接收方法; 掌握算术运算程序的编写与结果显示方法; 掌握宏定义与调用方法,从键盘接收运算式,编程实现两位十进制数的算术运算(加、减、乘、除),若输入的不是数字或运算符,进行错误处理,按Esc键退出。,三、编程提示,定义一个显示单字符的宏; 定义一个能接收两位数的子程序,并将其转换成二进制,若接收的不是数字,进行错误处理,其算法为:退一格,显示一个空格,再退一格。若接收的为ESC键退出; 主程序的编程流程如图2.1所示。,实验3 字符串处理程序设计,一、实验目的,二、实验内容,掌握串操作程序设计的基本
6、方法; 掌握串查找与替换的方法; 掌握字符串接收和显示的方法; 掌握循环和分支程序设计方法。,编程实现字符接收、字符转换、字符显示等操作; 具体要求:从键盘接收30个字符存入变量X中,将X中的字符传送到变量Y中,将变量Y中的空格字符转换成字符“0”,回车换行后显示Y中的内容。,三、编程提示,编程流程如图3.1所示。,实验4 数值处理程序设计,一、实验目的,二、实验内容,掌握数组元素的输入方法; 掌握一般的排序算法。,编程实现数值输入、数组排序、显示等基本操作; 具体要求:从键盘输入20个有符号两位十进制数,编程对其从小到大进行排序,并显示排序后的结果,以逗号分隔。,三、参考程序,dispc m
7、acro x mov dl,x mov ah,2 int 21h endm datasegment xdb 20 dup(?) dataends codesegment assume cs:code,ds:data go:mov ax,data mov ds,ax 接收20个有符号数的程序段 mov bx,19,l0:mov cx,19 lea si,x l1:lodsb cmp al,si jge l2 mov ah,si mov si,al mov si-1,ah l2:loop l1 dec bx cmp bx,0 jne l0 mov cx,20 l3:lodsb cmp al,0,j
8、ge l4 push ax dispc - pop ax neg al l4:aam or ax,3030h mov bh,al cmp ah,30h je l5 dispc ah l5:dispc bh dispc , loop l3 dispc 8,dispc 20h mov ah,7 int 21h mov ah,4ch int 21h codeends endgo,实验5 文件、文件夹操作程序设计,一、实验目的,掌握在磁盘上建立文件夹的程序设计方法; 掌握在文件夹下建立文件的程序设计方法; 掌握对文件的读、写、关闭的程序设计方法,二、实验内容,编程实现文件、文件夹的建立、写入、字符串接
9、收等基本操作; 具体要求: 清屏,将光标置于5行,0列,从键盘接收最多80个字符的字符串,将接收字符串中的小写字母全部转换成大写,其余不变; 从10行,0列开始显示转换后的字符串; 在D盘上建立一文件夹USER; 将转换后的字符串写入文件D:USERSTRING.TXT中。 (注:文件操作时要求有相应的提示信息),三、参考程序,disps macro x mov ah,9 lea dx,x int 21h endm datasegment buffer db 80,?,81 dup(0) pfname db D:USER,0 fname db D:USERSTRING.TXT,0 d1 db
10、Create paper file error,0dh,0ah,$ d2 db Create file error,0ah,0dh,$ d3 db Write file error,0ah,0dh,$ d4 db Close file error,0ah,0dh,$ d5 db Operate succeed ,0ah,0dh,$,d6 db 0ah,0dh,$ dataends codesegment assume cs:code,ds:data go:mov ax,data mov ds,ax mov ah,2 mov bh,0 mov dx,0 int 10h mov al,20h mo
11、v ah,9 mov cx,2000 mov bl,12h int 10h,mov ah,2 mov bh,0 mov dh,5 mov dl,0 int 10h mov ah,0ah lea dx,buffer int 21h mov cl,buffer+1 mov ch,0 lea si,buffer+2 l1:lodsb cmp al,a jb l2 cmp al,z,ja l2 xor al,20h mov si-1,al l2:loop l1 mov byte ptrsi,$ mov ah,2 mov bh,0 mov dh,10 mov dl,0 int 10h disps buf
12、fer+2 disps d6 mov ah,39h lea dx,pfname int 21h,jnc l1 disps d1 jmp l6 l2:mov ah,5bh mov cx,0 lea dx,fname int 21h push ax jnc l3 disps d2 jmp l6 l3:mov ah,40h pop bx mov cl,buffer+1 mov ch,0,lea dx,buffer+2 int 21h jnc l4 disps d3 jmp l6 l4:mov ah,3eh int 21h jnc l5 disps d4 jmp l6 l5:disps d5 l6:m
13、ov ah,7 int 21h mov ah,4ch int 21h,codeends endgo,实验6 图形程序设计,一、实验目的,二、实验内容,掌握屏幕显示方式的设置方法; 掌握写象素点的方法; 掌握宏的定义和调用方法。,编程实现几何图形的绘制,不同颜色的填充; 具体要求:将屏幕设置成640*480,在屏幕上画5个几何图形:空心正方形、空心长方形、实心正方形、实心长方形、空心直角等腰三角形。大小、颜色、位置自定。,三、参考程序,sxfkmacro x1,y1,x2,y2,color;画实心矩形(左上顶点坐标, local l1,l2 右下顶点坐标,颜色) mov ah,0ch mov a
14、l,color mov dx,y1 l1:mov cx,x1 l2:int 10h inc cx cmp cx,x2 jbe l2 inc dx cmp dx,y2 jbe l1 endm,kxfkmacro x1,y1,x2,y2,color;画空心矩形(左上顶点坐标, local l1,l2,l3,l4 右下顶点坐标,颜色) mov ah,0ch mov dx,y1 mov cx,x1 mov al,color l1:int 10h inc cx cmp cx,x2 jb l1 l2:int 10h inc dx cmp dx,y2 jb l2 l3:int 10h,dec cx cmp
15、cx,x1 ja l3 l4:int 10h dec dx cmp dx,y1 ja l4 endm sjxmacro x1,y1,long,color;画等腰直角三角形(左上 local l1,l2,l3 顶点坐标,腰长,颜色) mov ah,0ch mov al,color mov dx,y1 mov cx,x1 mov si,long,add si,dx l1:int 10h inc dx cmp dx,si jbe l1 mov di,long add di,cx l2:int 10h inc cx cmp cx,di jbe l2 mov cx,x1 mov dx,y1 l3:inc
16、 cx inc dx,int 10h cmp cx,di jb l3 endm codesegment assume cs:code go:mov ax,0012h int 10h mov ah,0bh mov bx,1 int 10h sjx 50,50,125,4 kxfk 1,2,241,242,3 sxfk 10,250,320,470,6 sxfk 339,179,639,479,5,kxfk 270,5,630,170,9 mov ah,7 int 21h mov ah,4ch int 21h codeends endgo,实验7 中断控制实验,一、实验目的,二、实验内容,了解Wi
17、ndows下中断处理过程; 比较中断和查询两种数据交换方法的效率差别。,用查询和中断方式分别实现控制指示灯,实验电路如图。要求直接用手动产生的单脉冲作为中断请求信号,每按一次单脉冲产生一次中断,让8个指示灯显示一秒钟的01010101,否则让指示灯显示10101010。然后在任务栏比较中断和查询方式下CPU利用率的差别。,中断方法:将8255的A口设为输出,IRQ直接接到正脉冲,线路连接如图7.1所示; 查询方法:将8255的A口设为输出接指示灯,C口设为输入,将PC0接正脉冲输入,线路连接如图7.2所示。,三、编程提示,中断方法的编程流程如图7.3所示,查询方法的编程流程如图7.4所示,实验
18、 定时器/计数器实验,一、实验目的,二、实验内容,掌握8253的基本工作原理和编程方法。,定时器应用:按图8.1连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ); 计数器应用:按图8.2连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。,图 8.1,图 8.2,三、编程提示,8253控制寄存器地址 283H 计数器0地址 280H 计数器1地址 281H 定时器应用时的编程流程如图8.3所示
19、,计数器应用时的编程流程如图8.4所示。,实验 并行通信实验,一、实验目的,二、实验内容,掌握并行接口芯片8255的工作原理及使用方法,方式0的应用:实验电路如图9.1,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7,编程从8255C口输入数据,再从A口输出; 方式的应用:实验电路如图9.2,要求每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0L7依次发光,中断次结束。,三、编程提示,8255控制端口地址 28BH A口的地址 288H C口的地址 28AH 方式
20、应用时编程流程如图9.3所示,方式应用时编程流程如图9.4所示。,图 9.3,图 9.4,实验10 段数码管显示控制实验,一、实验目的,二、实验内容,静态显示:按图10.1连接好电路,将8255的A口PA0PA6分别与七段数码管的段码驱动输入端a相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(09),在七段数码管上显示出来; 动态显示:按图10.2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0,编程在两个数码管上显示“56”。,掌握数码管显示数字的原理。,图 10.1,图 10.2,实验台上的七段数码
21、管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。 静态显示时的编程流程如图10.3所示,动态显示时的编程流程如图10.4所示。,三、编程提示,图 10.3,图 10.4,实验1 抢答器设计实验,一、实验目的,二、实验内容,了解微机化竞赛抢答器的基本原理; 进一步学习使用并行接口。,图11.1为竞赛抢答器(模拟)的原理图,逻辑开关K0K7代表竞赛抢答按钮07号,当某个逻辑电平开关置“”时,相当某组抢答按钮按下。在七段数码管上将其组号(07)显示出来,并使微机扬声器响一下。,图 11.1,三、编程提示,设置8255为口输入、口输出,读取口数据,
22、若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断抢答组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。,图 11.2,实验12 交通灯控制实验,一、实验目的,二、实验内容,通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。,如图12.1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。,图 12.1,三、编程提示,十字路口交通灯的变化规律要求: (1) 南北路口的绿灯、东西路口的红灯同时亮30秒左右; (2) 南北路口的黄灯闪烁若干次,
23、同时东西路口的红灯继续亮; (3) 南北路口的红灯、东西路口的绿灯同时亮30秒左右; (4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次; (5) 转(1)重复。 编程流程如图12.2所示 。,图 12.2,实验13 串行通信实验,一、实验目的,二、实验内容,了解串行通讯的基本原理; 掌握串行接口芯片8251的工作原理和编程方法。,按图13.1连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收时钟.TXD和RXD连在一起; 编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示。实现自发自收。,图 13.1,三、编程提示,图示电
24、路8251的控制口地址为2B9H,数据口地址为2B8H; 8253计数器的计数初值=时钟频率 /(波特率波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52H; 收发采用查询方式; 编程流程如图13.2所示。,图 13.2,实验14 数/模转换实验,一、实验目的,二、实验内容,了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法 。,实验电路原理如图14.1所示,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub); 编程产生锯齿波(从Ub输出,用示波器观察); 编程产生正弦波(从Ub输出,用示波器观察)。,图 14.1,三
25、、编程提示,8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为: Ua=-(UREF/256)*N Ua=-(UREF/256)*N-5 (UREF表示参考电压,N表示数数据),这里的参考电压为机的电源。 产生锯齿波只须将输出到DAC0832的数据由0循环递增; 产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16个以上。,图 14.2,图 14.3,实验15 模/数转换实验,一、实验目的,二、实验内容,了解模/数转换的基本原理,掌握ADC0809的使用方法 。,实验电路原理图如图15.1所示。通过实验台左下角电位器RW1输出05直流电压
26、送入ADC0809通道0(IN0),编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数) 。,图 15.1,三、编程提示,ADC0809的IN0口地址为298H,IN1口地址为299H; IN0单极性输入电压与转换后数字的关系为: N=Ui/(Uref/256) 其中Ui为输入电压,UREF为参考电压,这里的参考电压为机的电源。 编程流程如图15.2所示,图 15.2,实验16 8255A并行口键盘扫描实验,一、实验目的,掌握8255A编程原理。 了解键盘阵列结构,学会读取按键的方法。,二、实验内容,本实验的实验电路如图16.1所示。它做在一块扩展电路板上,用一根20芯扁平电缆
27、线将实验板扩展插头J1与实验台上的扩展插头J7相连,为扩展电路连接电源及外部总线。扩展电路板上的数码管、键盘阵列既能由8279控制,也可以由外部电路控制,其实现靠的是若干组短路子组成的控制选择开关K1、K2、K3、K4、KB0、KB1、KB2。,当K1、K3、K4连接在8279一端时,数码管由8279控制,连接在LS273一端时由外部总线通过LS273直接控制。当K2、KB1、KB2、KB3连接在8279一端时,键盘阵列由8279控制,连接在8255一端时由外接芯片8255控制。因为本实验为8255控制实验,所以除了连接J1和J7外,还需要将选择开关K2、KB1、KB2、KB3连接在8255一
28、端,并将KA0-KA7,KB0-KB2连接到8255芯片A口,C口,还需要连接8255芯片的片选,以使键盘阵列由8255芯片控制。 8255A的端口A地址为:288H,端口C地址为:28AH,控制口地址为:28BH。编程使得在键盘阵列上每按一个键后,微机屏幕上有相应字符显示出来。,图 16.1,三、编程提示,1识别键盘上的闭合键,通过采用行扫描法或列翻转法: (1)行扫描法是使键盘上某一列线为低电平,而其余行接高电平,然后读取列值;如果列值中有某位为低电平,则表明行列交点处的键被按下;否则扫描下一行,直到扫完全部的行线为止。 (2)行反转法识别闭合键时,要将行线接一个并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作在输入方式;程序通过输出端口向全部行线上送低电平,然后读取列线的值;如果此时有某一键被按下,则必定会使某一列线值为零,程序再对两个并行端口进行方式设置,使行线工作在输入方式,列线工作在输出方式,并且将刚才读到的列线值从列线所接的并行端口输出,再读取行线上的值;那么,在闭合键所在的行线上的值必定为零。这样,当一个键被按下时,必定可以读到一对唯一的行值和列值。在我们提供的程序中就采用行反转法来识别键盘按键。,2在程序设计时,将各个键对应的代码(列值,行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 6346.23-2025电子设备用固定电容器第23部分:分规范表面安装金属化聚萘二甲酸乙二醇酯膜介质直流固定电容器
- 河北省保定市定州市2025-2026学年三年级上学期期末质量监测数学试卷(含答案)
- 2025-2026学年宁夏固原市隆德二中八年级(上)期末数学试卷(含部分答案)
- 五年级试卷及答案
- 网络布线题目及答案
- 2021-2022年人教部编版语文三年级上册第六单元测无纸试卷完整版
- 2020大学生银行顶岗实习总结【三篇】
- 云南省玉溪市2025-2026学年八年级上学期1月期末物理试题(原卷版+解析版)
- 初中历史知识课件
- 手足口病的考试及答案
- 2025护士条例专题培训
- 潍坊港中港区西作业区#5泊位工程环境影响评价报告书
- 安装水管安全协议合同
- 中国邮政集团公司战略合作协议书范本
- 重庆市渝北区2023-2024学年五年级上学期语文期末试卷(含答案)
- 2024子宫内膜癌分子分型临床应用中国专家共识(完整版)
- 《煤矿低浓度瓦斯管道输送安全保障系统设计规范》
- 换电柜维护培训课件
- 土石方工程挂靠合同
- 企业标准-格式模板
- 软件售后服务人员提成方案附表
评论
0/150
提交评论