微机实验:汇编语言程序的调试与运行步骤
汇编语言程序的调试与运行,详细步骤
软件实验一 汇编语言程序的调试与运行
一.实验目的
1.学习数据传送和算术运算指令的用法
2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 二.实验内容
将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。 三.程序框图
图1.1 两个多位十进制相加程序流程图
四.程序清单 DISP ENDM DATA DATA1 DATA2
MACRO X
MOV DL,X ;要显示的字符送DL寄存器 MOV AH,02H ;DOS功能调用号是02H INT 21H ;21H中断程序是DOS功能调用
SEGMENT DB '12732' DB '06815'
汇编语言程序的调试与运行,详细步骤
N EQU $-DATA2 DATA ENDS
STACK SEGMENT STACK STA DB 20 DUP (?) TOP EQU $-STA STACK ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX LEA SI,DATA1 ;☆ MOV BX,0 MOV CX,N CALL DISPL ;显示被加数 DISP '+' LEA SI,DATA2 MOV BX,0 MOV CX,N CALL DISPL ;显示加数 DISP '=' LEA DI,DATA1 MOV CX,N CALL ADDA ;调用加法子程序 LEA SI,DATA1 MOV BX,0 MOV CX,N CALL DISPL ;显示运算结果 DISP 0DH DISP 0AH MOV AX,4C00H INT 21H DISPL DS1:
PROC
MOV MOV INT INC LOOP
AH,02H DL,[SI+BX] 21H BX DS1
;显示子程序
汇编语言程序的调试与运行,详细步骤
RET DISPL ENDP ADDA PROC ;加法子程序 PUSH CX MOV BX,0 AD1: SUB BYTE PTR [SI+BX],30H SUB BYTE PTR [DI+BX],30H INC BX LOOP AD1 POP CX PUSH CX MOV BX,N-1 ;☆☆ CLC AD2: MOV AL,[SI+BX] ADC AL,[DI+BX] AAA MOV [DI+BX],AL DEC BX LOOP AD2 POP CX PUSH CX MOV BX,0 ;☆☆☆ AD3: ADD BYTE PTR [DI+BX],30H INC BX LOOP AD3 POP CX RET ;☆☆☆☆ ADDA ENDP CODE ENDS END START
五.调试步骤
1.编辑源程序,建立一个以后缀为 .ASM的文件.
2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。
3. 连接目标程序,产生可执行程序。
4. TDEBUG调试可执行程序,记录数据段DS:0~DS:10的内容。
汇编语言程序的调试与运行,详细步骤
5. 在操作系统状态下,运行程序,并记录屏幕显示内容。
六.思考题
1.将上述程序改为5位数相加,结果为6位数的加法程序。(需考虑进位)
新的程序清单:
DISP ENDM DATA
MACRO X
MOV DL,X ;要显示的字符送DL寄存器 MOV AH,02H ;DOS功能调用号是02H INT 21H ;21H中断程序是DOS功能调用
SEGMENT
DATA1 DB '82732' ;修改后的5位数,相加为6位数! DATA2 DB '36815'
N EQU $-DATA2 DATA ENDS
STACK SEGMENT STACK STA DB 20 DUP (?) TOP EQU $-STA STACK ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX LEA SI,DATA1 ;☆ MOV BX,0 MOV CX,N
汇编语言程序的调试与运行,详细步骤
CALL DISP LEA MOV MOV CALL DISP LEA MOV CALL LEA MOV MOV CALL DISP DISP MOV INT DISPL DS1: DISPL
PROC MOV MOV INT INC LOOP RET ENDP
DISPL '+'
SI,DATA2 BX,0 CX,N DISPL '='
DI,DATA1 CX,N ADDA SI,DATA1 BX,0 CX,N DISPL 0DH 0AH
AX,4C00H 21H
;显示被加数
;显示加数
;调用加法子程序
;显示运算结果
AH,02H DL,[SI+BX] 21H BX DS1
;显示子程序
ADDA PROC ;加法子程序 PUSH CX MOV BX,0
AD1: SUB BYTE PTR [SI+BX],30H
SUB BYTE PTR [DI+BX],30H INC BX LOOP AD1 POP CX PUSH CX MOV BX,N-1 ;☆☆ CLC AD2: MOV AL,[SI+BX] ADC AL,[DI+BX] AAA MOV [DI+BX],AL DEC BX
汇编语言程序的调试与运行,详细步骤
POP CX PUSH CX MOV BX,0 AD3: ADD BYTE PTR [DI+BX],30H INC BX LOOP AD3 POP CX RET ADDA ENDP CODE ENDS END START
;☆☆☆
;☆☆☆☆
2.简单叙述上机步骤,调试方法。
上机步骤及调试
① 编写代码完成功能要求,文件格式为.asm 文件(如文件名为a.asm),将文件放入
带汇编工具的文件夹中,即含有汇编工具(MASM.EXE)和链接工具(LINK.EXE)的文件夹。
② 打开运行窗口,输入“cmd”然后确定。启动命令行,进入上述文件夹 输入:tasm a.asm
回车后编译产生a.obj文件 再输入:link a.obj
回车后链接产生a.exe文件 最后输入: a.exe 回车后运行结果如图
1
图1.运行结果
汇编语言程序的调试与运行,详细步骤
如果程序有错误,编译时会产生错误提示,指出错误的位置和错误类型及错误码,改正错误后再重新编译链接,直到没有错误和编译链接成功。
③ 启动TD并载入add.exe ,在代码段可以看到程序指令,部分符号已被实际地址或数值替换表示。
④ 查看数据区的数值: 右击选择数据区的菜单中的Goto,在其输入框内输入要查看的数据区地址,如cs:000FH,如图2和图3;
回车确认后即可查看数据区从段地址为CS、偏移地址为000FH
开始的存储情况
图2.goto
汇编语言程序的调试与运行,详细步骤
图3.找到CS字段
5设置断点 ○
选中“cs:000FH”段,然后运行菜单栏“Breakpoints”,在该处设置断点! 断点设置完成后再运行程序. 6查看DS ○
同样用Goto找到想要查看的DS,
图4.找到对应的DS
7记录DS ○
汇编语言程序的调试与运行,详细步骤
汇编语言程序的调试与运行,详细步骤
[注意]
1、 将源代码部分直接拷贝到文本文件中,再将其扩展名改为.asm。
2、 使用个人主页中的汇编语言编译器(TASM.EXE或MASM.EXE之一均可),将1中的
源文件编译成扩展名为.obj的目标文件;再将其链接成为可执行文件(使用TLINK.EXE文件或LINK.EXE文件之一均可); 例如:假设源文件名为temp.asm。 汇编过程如下:masm temp.asm link temp.obj 执行temp.exe文件即可
汇编语言程序的调试与运行,详细步骤
3、 TDEBUG 程序可在个人主页中下载;直接双击运行;
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




