网站大量收购闲置独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一汇编语言程序设计 上课时间:2011年12月05日 指导教师:朱华贵 实验一 汇编语言程序设计(一) 实验1.1 汇编语言程序的调试与运行 实验1.2 分支程序设计(一) 4.DEBUG调试结果分析: 六.思考题 将上述程序改为5位数相加,结果为6位数的加法程序。(需考虑进位) 简单叙述上机步骤和调试方法。 实验1.2 分支程序设计(一) 一.实验目的 掌握分支结构程序的编制方法。 二.实验内容与要求 编制程序实现如下操作: 设有10个学生成绩,分别统计低于60分、60~69分、70~79分、80~89分、90~99分及100分的人数,并存放于S5、S6、S7、S8、S9、S10单元中。 实验1.2 分支程序设计(一) 三.程序框图 见实验指导书 四.程序清单 实验指导书 五.实验结果 进入DEBUG程序后: ☆☆☆☆ (CS:0090H) ☆☆☆ (CS:0086H) ☆☆ (CS:0076H) ☆ (CS:000FH) DS:0H~DS:0AH 的内容 执行程序至星号处 5.在操作系统状态下,运行程序,并记录屏幕显示内容。 17631 65087 43691 10732 06815 12732 屏 幕 显 示 内 容 加 数 被 加 数 彭虎,微机原理与接口技术(第二版),电子工业出版社,2008 * 实验准备: 用DEBUG验证程序段 通常汇编教学中,汇编程序结构会在指令系统后面讲,学生在学习指令系统时由于没有讲汇编程序结构而无法编写汇编程序来加深对汇编指令的理解,因此,在这里我们通过2个例子,介绍使用DEBUG调试工具编写程序段来学习汇编指令。 有关DEBUG的常用命令的用法请参看相关资料和课件。 题目:非压缩BCD码的减法运算,做68-9 mov ax, 0608h mov bl, 09h sub al, bl aas 运行debug 首先用A命令输入程序 Debug中只使用16进制数,且无需加H后缀 直接用回车退出汇编编辑状态 使用T命令跟踪执行 第一个T命令要带上程序首地址 后面的T命令无需地址 标志位 当前指令执行后的各寄存器的结果 这是还未执行的下一条指令的反汇编 这是还未执行的下一条指令的地址和指令码 下面给出DEBUG中标志位状态符号的含义。 NV UP DI PL NZ NA PO NC OV DN EI NG ZR AC PE CY 溢出OF 方向DF 中断IF 符号SF 零位ZF 辅助AF 奇偶PF 进位CF 为0时 为1时 标志 调试完后用Q命令退出DEBUG。 再举一个有访存操作的例子 MOV SI, 0050H ; (DS)=2000H MOV DI, 0100H ; (ES)=3000H MOV CX, 5 CLD REP MOVSB 1)先用A命令输入程序 2)用R命令修改DS和ES寄存器到约定值 DS的原始值 输入的修改值 3)用D命令查看源数据区和目标数据区 4)用E命令初始化源数据区后再用D命令检查源数据区和目的数据区 5)单步跟踪执行程序 6)执行后检查源数据区和目标数据区 注意,用A命令输入指令时,如果输入错误debug会立即指出错误和位置。地址不会变化,以便用户修正指令。 附加2 汇编语言上机过程 用MASM 5.0上机过程 第一步编辑: 第二步汇编: 可以不输入,用回车回应 修改好后再汇编: 第三步连接并执行: 可以直接用回车回应 执行 用DEBUG调试程序: 段值 偏移 指令码 反汇编的源码 1)用U命令查看程序和目标码及指令地址 2)用T命令单步跟踪,逐条执行看中间结果,DEBUG将显示每个寄存器以及各标志位的当前值 这是还未执行的下一条指令 这是MOV BX,[SI]的执行结果 标志位 3)对于系统功能调用,可以用G命令设置断点执行,也可以用P命令跳过过程与系统功能服务程序。 设断点执行,断点设在INT 21H的后一句 INT 21H输出的一个字符 注意:DEBUG只支持16位汇编调试,如果要编写32位汇编程序,需要用MASM 6.11汇编和连接,用CodeView软件查看执行代码。但MASM 6.11中带的CodeView 4.01可以查看32位程序的执行代码,不能进行单步调试。要调试可以考虑使用SoftICE软件。 另外,VC嵌入汇编可以支持80486的所有指令,也支持32位汇编。 用VC6.0实现C++中嵌入汇编 建立源程序asmsample.cpp 将下列程序输入到asmsample.cpp中 #include io

文档评论(0)

wangjie111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档