微机原理实验(2014)
更新时间:2023-09-29 05:59:01 阅读量: 综合文库 文档下载
微机系统及应用实验指导书
东华大学信息科学与技术学院自动化系
2014年9月
1
实验一 基本程序编程和程序调试
一、 实验目的
1、 掌握数码转换等基本程序设计的技巧和方法。 2、 熟悉DEBUG命令。
3、 学会和掌握用DEBUG调试程序的方法。
二、 实验设备
PC机一台,装有DOS基本系统
三、 实验内容及步骤
用DEBUG建立、汇编和运行调试程序的操作。DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。它共有19条命令完成相应的功能,命令及其格式可参阅附录一。
(一) DEBUG操作练习
1)实验调试程序
程序的功能是从3500H内存单元开始建立0-15共16个数据。程序如下: 地址 (H) 机器码(H) 助记符 2000 BF0035 MOV DI, 3500 2003 B91000 MOV CX, 0010 2006 B80000 MOV AX, 0000 2009 9E SAHF 200A 8805 MOV BYTE[DI],AL 200C 47 INC DI 200D 40 INC AX 200E 27 DAA 200F E2F9 LOOP 200A 2011 F4 HLT
2)实验步骤: (1)输入与修改
① 启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“—”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。
② 用DEBUG中的汇编命令 “A 地址”将程序建立在内存单元中。 在提示符“—”下键入 : “A 2000 ?” 此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程序了。即
2
显示 169C :2000 键入 MOV DI, 3500
169C: 2003 MOV CX, 0010
169C: 2011 HLT
: : :
③ 用反汇编命令 “U 地址”检查程序
在提示符“—”下,键入 “U 2000?”,将从2000内存单元开始的内容反汇编,屏幕上显示 169C:2000 BF0035 MOV DI, 3500 169C:2003 B91000 MOV CX, 0010 169C:2006 B8000 MOV AX, 0000 : : : : : : 169C:2011 F4 HLT
当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令, 则键入 “A 200A?” ,屏幕显示 169C:200A ,然后再键入MOV BYTE[DI], AL?,就把错误的程序改正了。
(2)显示和修改数据
①用修改内存单元命令 “E 地址” 在指定内存单元中存入一个数。
如要在3500为首址的单元中存入14H和25H两个数据,可在提示符“—”下,键入:“E 3500?” 显示 169C:3500 ××. 键入14,按空格键 ××. 25,按空格键
②用显示内存命令 “D 地址” 检查指定单元的内容 在提示符“—”下,键入 “D3500?”
显示 1489:3500 14 25 48 02 ???? 1489:3510 ** ** ** ** ???? : : : :
1489:3570 ** ** ** ** ????
若某单元内容有错则可用命令: “E 地址 ”进行修正。
③用显示和修改命令 “R ”或“R 寄存器名”显示寄存器或修改其内容 在提示符“—”下,键入 “R?”
显示 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE???????? DS=169C ES=169C SS=169C CS=169C IP=2000????????? 要修改IP的内容时,键入命令 “R IP”后, 显示 IP 2000,在2000之后键入新内容。
3
(3)程序运行
程序的运行方式有单步运行、断点运行和连续运行几种方式。
①单步运行
输入DEBUG跟踪命令“T”或“T=地址”或“T=地址 指定次数”,可从指定地址处运行该单元中的一条指令,以后只要连续输入“T”命令就能连续执行一条一条指令。 如在提示符“—”下,键入 “T=2000 ?” 显示 :
AX=0000 BX=0000 CX=001D DX-0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=169C ES=169C SS=169C CS=169C IP=2000 NV??? 169C:2003 B91000 MOV CX, 0010
②断点运行
用运行命令 “G=地址 地址断点 地址断点?”执行指定地址的程序 在提示符“—”下,键入 “G=2000 2011 ?”
显示 169C:2011 F4 HLT 表示这段程序已经执行完毕。
③连续运行
输入DEBUG命令“G=地址”,执行指定地址的程序 (WIN系统下,不建议使用此方式) (4)用显示内存命令检查运行结果
在提示符“—”下,键入命令 “D 地址?”,根据其中的内容判断程序运行是否正确。
如检查以上程序执行后的结果,在提示符“—”下,键入“ D 3500?”,可显示 169C:3500 00 01 02 03 04 ?? 15 169C:3510
(二)数码转换程序及其调试
1、 将ASCII码表示的十进制数转换为二进制数
1)程序设计的算法及其程序 十进制数据可表示为:
Dn????Dn?????nn?????D??????Di???i?i??n(?)DI代表十进制数1,2,3,?9,0 上式可转换为:
iD????((?(Dn????Dn??)???)?Dn??)??????D?)????D??ii??n(?) 由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始乘10加次位的操作,将结果再乘10再加下一次位,如此重复,则可求出二进制数结果来。程序流程及参考程序如图1-1。这里我们规定:被转换的ASCII码十进制数存放在3500H——3504H单位中。而转换结果存放
4
在3510H——3511H单元中。 2)实验步骤
(1)输入程序并检查无误。 (2)在3500H——3504H单元存入十进制数12的ASCII码,即E3500H↙,并输入3030303132H。 (3)G=2000 201D↙,运行程序
(4)用D3510↙来查看结果,应为:3510 0C 00 (5)反复试几组数,考查程序的正确性。
地址(H) 助记符 注释 2000 MOV SI,3500 ;源地址 2003 MOV DI,3510 ;结果地址 2006 MOV BX,000A ;乘数 10 2009 MOV CX,0004 ;计数 200C MOV AH,00 ;AH 清零 200E MOV AL,[SI] ;取被转换数
2010 SUB AL,30 ;ASCII码变十进制数 2012 IMUL BX ;高位(AX)*(BX)送AX 2014 ADD AL,[SI+01] ;取下一位
1017 SUB AL,30 ;ASCII码减30变十进制数 2019 INC SI ;源地址指针+1
201A LOOP 2012 ;CX-1,若CX不等于零则继续 201C MOV [DI],AX ;若CX不等于零则存结果 201E INT 3
图1-1
2 将十进制数的ASCII码转换为BCD码
1)程序流程和程序
设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换成BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制数的ASCII码,则对应存放结果的内容为“FF”。一字节ASCII码取其低四位即变为BCD码,程序流程图及考程序如图1-2所示。
2)实验步骤
(1) 输入程序并检查无误。
(2) 在3500H——3504H单元中存入五位十进制数的ASCII码,即 E3500↙,并输入31,32,33,34,35。 (3) G=2000 201C↙,运行以上程序。 (4) D350A↙,显示结果为:
0000:350A 01 02 03 04 05 CC? (5) 反复试几组数,考查程序的正确性。
5
正在阅读:
微机原理实验(2014)09-29
双向流固耦合实例04-05
28.2 解直角三角形(1)优质课教案完美版 - 图文10-02
拼搏的足球精神作文600字06-24
全民健身运动会活动策划书05-28
吉林省长春市朝阳区2017-2018学年高二第一学期第一学程质量测试历史试卷(无答案)01-11
北大心理学自考心理测量试题整理(选择)05-12
2012年北京大学留学生入学考试英语试卷11-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 微机
- 原理
- 实验
- 2014