东华大学微机实验原理实验报告.doc

上传人:飞*** 文档编号:28646554 上传时间:2018-01-18 格式:DOC 页数:59 大小:1.07MB
返回 下载 相关 举报
东华大学微机实验原理实验报告.doc_第1页
第1页 / 共59页
东华大学微机实验原理实验报告.doc_第2页
第2页 / 共59页
东华大学微机实验原理实验报告.doc_第3页
第3页 / 共59页
东华大学微机实验原理实验报告.doc_第4页
第4页 / 共59页
东华大学微机实验原理实验报告.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《东华大学微机实验原理实验报告.doc》由会员分享,可在线阅读,更多相关《东华大学微机实验原理实验报告.doc(59页珍藏版)》请在金锄头文库上搜索。

1、实验一 基本程序编程和程序调试一、实验目的1、 掌握数码转换等基本程序设计的技巧和方法。2、 熟悉 DEBUG 命令。3、 学会和掌握用 DEBUG 调试程序的方法。二、实验设备PC 机一台,装有 DOS 基本系统三、实验内容及步骤用 DEBUG 建立、汇编和运行调试程序的操作。DEBUG 是 DOS 系统支持的用于汇编语言源程序调试的系统软件。它共有 19 条命令完成相应的功能,命令及其格式可参阅附录一。(一) DEBUG 操作练习1)实验调试程序程序的功能是从 3500H 内存单元开始建立 0-15 共 16 个数据。程序如下:地址 (H) 机器码(H ) 助记符2000 BF0035 M

2、OV DI, 35002003 B91000 MOV CX, 00102006 B80000 MOV AX, 00002009 9E SAHF200A 8805 MOV BYTEDI,AL200C 47 INC DI200D 40 INC AX200E 27 DAA200F E2F9 LOOP 200A2011 F4 HLT2)实验步骤:(1 )输入与修改 启动 DOS,在 DOS 提示符下输入 D E B U G 后回车,屏幕立即显示 DEBUG 提示符“ ”,表明已进入 DEBUG 状态,可以执行 DEBUG 的各种命令。 用 DEBUG 中的汇编命令 “A 地址”将程序建立在内存单元中。

3、 在提示符“ ”下键入 : “A 2000 ” 此时显示器上将会显示程序的段地址 CS 和偏移地址 IP,你就可以输入以上的程序了。即显示 169C :2000 键入 MOV DI, 3500 169C: 2003 MOV CX, 0010169C: 2011 HLT : : : 用反汇编命令 “U 地址”检查程序在提示符“” 下,键入 “U 2000”,将从 2000 内存单元开始的内容反汇编,屏幕上显示169C:2000 BF0035 MOV DI, 3500169C:2003 B91000 MOV CX, 0010169C:2006 B8000 MOV AX, 0000 : : : :

4、:169C: 2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改 200A 单元中的指令, 则键入“A 200A” ,屏幕显示 169C:200A ,然后再键入 MOV BYTEDI, AL,就把错误的程序改正了。(2 )显示和修改数据用修改内存单元命令 “E 地址” 在指定内存单元中存入一个数。如要在 3500 为首址的单元中存入 14H 和 25H 两个数据,可在提示符“”下,键入:“ 3500”显示 169C: 3500 键入 14,按空格键 25,按空格键用显示内存命令 “D 地址 ” 检查指定单元的内容在提示符“” 下,键入 “D3500”显示 148

5、9:3500 14 25 48 02 1489:3510 * * * * : : :1489:3570 * * * * 若某单元内容有错则可用命令: “E 地址 ”进行修正。用显示和修改命令 “R ”或“R 寄存器名”显示寄存器或修改其内容在提示符“” 下,键入 “R”显示 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEEDS=169C ES=169C SS=169C CS=169C IP=2000要修改 IP 的内容时,键入命令 “R IP”后, 显示 IP 2000,在 2000 之后键入新内容。(3 )程序运行程序的运行方式有单步运行、断点运行和连续运行几种

6、方式。单步运行 输入 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 NV169C:2003 B91000 MOV CX, 0010断点运行用运行命令 “G=地址 地址断点 地址断点”执行指定地址的程序在提示符“” 下,键入 “

7、G=2000 2011 ”显示 169C: 2011 F4 HLT 表示这段程序已经执行完毕。连续运行输入 DEBUG 命令“G=地址” ,执行指定地址的程序(4 )用显示内存命令检查运行结果在提示符“” 下,键入命令 “D 地址 ”,根据其中的内容判断程序运行是否正确。如检查以上程序执行后的结果,在提示符“”下,键入“ D 3500”,可显示169C:3500 00 01 02 03 04 15169C:3510 (二)数码转换程序及其调试1、 将 ASCII 码表示的十进制数转换为二进制数1)程序设计的算法及其程序十进制数据可表示为:DI 代表十进制数 1,2,3 ,9 ,0上式可转换为:

