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

汇编语言实验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 =

文档评论(0)

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

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

1亿VIP精品文档

相关文档