汇编言语 课后实验.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编言语 课后实验

汇编语言 课后实验1~5 预备试验1 一.用R命令 1.用R命令查看寄存器的内容: 如下,CS=14E5,IP=0100,也就是说当前CPU要读取、执行14E5:0100出的指令; 且该内存单元所存放的机器码为:FE 74 05,对应的汇编指令为:PUSH [SI+05] 用R命令来修改寄存器中的内容: 如下,将AX中的值修改成1111,并查看修改结果。 还可以用R命令修改CS和IP中的值,如下: D命令 使用“d 段地址:偏移地址”的格式,debug将列出从指定单元开始的128个内存单元的内容,如下:左边部分是每行的起始地址,中间是从指定地址开始的128个内存单元中的内容,右边部分是每个单元中数据对应的可显示的ASCII码字符,没有可显示的字符用"."来表示。 2.也可以用D命令直接查看,将列出debug预设命令的地址处的内容,如下: 也可以指定D命令的查看范围:格式“d 段地址:起始偏移地址 结尾偏移地址”, 如下: E命令 用“e 起始地址 数据 数据......”的格式来改写内存中的内容,如下:先用d命令查看原来地址中的内容,然后用e 命令修改后再查看。 也可以采用提问的方式来一个一个的改写内存中的内容,不用改写的直接按空格键跳过,修改完毕后按enter键结束操作,如以下1000:10中的内容没有改写。 还可以用e命令向内存中写入字符和字符串。 如何用命令向内存中写入机器码,查看机器码,并执行机器码。 用E 命令向内从中写入机器码:如下,写入后再查看内存中的内容。 2.用U命令将内存单元中的内容翻译为汇编指令,没有写终止地址的,都默认对20H个字节的内容进行反汇编。 3.用t 命令来执行我们写入的指令,在使用t 命令之前要用r 命令修改cs,ip寄存器中的内 容,使它们指向我们所写机器码的初始地址,如下: 可以用A命令以汇编指令的形式直接在内存中写入机器指令。 使用A命令写入汇编指令时,在给出的其实地址后直接按enter键则表示操作结束。 写完汇编指令后,debug会将这些汇编指令翻译为对应的机器指令,并将它们写到对应的内存中,可以用d命令查看,如下: 实验一: 用debug将程序写入内存并执行。 1)将程序写入内存 2)设置cs,ip的值 3)逐步执行程序 将指令写入指定的内存单元,利用这三条指令计算三条2的8次方。 1)将指令写入内存,并改变cs,ip的值 2)运行 查看内存中的内容:在pc机主板上的ROM中有一个生产日期,在内存FFF00H~FFFFFH中,找到它,并试图修改它。 1)如下:日期是2010年10月20日 试图修改它,如下: 无法修改该日期,因为该生产日期是在ROM区,只可读不可写。 4. 预备试验2 关于D命令: 1)用段寄存器ds查看内存中的内容 查看当前代码段中的指令代码 查看当前栈段中的内容 在E、A、U命令中使用段寄存器 1)利用段寄存器在指定的内存中写入数据 以汇编指令的形式显示当前代码段中的代码 以汇编指令的形式,向指定单元中写入指令 T命令对栈代码段中指令的执行情况 实验二 将一下代码写入内存,逐步执行,并根据实际情况填空。 暂时不明白为什么2000:0~2000:f中的内容会发生改变。 实验3 编程、编译、连接、跟踪 将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。 (2)用debug追踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。 (3)psp的头两个字节是CD 20,用debug加载t1.exe,查看psp的内容。 实验4. (1)编程,向内存0:200~0:23f依次传送数据0~63. assume cs:code code segment mov ax,0 mov ds,ax mov bx,200h mov al,0 mov cx,64 s:mov ds:[bx],al inc bx inc al loop s mov ax,4c00h int 21h code ends end (2)编程,向内存0:200~0:23f依次传送数据0~63,程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h” (3)下面程序的功能是将“mov ax,4c00h”之前的指令富孩子到内存0:200处,补全程序。 assu

文档评论(0)

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

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

1亿VIP精品文档

相关文档