实验二汇编语言上机过程实验机制本.docx

上传人:b****8 文档编号:10159797 上传时间:2023-02-08 格式:DOCX 页数:8 大小:19.29KB
下载 相关 举报
实验二汇编语言上机过程实验机制本.docx_第1页
第1页 / 共8页
实验二汇编语言上机过程实验机制本.docx_第2页
第2页 / 共8页
实验二汇编语言上机过程实验机制本.docx_第3页
第3页 / 共8页
实验二汇编语言上机过程实验机制本.docx_第4页
第4页 / 共8页
实验二汇编语言上机过程实验机制本.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

实验二汇编语言上机过程实验机制本.docx

《实验二汇编语言上机过程实验机制本.docx》由会员分享,可在线阅读,更多相关《实验二汇编语言上机过程实验机制本.docx(8页珍藏版)》请在冰豆网上搜索。

实验二汇编语言上机过程实验机制本.docx

实验二汇编语言上机过程实验机制本

实验二汇编语言上机过程实验

一、实验目的

1、了解和掌握由键盘接收数据,并显示其运行结果的方法。

2、掌握INT21H的09H和0AH,01H和02H的功能。

3、熟悉在PC机上建立,汇编,链接,调试和运行8086/8088汇编语言程序的过程。

二、实验内容

1、汇编语言源程序的上机过程:

1将masm5.zip文件下载放在D:

\masm文件夹下,在该文件夹下将压缩文件解压缩。

2利用编辑器建立一个ASM源文件。

Edit,记事本等编辑器文件以文件名.asm文件名保存。

最好保存在D:

\masm文件夹下。

(即:

D:

\masm\文件名.asm)文件名自取。

3点击开始菜单,运行↙>cmd↙>d:

↙>cdmasm↙>masm文件名3下回车>link文件名3下回车>debug文件名.exe>g↙

其中利用MASM.EXE对源程序进行编译。

生成中间代码文件:

文件名.obj。

利用link.exe对obj文件进行连接。

生成最终目标代码文件:

文件名.exe。

运行可执行文件:

文件名.exe,并利用debug调试工具查看结果。

2、编写一个完整程序,

在屏幕上显示字符串Howareyou!

datasegment

stringdb'howareyou!

$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,offsetstring

movah,9

int21h

movah,4ch

int21h

codeends

endstart

三、实验器材

IBMPC微机一台

四、实验报告要求

1、实验报告应包括实验目的,实验内容,实验步骤,实验思考题

2、完成实验思考题,如有编程题,写出调试正确的程序,并给程序加注释,写出实验中所记录下的内存数据存放格式。

五、实验思考题

下面的汇编语言源程序有错误的,试给程序加注释。

通过调试手段找出程序中的错误并改之。

写出程序的功能,画出程序流程图。

STACKSG:

SEGMENTPARASTACK‘STACK’

DB256DUP(?

STACKSGENDS

DATASG:

SEGMENTPARA‘DATA’

BLOCKDW0,-5,8,256,-128,96,100,3,45,6,512

DW23,56,420,75,0,-1024,-67,39,-2000

COUNTEQU20

MAXDW?

DATASGENDS

CODESG:

SEGMENT

ASSUMESS:

STACKSG,CS:

CODESG

ASSUMEDS:

DATASG

ORG100H

BEGINMOVDS,DATASG

LEASI,BLOCK

MOVCX,COUNT

DECCX

MOVAX,[SI]

CHKMAXADDSI,2

CMP[SI],AX

JLENEXT

MOVAX,[SI]

DECCX

NEXT:

LOOPCHKMAX

MOVMAX,AX

MOVAH,4CH

INT21H

CODESGENDS

ENDBEGIN

实验步骤:

1、建立汇编语言源程序,对所建立的汇编语言源程序进行汇编,链接。

2、运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,记录代码段基值和数据段基值,用R命令查看并记录下当前寄存器内容

3、用D命令查看并记录下内存中数据存放格式

4、用T命令单步运行程序,观察各条指令执行结果,以及对寄存器、标志位、内存单元的影响,若查找出程序中的错误,用Q命令退出DEBUG环境,修改汇编语言源程序,重复上述步骤,直至整个程序无误。

5、若要求找出数据区中最小数,程序将如何修改,试上机调试。

五、实验思考题

1、在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?

2、数据区中以什么形式存放带符号数的?

3、程序执行完毕,结果存放在何处?

4、观察伪指令PARA和ORG的作用

附1.1汇编语言程序的编程环境

在通用PC机系统上建立汇编语言程序,需要软件开发环境:

1)文本编辑程序EDIT(或WINDOWS下的记事本、WORD等)。

2)汇编程序MASM(或TASM.EXE)。

3)连接程序LINK(或TLINK.EXE)。

4)调试程序DEBUG(或TD.EXE)。

1.2汇编语言程序的建立过程

一、编辑源程序(建立ASM源程序文件)

汇编源程序可调用计算机系统中任一文本文件编辑器来编辑和修改。

常用的编辑器有DOS下的EDIT和WINDOWS下的记事本、写字板、WORD等,但源文件扩展名必须为.ASM

二、汇编程序(用MASM命令产生OBJ目标文件)

当源程序编写好后,可用MASM命令来汇编该源程序,可得目标文件(.OBJ)、列表文件(.LST)和交叉索引文件(.CRF)等。

如源程序有错误,汇编程序将显示出错位置和原因,也可用列表文件来查看出错位置和原因。

再调用编辑程序,对源程序修改再重复汇编,直至没语法错误,才进入下步链接。

MASM命令行格式为:

MASM源文件名,目标文件名,列表文件名,交叉索引文件名;

命令行中,扩展名都可不给出,汇编程序会按默认情况使用或产生。

若只想对部分提示是否需要给出或产生相关文件给出回答,则在相应位置用逗号隔开。

行末的分号表示不再对剩余部分作答。

如1)C:

\>MASM\MASMHELLO此操作将生成HELLO.OBJ文件

2)C:

\>MASM\MASMHELLO,HELLO1,HELLO2,HELLO3此操作将生成HELLO1.OBJ,HELLO2.LST,HELLO3.CRF等文件

3)C:

\>MASM\MASMHELLO,,,HELLO此操作将生成HELLO.OBJ,HELLO.LST,HELLO.CRF等文件。

在DOS状态下可以用TYPE命令或在WINDOWS下用记事本查看LST和CRF文件。

HELLO文件内容如下:

_Microsoft(R)MacroAssemblerVersion5.009/19/1216:

27:

53

Page1-1

 

10000datasegment

20000686F7720617265stringdb'howareyou!

$'

320796F752124

4000Ddataends

50000codesegment

6assumecs:

code,ds:

data

70000B8----Rstart:

movax,data

800038ED8movds,ax

90005BA0000Rmovdx,offsetstring

100008B409movah,9

11000ACD21int21h

12000CB44Cmovah,4ch

13000ECD21int21h

140010codeends

15endstart

_Microsoft(R)MacroAssemblerVersion5.009/19/1216:

27:

53

Symbols-1

 

SegmentsandGroups:

NameLengthAlignCombineClass

CODE..............0010PARANONE

DATA..............000DPARANONE

Symbols:

NameTypeValueAttr

START.............LNEAR0000CODE

STRING.............LBYTE0000DATA

@FILENAME...........TEXThello

 

14SourceLines

14TotalLines

6Symbols

49782+451626Bytessymbolspacefree

0WarningErrors

0SevereErrors

三、连接程序(用LINK命令产生EXE可执行文件)

经汇编以后产生的OBJ目标程序文件并不是可执行程序文件,必须经过用LINK将一个或几个.OBJ文件(以及可能需要的.LIB库文件)进行连接,生成一个.EXE可执行文件,同时可生成内存映像文件(.MAP)。

LINK命令行格式为:

LINK目标文件名,执行文件名,内存映像文件名,库文件名;

命令行中,扩展名都可不给出,汇编程序会按默认情况使用或产生。

若只想对部分提示给出回答,则在相应位置用逗号隔开。

行末的分号表示不再对剩余部分作答。

例如C:

\>MASM\LINKHELLO;仅生成HELLO.EXE

C:

\>MASM\LINKHELLO,,;生成HELLO.EXE,HELLO.MAP

C:

\>MASM\LINKHELLO,,HELLO;生成HELLO.EXE,HELLO.MAP

同样,KELLO.MAP文件内容可以用记事本来查看,该文件记录了源程序中三个逻辑段的起始地址、终止地址和逻辑段长度等信息:

LINK:

warningL4021:

nostacksegment

StartStopLengthNameClass

00000H0000CH0000DHDATA

00010H0001FH00010HCODE

Programentrypointat0001:

0000

四、执行程序

可执行文件HELLO.EXE建立后,就可以在DOS下运行。

具体操作可为:

C:

\masm\hello

若程序有结果显示,则在屏幕上可以直接看到。

若不显示结果,则只能通过DEBUG等调试工具来查看运行结果。

实际上,大部分程序需要用调试程序来发现和纠正错误,再经过编辑、汇编、链接,才能得到正确的结果。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1