微机实验汇编语言程序的调试与运行步骤doc.docx
- 文档编号:6504876
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:13
- 大小:1.37MB
微机实验汇编语言程序的调试与运行步骤doc.docx
《微机实验汇编语言程序的调试与运行步骤doc.docx》由会员分享,可在线阅读,更多相关《微机实验汇编语言程序的调试与运行步骤doc.docx(13页珍藏版)》请在冰豆网上搜索。
微机实验汇编语言程序的调试与运行步骤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是显示换行回车符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 实验 汇编语言 程序 调试 运行 步骤 doc