微机实验汇编语言程序的调试与运行步骤doc.docx

上传人:b****1 文档编号:13243567 上传时间:2023-06-12 格式:DOCX 页数:14 大小:1.37MB
下载 相关 举报
微机实验汇编语言程序的调试与运行步骤doc.docx_第1页
第1页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第2页
第2页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第3页
第3页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第4页
第4页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第5页
第5页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第6页
第6页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第7页
第7页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第8页
第8页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第9页
第9页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第10页
第10页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第11页
第11页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第12页
第12页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第13页
第13页 / 共14页
微机实验汇编语言程序的调试与运行步骤doc.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机实验汇编语言程序的调试与运行步骤doc.docx

《微机实验汇编语言程序的调试与运行步骤doc.docx》由会员分享,可在线阅读,更多相关《微机实验汇编语言程序的调试与运行步骤doc.docx(14页珍藏版)》请在冰点文库上搜索。

微机实验汇编语言程序的调试与运行步骤doc.docx

微机实验汇编语言程序的调试与运行步骤doc

软件实验一汇编语言程序的调试与运行

一.实验目的

1.学习数据传送和算术运算指令的用法

2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容

将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。

三.程序框图

图1.1两个多位十进制相加程序流程图

四.程序清单

DISPMACROX

MOVDL,X;要显示的字符送DL寄存器

MOVAH,02H;DOS功能调用号是02H

INT21H;21H中断程序是DOS功能调用

ENDM

DATASEGMENT

DATA1DB'12732'

DATA2DB'06815'

NEQU$-DATA2

DATAENDS

STACKSEGMENTSTACK

