汇编语言课程实验——实验一 8086汇编指令编码和调试


实验任务一:

一、用R命令查看,改变CPU寄存器的内容

查看:

 修改AX的内容:

 

 二:用D命令查看内存中的内容

D命令预设地址处的内容

 

 

 查看特定长度的内容

 

 

 三、用E命令修改内存中的内容

 

 

 四、用U命令将内存单元中的内容翻译为汇编指令显示

 

 

 五、用T命令执行指向CS:IP的单条指令

 

 

 六、用A命令以汇编的形式向内存中写入机器指令

 

 实验任务二:

 可以看出,日期存在于FFF0:00F6到FFF0:00FD中,占八个字节。

尝试修改:

 

 修改无效。原因是在8086中,C0000~FFFFF中内容用作ROM空间,受到保护无法修改。

 

实验任务三:

在debug中使用E命令向内存单元填充数据

 

 实验任务四:

录入如下内容:

单步执行,观察结果。

 填空:

002E 002C 002A 0028 002A 002C 002E 0030

回答问题:

问题1:逻辑地址:0020:0030、物理地址:00230h

问题2:

问题3:

问题4:

实验任务五:

问题1:两条指令一起执行。debug的T命令在执行修改寄存器SS的指令时,下一条指令也跟着执行。

问题2:根据题意进行跟踪。

可以看到题目中划线部分为代码偏移量,即IP与CS的值。随着代码的执行,代码的偏移量在不断地变化:0108->010B->010C->010F->0110

执行入栈操作后,栈顶指针向前移动2个字节,所以整体向前移动2个字节。

实验任务五:

使用masm与link进行编译连接

观察程序段前缀,发现前两个字节是CD 20。验证完成。

实验任务七:

补全代码,完成代码自身的自我复制:mov ax, 4c00h之前的指令复制到内存0:200开始的
连续的内存单元。

第一空:cs

为了定位到代码的开头,使用了代码段的开头cs

第二空:23

可以使用debug的u命令得到。

汇编截图:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM