实验二 汇编命令(伪指令)实验

一、实验目的

1)进一步熟悉汇编语言的汇编、连接、运行的全过程。

2)了解汇编语言的程序结构、掌握动态调试工具DEBUG的使用。

3)掌握部分伪指令的功能,编程时会使用伪指令。

4)熟悉汇编语言中数据定义伪指令的书写形式。

5)掌握DEBUG的使用。

二、实验要求

1)仔细阅读教材中有关伪指令部分;

2)仔细阅读实验教程中DEBUG的使用部分;

3)用DEBUG中的DE命令检查带符号数据和不带符号数据在内存中的表示方法;

4)用DEBUG中的D命令观察DBDWDD存储整数数据的格式;

5)用DEBUGG中的D命令观察DD存储实数的格式。

三、实验步骤

1)编写一个汇编程序,使用DWDBDD命令向内存写入数据(如图2-1)。

 

 

2-1 使用DWDBDD命令向内存写入数据

 

2)使用debug命令观察存储数据的格式。

①使用-u命令观察指令所在地址和指令的具体实现。可以观察到指令的初始地址为076A:0000(如图2-2)。

 

2-2 u命令查看指令地址

②使用-d命令查看076A:0000076A:0070的数据内容

 

2-3 d命令查看数据

四、实验结果

  我们使用DWDBDD写入相同的4个字(64位)数据,但是通过观察,我们发现它们在内存中的位置并不是我们想的那样按顺序安放。

076A:0000 23 01 56 04 89 07 11 10 DW

076A:0008 01 23 04 56 07 89 10 11 DB

076A:0010 56 04 23 01 11 10 89 07 DD

  我们可以发现DB以字节写入的数据是按顺序安放的,而DBDW却不是这样。我们可以理解为:高地址存高位,低地址存低位。例如0123H,用DW写入,01是高位放在高地址,23是低位放在低地址,这就体现了DW是按字存储的,将字拆分成两个字节存储。

附源代码

CODESEG SEGMENT

ASSUME CS:CODESEG

DW 0123H,0456H,0789H,1011H

DB 01H,23H,04H,56H,07H,89H,10H,11H

DD 01230456H,07891011H

MOV AH,4CH

INT 21H

CODESEG ENDS

END


最后附上实验报告供大家参考顺便鄙视一下CSDN的下载内容需要积分这类方式,开源就开源嘛,搞什么稀奇?

https://files.cnblogs.com/files/jdemarryme/%E6%B1%87%E7%BC%96%E5%AE%9E%E9%AA%8C%E4%BA%8C.pdf


 

posted @ 2018-05-22 23:21  霜沐林  阅读(1319)  评论(0编辑  收藏  举报