汇编语言实验5

Posted toubunengtu

tags:

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

任务一:

将代码写入记事本,并生成exe文件,代码如下:

技术分享图片

在debug下用r命令查看寄存器的值:

技术分享图片

cs = 15F5

使用u命令反汇编代码并用g命令执行,用d命令查看

技术分享图片

CPU执行程序前,程序返回前,cs=15f5,ss=15f4,ds=15f3

程序加载后,data段地址 +2 =  code段地址  = stack段地址+1

实验二:

同一,代码及结果如下:

技术分享图片

技术分享图片

CPU执行程序,程序返回前,cs=15F5,ss=15F4,ds=15F3。

程序加载后,data段地址 +2 =  code段地址  = stack段地址+1

如果段中的数据占N个字节,则程序加载后,这段实际占有的空间为:若N不满16个或为16字节则为一段,N满16但不满32也分配32字节

即 a=Nmod16,若a=0,则空间为 (N16)*16,若a≠0,则空间为 (N16+1)*16

实验三:

代码:

技术分享图片

技术分享图片

cs=15F3,ss=15F7,ds=15F6。

程序加载后,data段地址 -3 =  code段地址  = stack段地址 -4

实验四:

反汇编:

技术分享图片 不是

技术分享图片不是

技术分享图片

将伪指令“end start”改为“end”后只有第三个程序可以正确执行,当没有指明程序段入口,CPU默认从头执行。

实验五:

技术分享图片

结果:

技术分享图片

技术分享图片

实验六:

技术分享图片

运行结果:

技术分享图片

技术分享图片

实现了将a段中的前八个字型数据逆序存储到b段中

 总结:

一个程序中可以放多个不同的段。如果不加标号,程序段直接以“end”结尾则默认CPU从头开始执行,而在有些拥有多个段的程序中,不加标号,程序不能正确运行。

 

以上是关于汇编语言实验5的主要内容,如果未能解决你的问题,请参考以下文章

汇编实验5

汇编语言实验5

实验2 汇编源程序编写与汇编调试

汇编语言实验5

汇编实验四

汇编语言程序设计实验报告四