- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一二__指令与汇编语言基础及汇编语言程序设计
东南大学
《微机实验及课程设计》
实验报告
实验一、二 指令与汇编语言基础及汇编语言程序设计
姓 名: 孙权 学 号:
专 业: 自动化 实 验 室: 计算机硬件技术
实验时间: 2010年04月13日 报告时间: 2010年04月20日
评定成绩: 审阅教师:
(报告正文部分的格式):
(要求:正文部分一律用五号字,宋体,1.25多倍行距。一级大标题靠左,四号,宋体,加粗。二级大标题靠左,小四,宋体,不加粗。)
报告文字宜精炼,内容建议如下:
一. 实验目的与内容(概述)
(含简单文字叙述)
实验目的:
了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点
掌握汇编语言程序指令编辑、宏汇编、连接、运行基本概念
熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境
学会利用DEBUG或TD检查认识指令功能的正确方法
进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念
熟练掌握动态调试程序TD/DEBUG的常用命令或窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器等环境
熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS功能调用的基本方法
实验内容:
1)掌握进入全屏命令行方式、修改环境的方法
2)确定源程序的存放目录构建个人实验环境
3)建立、编辑汇编源程序,构建典型的汇编程序框架
4)用汇编工具(MASM/TASM.EXE)汇编源程序产生OBJ目标文件
5)用链接程序(LINK/TLINK.EXE)产生EXE可执行文件
6)用调试工具软件(D/TD.EXE)调试执行程序
二. 基本实验原理(或基本原理)
(含简单文字叙述,关键电路原理图,程序框图)
微型计算机指令系统及指令寻址方式
汇编语言源程序的格式、组成、伪操作命令
DOS软中断和系统功能调用,BIOS调用
三. 方案实现与测试(或调试)
(含实验步骤—分步进行-调试-测试,关键/重要的程序片段,程序框架无需)
实验步骤:
将目标源代码(如add.asm)放入带汇编工具的文件夹中;
全屏启动命令行模式,进入上述文件夹,对源程序编译链接,编译出错则改正,生成可执行程序(.exe)文件;
直接键入debug myfile.exe回车(myfile为待调试可执行程序),用debug常用命令调试程序;
启动TD并载入.exe文件,熟悉TD界面(全局菜单、代码区、数据区、寄存器区、堆栈区、标志区等);
使用TD进行调试程序的一些基本操作:
查看数据区的数值:选择数据区的局部菜单中的Goto,在其输入框内输入要查看的数据区地址,确认后即可查看数据区特定范围的存储情况。也可输入地址1899:0000,则左下数据窗口显示从1899:0000开始的数据块。
直接运行:TD功能键F9,从当前CS:IP开始运行程序,直到断点或结束,观察程序运行的结果。
单步运行:使用TD功能键F7,每按一次程序向下运行一句,同时观察数据区、寄存器区、标志区的相应变化,验证程序是否运行正常。
断点运行:载入程序后,将光标放置在要设置断点的指令上,使用TD功能键F2即可设置断点,直接运行程序,当执行到该指令时将停止执行,这时可观察各个寄存器及存储器的值,可以验证程序运行是否正常。
直接添加指令:选择代码区局部菜单中的assemble选项,在其编辑框中直接输入指令确认后即可完成添加,单步运行可查看该指令的功能和执行结果。
通过字符串的变换和输入输出程序string.asm和十进制数转化为16进制程序num.asm熟悉和掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,并用TD调试。
程序:
(1)程序名:string.asm
data segment
input db 100,100 dup(0)
string1 db 0dh,0ah,please input your strings,0dh,0ah,$
string2 db 0dh,0ah,the strings you input are:,0dh,0ah,$
string3 db 0dh,0ah,Do you want to continue (y/n):,0dh,0ah,$
data ends
stacks segment stack
db 256 dup(0)
stacks ends
code segment
assume cs:code,ds:data,ss:stacks
main proc far
start
文档评论(0)