实验二 伪指令实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二伪指令实验

一、实验目的

1.掌握数据定义伪指令的使用方法;

2.掌握符号定义伪指令的使用方法;

3.掌握段定义伪指令的使用方法

4.掌握各种数据在内存中的存放形式。

二、实验要求

1.学会使用数据定义伪指令定义字节数据、字数据、双字数据、四字数据及十字数据;

2.学会使用DEBUG中的D命令观察字节数据、字数据、双字数据等在内存中的存放格式;

3.学会使用DEBUG中的D命令观察带符号数据和不带符号数据在内存中的存放形式;

4.学会使用DEBUG中的D命令观察实数在内存中的存放形式。

三、实验举例

【例3.2】 编辑、汇编、连接下列程序段,然后在DEBUG下观察数据的存储格式。

【步骤一】 启动EDIT编辑器,编辑源程序。

程序清单如下:

CSEG SEGMENT

X1 DB 0AH,0BH,0CH,0DH,31H,32H,33H,34H

X2 DB 10,11,12,13,14,15,16,17,18

X3 DB -1,-2,-3,-4,-5,-6,-7,-8

Y1 DB 25+25,78-34,15*4,90/3

Y2 DB 80 MOD 9,3 DUP(50)

Y3 DB ‘ABCDEFGH’

Z1 DW 1234H,5678H,0ABCDH,0ABEFH

Z2 DW -1,-2,-3,-4,-5,-6,-7,-8

Z3 DW OFFSET Y3,3 DUP(0),OFFSET Z2,3 DUP(?)

CSEG ENDS

END

程序输入完毕,以EXAM2.ASM为文件名存入磁盘,进行下一步操作。

【步骤二】 对源程序EXAM2.ASM进行汇编,生成目标程序EXAM2.OBJ。

操作如下:

C:>\MASM EXAM2;↙

屏幕显示如下信息:

Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

50554 + 449926 Bytes symbol space free

0 Warning Errors

0 Severe Errors

汇编通过,没有错误信息产生,进行下一步操作。

【步骤三】 对目标程序EXAM2.OBJ进行连接,生成执行程序EXAM2.EXE。

操作如下:

C:>\LINK EXAM2;↙

屏幕显示如下信息:

Microsoft (R) Segmented-Executable Linker Version 5.13

Copyright (C) Microsoft Corp 1984-1991. All rights reserved.

LINK: warning L4021: no stack segment

LINK: warning L4038: program has no starting address

连接过程产生两个错误信息。

① no stack segment

此错误信息是说源程序没有设置堆栈段,该错误不影响程序的执行,可以忽略。

② program has no starting address

此错误信息是说源程序没有设置起始地址,该错误也不影响程序的执行,可以忽略。

以上两个错误信息可以忽略,进行下一步操作。

【步骤四】 进入DEBUG状态,在DEBUG下用D命令观察数据在内存中是如何存储的。操作如下:

C:>\DEBUG EXAM2.EXE↙

-D CS:0 4F↙

命令发出后,屏幕显示如下信息:

0B9B:0000 0A 0B 0C 0D 31 32 33 34-0A 0B 0C 0D 0E 10 11 12 ....1234........

0B9B:0010 FF FE FD FC FB FA F9 F8-0E 0A 0F 02 08 50 50 50 ................

0B9B:0020 41 42 43 44 45 46 47 48-34 12 78 56 CD AB EF AB ABCDEFGH4.xV....

0B9B:0030 FF FF FE FF FD FF FC FF-FB FF FA FF F9 FF F8 FF ................

0B9B:0030 20 00 00 00 00 00 00 00-30 00 00 00 00 00 00 00 .......0.......

注意:因为没有段说明语句,所以数据是存储在CS(代码)段的,因此要使用D来查看CS段内容。CS段0~4F号单元的内容,即是我们用伪指令定义的数据。

四、实验内容

1.编辑、汇编、连接下列程序段。然后在DEBUG中,用D命令观察DB定义的数据在内存中的存放格式。

程序段如下:

DSEG SEGMENT

A1 DB 1, 18, 25H, 80H, -128,‘ABC’

A2 DB 3*5, 48/4, 36-5, 26 MOD 10

A3 DB ?, ?, 36H, -1, 36Q

A4 DB 5 DUP(26),3 DUP(?)

A5 DB 2 DUP(2 DUP(4), 15), 7FH

DSEG ENDS

END

2.编辑、汇编、连接下列程序段。然后在DEBUG中,用D命令观察DW定义的数据在内存中的存放格式。

程序段如下:

DSEG SEGMENT

B1 DW 1234H, -5678H, 8000H, ’XY’

B2 DW 256*16, 46H, -25

B3 DW ?, OFFSET B1

B4 DW 3 DUP(1234H)

DSEG ENDS

END

相关文档
最新文档