Assemble实验报告

Posted jdl-tecshadower

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Assemble实验报告相关的知识,希望对你有一定的参考价值。

  这是第一二章的汇编语言上机实验,这次实验的主要内容是掌握使用debug工具编写和调试汇编命令的方法掌握一些基本的汇编指令用法及其作用。

一、DOS语言开发环境的搭建:

  这是显示了本机下的DOS配置文件,在文件末尾写入mount d d:masm

d:两条指令,这便可以在本机D:masm目录下为部署开发环境。

 

技术分享图片

 

 

挂载好的DOS为以下状态:

 

技术分享图片

 

 

二、实验任务

 

① 用EA命令分别将指令写入内存:

1)e命令修改寄存器的内容,然后用d命令查看0:200-0:220范围内修改的指令

  (有一点小错误,计算地址长度时忘记一个字符,但已修正)

 技术分享图片

 

  反汇编之后的结果为:

技术分享图片

 

 

注:使用A命令是无法直接将机器指令写入内存中的

2)A命令写入汇编指令,然后用U命令反汇编得到该指令的机器码

 技术分享图片

 

 

结论:同所有语言一样,高级语言是为了更方便人们对计算机的操作,而归根到底,所有的语言最终都会转变成机器语言,机器语言最终转化为电信号:0,1.

 

② 利用三条指令计算28次方

利用jmp指令的跳转功能可以实现,对数的循环操作,用a命令向2000:0处写入

Mov ax,1

Add ax,ax

Jmp 2000:0003

以上三条指令,T指令指定开始执行的地址,

 技术分享图片

 

jmp七次以后便可以得到AX=010016=3210

 技术分享图片

 

这里红圈标注的值便是3216进制值,因为计算的乘法操作是常用补码一位乘法器,其实质便是对阶的操作,通过加法如2+2=44+4=8...128+128=256进行升阶操作,那么数值部分便可以进行一位操作得到2^8=256的结果

结论:jmp指令可以实现跳转操作,这对于计算整数幂的值有很大的帮助,在调试时,T命令需要单步执行,如果使用g命令,会导致G命令找不到地址而停止工作,因为jmp每次跳转回原来地址后,g跟踪T跳转之前的地址内容,并不执行这些指令,所以得不出结果。

 

③ 查看内存中的内容:

PC机主内存FFF00H-FFFFFH的某几个单元中有该主板上ROM的生产日期,找到该日期:

首先要了解ROM:ROMS Rom image(只读内存镜像),只读的含义便是OS只能从里面读取一些必要的信息供于机器运行使用,不可以对其内容进行修改,既然是不能修改那么使用E命令的使用,找到不能修改的单元便可:

汇编中,内存单元后面的-表示不可显示的字符,可显示字符可以很明显辨认

 技术分享图片

 

这里猜测红色矩形框标注的便是生产日期的ASSIC码和十进制数值,

下面利用E命令对该内存范围内的内容进行修改,便再次用D命令查看

 技术分享图片

 

进行以下操作后发现FFF0:F0 FF范围内的内容是无法改变的,而可显示的为01/01/92,所以这便是ROM的生产日期199211日。

 

结论:ROM中的内容为只读,不能对其修改。汇编语言中数字字符以ASSIC码形式存储于内存里,显示时很容易发觉。

④ 向内存从B8100h开始的单元填写数据,如:

-e b810:0000 01 01 02 02 03 03 04 04

结果如下:

 技术分享图片

 

控制变量的方法修改一个值以后显示为:

 技术分享图片

 

继续试验得到:

 技术分享图片

 

故此,可以看出输出不同的值,得到的颜色和形状也不同。

 

结论:8086的显存地址空间是A0000H~BFFFFH,其中B8000H~BFFFFH为80*25彩色字符模式显示缓冲区,当向这个地址空间写入数据时,这些数据会立即出现在显示器上通过实验可以看出,显示指令成对出现,第一个指令控制字符的形状,第二个指令是控制字符的颜色。

 

二、实验总结

  这次的实验了解并掌握了对Debug工具的使用及对一些常用的汇编指令的运用,而对于汇编本身来说,编译器不如其他高级语言编译器使用方便,在DOS中不能方便的查询之前的页面信息,使用起来比较僵硬。指令一旦错误只能重新键入,但如果对于很长的指令集合来说,中间指令的出错可能导致结果异常,而在调试的时候只有重新打一遍所有命令才能解决此问题,或许会有更好的解决方案,但这是当下我对DOS的看法,但是,由于Assemble是位于计算机很低层的语言,了解掌握这种语言有利于更加了解计算机的运行使用,更加了解计算机的内核。

以上是关于Assemble实验报告的主要内容,如果未能解决你的问题,请参考以下文章

【急】高一生物的渗透现象实验的实验报告

2017-2018-2 20165215 实验四《Android开发基础》实验报告

《网页设计》实验报告

求网页制作实验报告

《Java 程序设计》实验报告汇总

20165314实验五《网络编程与安全》实验报告