8、由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位 Dn 开始乘 10 加次位的操作,将结果再乘 10 再加下一次位,如此重复,则可求出二进制数结果来。程序流程及参考程序如图 1-1。这里我们规定:被转换的 ASCII 码十进制数存放在 3500H3504H 单位中。而转换结果存放在 3510H3511H 单元中。2)实验步骤(1 )输入程序并检查无误。)( iniinn DD )()( Dnnninii(2 )在 3500H3504H 单元存入十进制数 12 的 ASCII 码,即 E3500H,并输入 3030303132H。(3 ) G=2000,运行程序,并用 CTRL+C

9、 来中断程序返回监控状态。(4 )用 D3510来查看结果,应为:3510 0C 00(5 )反复试几组数,考查程序的正确性。地址(H) 助记符 注释2000 MOV SI,3500 ;源地址2003 MOV DI,3510 ;结果地址2006 MOV BX,000A ;乘数 102009 MOV CX,0004 ;计数200C MOV AH,00 ;AH 清零200E MOV AL,SI ;取被转换数2010 SUB AL,30 ;ASCII 码变十进制数2012 IMUL BX ;高位(AX)*(BX)送 AX2014 ADD AL,SI+01 ;取下一位1017 SUB AL,30 ;A

10、SCII 码减 30 变十进制数2019 INC SI ;源地址指针+1201A LOOP 2012 ;CX-1,若 CX 不等于零则继续201C MOV DI,AX ;若 CX 等于零则存结果201E INT 3 图 1-12 将十进制数的 ASCII 码转换为 BCD 码1)程序流程和程序设从键盘输入的五位十进制数的 ASCII 码已存放在 3500H 起始的内存单元内,把它转换成 BCD 码后,再按位分别存入 350AH 起始的内存单元内。若输入的不是十进制数的 ASCII 码,则对应存放结果的内容为“FF ”。一字节 ASCII 码取其低四位即变为 BCD 码,程序流程图及考程序如图

11、1-2 所示。2)实验步骤(1 ) 输入程序并检查无误。(2 ) 在 3500H3504H 单元中存入五位十进制数的 ASCII 码,即E3500,并输入 31,32 ,33 ,34 ,35。(3 ) G=2000,运行以上程序。(4 ) D350A,显示结果为:0000:350A 01 02 03 04 05 CC(5 ) 反复试几组数,考查程序的正确性。地址(H) 助记符 注释2000 MOV CX,0005;循环计数器赋初值2003 MOV DI,3500;ASCII 码首址2006 MOV BL,FF ; 错误标志送 BL2008 MOV AL,DI;送 ASCII 码至 AL200A

12、 CMP AL,3A; 比较 AL 与 3AH200C JNB 2014; 不低于 3A 则转 2014200E SUB AL,30; 低于 3A 则取 ASCII 码的低四位2010 JB 2014; 低于 30 则转 20142012 MOV BL,AL; 否则 AL 内容送 BL,取代 FF2014 MOV AL,BL; 结果或错误标志送 AL2016 MOV DI+0A, AL2019 INC DI201A LOOP 2006201C INT 3图 1-23 将十六位二进制数转换为 ASCII 码表示的十进制数1)程序及其流程十六位二进制数的值域为 065535,最大可转换为五位十进制

13、数。算法:五位十进制数可表示为:Di:表示十进制数 09。因此,将十六位二进制数转换为五位 ASCII 码表示表示的十进制数,就是求 D1D4,并将它化为 ASCII 码。程序流程图如图 1-3 所示,设源数据存于 35003501H 单元中,结果数存于35103514H 单元中。2)实验步骤(1 ) 输入程序并检查无误。(2 ) 在 35003501H 单元中存放 0C00,运行程序并检查结果,应看到 35103514H 单元中的数依次为 3030303132。 DDDN(3 ) 反复试几组数,并运行程序、观察结果。地址(H) 助记符 注释2000 MOV DX,3500;取二进制数2004 MOV SI,3515; 目标首址在 35102007 DEC SI2008 MOV AX,DX200A MOV DX,0000200D MOV CX,000A 2010 DIV CX; ; 除 102012 XCHG AX,DX2014 ADD AL,302016 MOV SI,AL2018 CMP DX,0000201B JNE 2007201D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号