STADB20DUP(?

TOPEQU$-STA

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVAX,TOP

MOVSP,AX

LEASI,DATA1;☆

MOVBX,0

MOVCX,N

CALLDISPL;显示被加数

DISP'+'

LEASI,DATA2

MOVBX,0

MOVCX,N

CALLDISPL;显示加数

DISP'='

LEADI,DATA1

MOVCX,N

CALLADDA;调用加法子程序

LEASI,DATA1

MOVBX,0

MOVCX,N

CALLDISPL;显示运算结果

DISP0DH

DISP0AH

MOVAX,4C00H

INT21H

DISPLPROC;显示子程序

DS1:

MOVAH,02H

MOVDL,[SI+BX]

INT21H

INCBX

LOOPDS1

RET

DISPLENDP

ADDAPROC;加法子程序

PUSHCX

MOVBX,0

AD1:

SUBBYTEPTR[SI+BX],30H

SUBBYTEPTR[DI+BX],30H

INCBX

LOOPAD1

POPCX

PUSHCX

MOVBX,N-1;☆☆

CLC

AD2:

MOVAL,[SI+BX]

ADCAL,[DI+BX]

AAA

MOV[DI+BX],AL

DECBX

LOOPAD2

POPCX

PUSHCX

MOVBX,0;☆☆☆

AD3:

ADDBYTEPTR[DI+BX],30H

INCBX

LOOPAD3

POPCX

RET;☆☆☆☆

ADDAENDP

CODEENDS

ENDSTART

五.调试步骤

1.编辑源程序,建立一个以后缀为.ASM的文件.

2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

无错时继续第3步。

3.连接目标程序,产生可执行程序。

4.TDEBUG调试可执行程序,记录数据段DS:

0~DS:

10的内容。

进入TDEBUG程序后。

执行程序至星号处

DS:

0H~DS:

0AH的内容

☆(CS:

000FH)

31323733323036383135

☆☆(CS:

0076H)

01020703020006080105

☆☆☆(CS:

0086H)

01090504070006080105

☆☆☆☆(CS:

0090H)

31393534370006080105

5.在操作系统状态下,运行程序,并记录屏幕显示内容。

被加数

加数

屏幕显示内容

12732

06815

19547

10732

43691

54423

65087

17631

82718

六.思考题

1.将上述程序改为5位数相加,结果为6位数的加法程序。

(需考虑进位)

新的程序清单:

DISPMACROX

MOVDL,X;要显示的字符送DL寄存器

MOVAH,02H;DOS功能调用号是02H

INT21H;21H中断程序是DOS功能调用

ENDM

DATASEGMENT

DATA1DB'82732';修改后的5位数,相加为6位数!

DATA2DB'36815'

NEQU$-DATA2

DATAENDS

STACKSEGMENTSTACK

STADB20DUP(?

TOPEQU$-STA

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVAX,TOP

MOVSP,AX

LEASI,DATA1;☆

MOVBX,0

MOVCX,N

CALLDISPL;显示被加数

DISP'+'

LEASI,DATA2

MOVBX,0

MOVCX,N

CALLDISPL;显示加数

DISP'='

LEADI,DATA1

MOVCX,N

CALLADDA;调用加法子程序

LEASI,DATA1

MOVBX,0

MOVCX,N

CALLDISPL;显示运算结果

DISP0DH

DISP0AH

MOVAX,4C00H

INT21H

DISPLPROC;显示子程序

DS1:

MOVAH,02H

MOVDL,[SI+BX]

INT21H

INCBX

LOOPDS1

RET

DISPLENDP

ADDAPROC;加法子程序

PUSHCX

MOVBX,0

AD1:

SUBBYTEPTR[SI+BX],30H

SUBBYTEPTR[DI+BX],30H

INCBX

LOOPAD1

POPCX

PUSHCX

MOVBX,N-1;☆☆

CLC

AD2:

MOVAL,[SI+BX]

ADCAL,[DI+BX]

AAA

MOV[DI+BX],AL

DECBX

LOOPAD2

POPCX

PUSHCX

MOVBX,0;☆☆☆

AD3:

ADDBYTEPTR[DI+BX],30H

INCBX

LOOPAD3

POPCX

RET;☆☆☆☆

ADDAENDP

CODEENDS

ENDSTART

 

2.简单叙述上机步骤,调试方法。

上机步骤及调试

①编写代码完成功能要求,文件格式为.asm文件(如文件名为a.asm),将文件放入带汇编工具的文件夹中,即含有汇编工具(MASM.EXE)和链接工具(LINK.EXE)的文件夹。

②打开运行窗口,输入“cmd”然后确定。

启动命令行,进入上述文件夹

输入:

tasma.asm

回车后编译产生a.obj文件

再输入:

linka.obj

回车后链接产生a.exe文件

最后输入:

a.exe

回车后运行结果如图1

图1.运行结果

如果程序有错误,编译时会产生错误提示,指出错误的位置和错误类型及错误码,改正错误后再重新编译链接,直到没有错误和编译链接成功。

③启动TD并载入add.exe,在代码段可以看到程序指令,部分符号已被实际地址或数值替换表示。

④查看数据区的数值:

右击选择数据区的菜单中的Goto,在其输入框内输入要查看的数据区地址,如cs:

000FH,如图2和图3;

回车确认后即可查看数据区从段地址为CS、偏移地址为000FH开始的存储情况

图2.goto

 

图3.找到CS字段

设置断点

选中“cs:

000FH”段,然后运行菜单栏“Breakpoints”,在该处设置断点!

断点设置完成后再运行程序.

查看DS

同样用Goto找到想要查看的DS,

图4.找到对应的DS

 

记录DS

[注意]

1、将源代码部分直接拷贝到文本文件中,再将其扩展名改为.asm。

2、使用个人主页中的汇编语言编译器(TASM.EXE或MASM.EXE之一均可),将1中的源文件编译成扩展名为.obj的目标文件;再将其链接成为可执行文件(使用TLINK.EXE文件或LINK.EXE文件之一均可);

例如:

假设源文件名为temp.asm。

汇编过程如下:

masmtemp.asm

linktemp.obj

执行temp.exe文件即可

3、TDEBUG程序可在个人主页中下载;直接双击运行;

4、程序清单的开始定义了一段宏,作用是显示X字符;宏的作用相当于一个函数,可以在后续的程序中直接调用

5、DISP0DH和DISP0AH是显示换行回车符

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2