实验一汇编语言程序设计.ppt

上传人:sh****n 文档编号:7433258 上传时间:2020-03-21 格式:PPT 页数:44 大小:820.50KB
返回 下载 相关 举报
实验一汇编语言程序设计.ppt_第1页
第1页 / 共44页
实验一汇编语言程序设计.ppt_第2页
第2页 / 共44页
实验一汇编语言程序设计.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
微机原理与接口技术 朱华贵2016年04月12日 微机原理与接口技术 实验一汇编语言程序设计 朱华贵2016年04月12日 微机原理与接口技术 汇编语言程序的上机过程 1 上机环境要运行调试汇编语言程序 至少需要以下程序文件 编辑程序 EDIT COM或其他文本编辑工具软件 用于编辑源程序 汇编程序 MASM EXE 用于汇编源程序 得到目标程序 连接程序 LINK EXE 用于连接目标程序 得到可执行程序 调试程序 DEBUG EXE 用于调试可执行程序 2 上机过程 汇编语言程序上机操作包括 编辑 汇编 连接和调试几个阶段 1 编辑源程序用文本编辑软件创建 编辑汇编源程序 常用编辑工具有 EDIT COM 记事本 Word等 无论采用何种编辑工具 生成的文件必须是纯文本文件 所有字符为半角 且文件扩展名为 asm 文件名不分大小写 由1 8个字符组成 2 上机过程 续 2 汇编用汇编工具对上述源程序文件 asm 进行汇编 产生目标文件 obj 等文件 汇编程序的主要功能是 检查源程序的语法 给出错误信息 产生目标程序文件 展开宏指令 2 上机过程 续 汇编过程如下 在DOS状态下 输入命令 MASMMYFILE ASM 回车 即启动了汇编程序 此命令执行后 会出现下面的3行信息 依次按回车键 即选择默认值 即可建立3个输出文件 其扩展名分别为 OBJ 目标文件 LST 列表文件 和 CRF 交叉引用文件 ObjectFilename MYFILE OBJ SourceListing Nul LST CrossReference Nul CRF 2 上机过程 续 如果汇编过程中发现有语法错误 则屏幕上会显示出错语言的位置和出错的类型 此时 需要进行修改 然后再进行汇编 如此进行 直至汇编无错误 得到目标文件为止 2 上机过程 续 3 连接汇编产生的目标文件 obj 并不是可执行的程序 还要用连接程序把它转换为可执行的EXE文件 连接过程如下 在DOS状态下 输入命令 LINKMYFILE OBJ 回车 即可完成连接 与汇编过程类似 如果连接过程中出错 那么程序会在屏幕上显示提示信息 此时 需要对源程序进行查错 修改 然后再进行汇编 连接 直至连接无错误 得到可执行文件为止 2 上机过程 续 4 程序运行在DOS提示符下输入可执行程序的文件名即可运行程序 若程序能够运行但不能得到预期结果 则就需要检查源程序 改错后再汇编 连接 运行 5 程序调试在程序运行阶段 有时不容易发现问题 尤其是碰到复杂的程序更是如此 这时就需要使用调试工具进行动态查错 常用的动态调试工具为DEBUG 3 运行调试 DEBUG是为汇编语言设计的一种调试工具 它通过单步 设置断点等方式为汇编语言程序员提供了非常有效的调试手段 它可以直接调试COM文件和EXE文件 DEBUG状态下的所有数据都采用十六进制形式显示 无后缀H 3 运行调试 续 1 DEBUG的运行在DOS状态下 输入下列命令之一 就可以进入DEBUG调试状态 命令一 DEBUG 回车 格式二 DEBUG可执行文件名 回车 进入DEBUG调试状态后 将显示提示符 此时 可输入所需的DEBUG命令 3 运行调试 DEBUG的主要命令 1 显示内存单元内容的命令D格式为 D 地址 或 D 范围 说明 上面格式中的 符号是DEBUG的提示符 下同 例如 显示指定范围 DS 100 DS 1FF 内存单元内容的命令是 D1001FF这里没有指定段地址 D命令自动显示DS段的内容 3 运行调试 DEBUG的主要命令 2 修改内存单元内容的命令E格式一 用给定内容代替指定范围的单元内容 E地址内容表例如 EDS 100F358595A8D格式二 逐个单元相继地修改 E地址例如 EDS 100 18E4 010089 78 此命令是将0100单元内容89改为78 78是程序员从键盘输入的 程序员在修改完一个单元后 可按空格键继续修改下一单元内容 直至按回车键结束该命令 3 运行调试 DEBUG的主要命令 3 检查和修改寄存器内容的命令R格式一 显示CPU内部所有寄存器内容和标志寄存器中的各标志位状态 R格式二 显示和修改某个指定寄存器内容 R寄存器名例如 RAX格式三 显示和修改标志寄存器内容 RF 3 运行调试 DEBUG的主要命令 4 运行命令G格式为 G 地址1 地址2 地址3 其中 地址1指定了运行的起始地址 后面的均为断点地址 当指令执行到断点时 就停止执行并显示当前所有寄存器及标志位的内容和下一条要执行的指令 3 运行调试 DEBUG的主要命令 5 跟踪命令T格式一 逐条指令跟踪 T 地址 该命令从指定地址起执行一条指令后停下来 显示所有寄存器及标志位的内容 若未指定地址 则从当前的CS IP开始执行 格式二 多条指令跟踪 T 地址 值 该命令从指定地址起执行n条指令后停下来 n由 值 确定 3 运行调试 DEBUG的主要命令 6 汇编命令A格式为 A 地址 该命令允许输入汇编语言语句 并能把它们汇编成机器代码 相继地存放在从指定地址开始的存储区中 必须注意 输入的数字均默认为十六进制数 3 运行调试 DEBUG的主要命令 7 反汇编命令U格式一 从指定地址开始 反汇编32字节 U 地址 格式二 对指定范围内的存储单元进行反汇编 U 范围 3 运行调试 DEBUG的主要命令 8 执行命令P格式为 P 地址 指令数 该命令控制CPU执行指定地址处的指令 若指定了指令数 则CPU执行从指定地址开始的若干条指令 若未指定地址和指令数 则CPU执行由 CS IP 指定地址处的一条指令 P命令与T命令的差别在于P命令把子程序调用 CALL 重复字符串指令 REP 或软件中断 INT 当成一条指令来执行 简化了跟踪过程 3 运行调试 DEBUG的主要命令 9 退出DEBUG命令Q格式为 Q该命令退出DEBUG程序 返回DOS 3 运行调试 DEBUG使用说明 在DEBUG中的提示符 下才能输入命令 在按回车键后 该命令才开始执行 命令是单个字母 命令和参数的大小写可混合输入 命令和参数 参数和参数之间要用空格 逗号或制表符等分隔 可以用 段值 偏移量 的形式来表示地址 也可以用段寄存器来代表 段值 例如 1000 0 DS 10 CS 30等 3 运行调试 DEBUG使用说明 续 范围 用来表示地址范围 从哪个地址开始 到哪个地址结束 它有两种表示方式 地址地址 前者表示起始地址 要用 段值 偏移量 来表达 后者表示终止地址 只用 偏移量 来表示 地址长度 前者表示起始地址 要用 段值 偏移量 来表达 后者表示该区域的大小 用字母 L 开头的数值来表示 例如 100 50100100 50L100 3 运行调试 DEBUG使用说明 续 当命令出现语法错误时 将在出错位置显示 Error 可用组合键Ctrl C或Ctrl Break来终止当前命令的执行 还可用组合键Ctrl S来暂停屏幕显示 当连续不断地显示信息时 实验准备 用DEBUG验证程序段 通常汇编教学中 汇编程序结构会在指令系统后面讲 学生在学习指令系统时由于没有讲汇编程序结构而无法编写汇编程序来加深对汇编指令的理解 因此 在这里我们通过2个例子 介绍使用DEBUG调试工具编写程序段来学习汇编指令 有关DEBUG的常用命令的用法请参看相关资料和课件 题目 非压缩BCD码的减法运算 做68 9 movax 0608hmovbl 09hsubal blaas 运行debug 首先用A命令输入程序 Debug中只使用16进制数 且无需加H后缀 直接用回车退出汇编编辑状态 使用T命令跟踪执行 第一个T命令要带上程序首地址 后面的T命令无需地址 标志位 当前指令执行后的各寄存器的结果 这是还未执行的下一条指令的反汇编 这是还未执行的下一条指令的地址和指令码 下面给出DEBUG中标志位状态符号的含义 调试完后用Q命令退出DEBUG 再举一个有访存操作的例子 MOVSI 0050H DS 2000HMOVDI 0100H ES 3000HMOVCX 5CLDREPMOVSB 1 先用A命令输入程序 2 用R命令修改DS和ES寄存器到约定值 DS的原始值 输入的修改值 3 用D命令查看源数据区和目标数据区 4 用E命令初始化源数据区后再用D命令检查源数据区和目的数据区 5 单步跟踪执行程序 6 执行后检查源数据区和目标数据区 注意 用A命令输入指令时 如果输入错误debug会立即指出错误和位置 地址不会变化 以便用户修正指令 附2 汇编语言上机过程 用DEBUG调试程序 段值偏移指令码反汇编的源码 1 用U命令查看程序和目标码及指令地址 2 用T命令单步跟踪 逐条执行看中间结果 DEBUG将显示每个寄存器以及各标志位的当前值 3 对于系统功能调用 可以用G命令设置断点执行 也可以用P命令跳过过程与系统功能服务程序 设断点执行 断点设在INT21H的后一句 INT21H输出的一个字符 实验1汇编语言程序的调试与运行 一 实验目的1 学习数据传送和算术运算指令的用法2 熟悉在PC机上编辑 汇编 连接 调试和运行汇编语言程序的过程 二 实验内容编程实现SUM a1b1 a2b2 a10b10 三 参考程序 内存数据定义DATASEGMENTORG1000H 为调试方便将数据存于指定地址处 adb89 5 56 80 10个数据ORG2000H 便于查看和设置bdb18 29 12 38 10个数据ORG3000H SUMdw DATAENDSCODESEGMENTASSUMECS CODE DS DATASTART MOVAX DATAMOVDS AX MOVDX 0MOVSI 0MOVCX 10LOP1 MOVAL a SI MULb SI ADDDX AXINCSILOOPLOP1 MOVSUM DXMOVAH 4CHINT21HCODEENDSENDSTART 四 调试步骤1 编辑源程序 建立一个以后缀为 ASM的文件 2 汇编源程序 检查程序有否错误 有错时回到编辑状态 修改程序中错误行 无错时继续第3步 3 连接目标程序 产生可执行程序 4 DEBUG调试可执行程序 利用T命令进行操作并记录程序每次执行到 处 CX SI AX及数据段DS 3000H DS 3001H的内容 4 DEBUG调试结果分析 五 思考题编写程序将定义的一组字符串中的小写字母全部转换成大写字母 其余字符不变 例如下面BUFFER中定义的一组字符串 DATASEGMENTBUFFERDB helloASM 20151030 STRLENEQU BUFFEROUTSTRDBSTRLENDUP DATAENDS
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!