- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言实验
汇编语言程序设计 实验一 DEBUG 程序
学号: 姓名:
寄存器和内存
开始 Debug 程序。输入“Q( ” 退出程序。再次启动 Debug。
输入 “r( ”来显示CPU的当前状态和寄存器中的当前内容。
输入 “r AX( ”和“1234”,_______寄存器中的内容变为 1234。
输入 “r DS( ”和“2000”,_______寄存器中的内容变为 2000。
输入 “d DS:1000( ”来显示数据段中 80H 字节数据,把数据抄在这里:
输入 “f DS:1000 1100 77( ”再显示一次这 80H 字节。判断这条指令的作用是什么?
再输入 “d 2000:1000( ”来显示数据段中 80H 字节数据。观察与前面的数据有无不同。
输入 “d 1900:0100( ”和“d 1ff0:0100( ”来显示两个存储段中的内容。比较其中 2000:0000 段中的数据。相同段落中的数据相同么?根据你的观察,得出结论,是否程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段中。
2.输入机器码,使用单步和断点
退出 Debug,再重新启动 Debug。
输入 “r( ”观察 CPU 的状态,下一条指令是什么?
使用两种方式输入一段程序,第一种方式:直接输入机器码。
输入 “u( ”来显示程序段中的指令序列。然后输入 “d CS:100( ” 来显示代码段中的数据。观察显示内容。
“u CS:100 106( ”做反汇编,就是显示出汇编语句。将这几句汇编语句记录下来:
使用输入 “r( ”观察 CPU 的状态,使用 “t( ”来跟踪程序,直至最后一条指令执行完毕。注意,跟踪程序前,要让 IP 寄存器中的值是 100H。一直监视 AX 和 IP 寄存器的内容变化,尤其是标志位的变化。
第二种方式,是输入汇编语句。重启 Debug 程序。
先输入 “a CS:100( ”,然后输入:
MOV AX, FF00
ADD AX,01F0
MOV BX,AX
NEG BX
ADD AX,BX
输入 “u CS:100 10A( ”就可以得到这几条语句的机器码。把机器码记录下来:
使用命令“r ip( ”再输入 “100( ”,可以将寄存器 IP 中的内容置为 “100H”。再输入“r( ”观察 CPU 的状态,然后反复输入 “t( ” 跟踪程序,直到程序结束。解释为什么标志位内容会有改变?另外,说明这段程序完成什么任务?
重新把寄存器 IP 的内容变为 100H,不使用跟踪命令 “t”,改用“g 10c”来完成程序。
程序中还可以加断点,做法是在程序中加入 “int 3” 这条指令。如果这条指令在程序的末尾,我们可以通过输入 “g( ” 来完成运行程序。这样就不需像上面需要告诉 Debug 程序最后机器码字节的地址偏移量了。“int 3”是 Debug 中很有效的返回控制指令。把这条指令放在程序中必要的位置上,在这条指令后面的代码在不允许时就不会运行。
3.ASCII 字符码,从键盘输入,从显示器输出
(i) 标准 ASCII ( American Standard Code for Information Interchange ) 码使用 7- bit 二进制数来代表字符。一般文本信息经常用 ASCII 编码。
使用命令 “a CS:100( ”, 输入下面的代码:
MOV BX,0
MOV [BX],BL
INC BX
CMP BH,1
JNE 103
INT 3
使用 “d DS:0 100( ”命令,显示程序运行前相应内存段中的数据。运行上面的程序来填充 DS:0000-00FF 这段内存中的内容。再次输入 “d DS:0 100( ”命令来显示填充的内容。在窗口的右边,可以看到相应的ASCII码字符。
如果填充的内容不是字符,显示就用点表示。用类似方法,如何将字符串“How are you?”写入计算机内存呢?
(ii) 计算机的 BIOS ( Basic Input / Output System ) 程序有很多子程序,用来通过标准外设处理输入和输出,比如,键盘和显示器。
BIOS 的程序都可以通过称为系统中断的特殊指令被调用。例如:
INT 16H 返回值是把下一个键盘输入值送入寄存器 AL
INT 10H 当 BH = 0 时,将光标移到由寄存器 DH 和 DL 内容所指定的行和列的位置上
INT 21H 当 AH =
您可能关注的文档
- 模式识别报告.doc
- 模拟试卷(四).doc
- 模拟试卷(五).doc
- 模拟电子技术教学大纲.doc
- 模板工程l劳务分包合同.doc
- 欣赏《彼得与狼》教案.doc
- 欢太公路桥梁改建工程监理大纲.doc
- 欧盟垃圾焚烧污染物排放标准.doc
- 正确使用成语练习有答案.doc
- 模拟人体液中纤维蛋白原在电极上的生物电化学研究_立项申请书.doc
- 山东恒源石油化工集团有限公司校园招聘模拟试题附带答案详解及答案1套.docx
- 山东恒源石油化工集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版最新.docx
- 山东恒源石油化工集团有限公司校园招聘模拟试题附带答案详解附答案.docx
- 2024版人力资源管理PPT课件 .pdf
- 山东恒源石油化工集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版新版.docx
- 山东恒源石油化工集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版审定.docx
- 数据库管理系统项目指标评估报告.docx
- 山东省青岛市集团学校2024届数学八下期末考试模拟试题含解析.pdf
- 山东恒源石油化工集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版带答.docx
- 山东恒源石油化工集团有限公司校园招聘模拟试题附带答案详解推荐.docx
文档评论(0)