1、1,第5章 汇编语言源程序结构与调试运行,2,本章学习内容,汇编源程序的两种基本结构 汇编源程序的编辑、汇编、链接、运行与调试,3,本章学习目标,掌握汇编源程序的两种结构 掌握汇编源程序的编辑、汇编、链接、运行步骤 了解debug调试工具,掌握常用的debug命令,4,1.汇编源程序的两种基本结构,直接进入式结构 主程序体系结构两种结构比较,skip,skip,skip,next part,data segment parastring db Hello,World!$,0AH,0DH data ends code segment paraassume cs:code, ds:data sta
2、rt: mov ax, datamov ds, axmov ah,9lea dx,stringint 21hmov ah,4chint 21h code endsend start,sample1.asm (直接进入式结构 ),next,d_seg segment para d_seg ends e_seg segment para e_seg ends s_seg segment para stack s_seg ends code segment paraassume cs:c_seg, ds:d_seg, es:e_seg, ss:s_seg start: mov ax, d_segmo
3、v ds, axmov ax, e_segmov es, axmov ah,4chint 21h code endsend start,直接进入式结构 一般形式:,数据段段基址填入ds 附加段段基址填入es,退出汇编系统,return,(程序主体代码),(子程序),data segment parastring db Hello World!$,0AH,0DH data ends code segment paraassume cs:code, ds:data main proc farpush dsmov ax, 0push axmov ax, datamov ds, axmov ah, 9
4、lea dx, stringint 21hret main endp code endsend main,sample2.asm (主程序体系结构 ),next,d_seg segment para d_seg ends e_seg segment para e_seg ends s_seg segment para stack s_seg ends code segment paraassume cs:c_seg, ds:d_seg, es:e_seg, ss:s_seg main proc farpush dsmov ax, 0push axmov ax, d_segmov ds, axm
5、ov ax, e_segmov es, axret main endp code endsend main,主程序体系结构 一般形式:,return,数据段段基址填入ds 附加段段基址填入es,把程序段前缀ds:0000压入堆栈,(程序主体代码),(子程序),return,10,2. 汇编源程序的编辑、汇编、链接、运行、调试,编辑、汇编、链接编辑 ( x.asm )汇编 ( x.obj )连接 ( x.exe ) 运行与调试debug调试工具,next part,11,本章小结,汇编源程序的两种结构直接进入式主程序体系结构 汇编源程序的编辑、汇编、链接、运行步骤 常用的debug命令a命令, g命令,t命令,p命令d命令, e命令,r命令q命令,本章复习建议:,结合实验1内容及实验1参考 对比总结直接进入式结构与主程序体系结构在格式上的相同与不同之处 (2) 通过动手调试程序或指令熟悉常用的debug指令2. 通过分析程序例5-1、例5-2熟悉两种程序结构,用另一种结构改写程序并上机调试 (2) 加深对常用指令如转移指令、循环指令等的理解,13,本章课后任务,阅读本章例5-1、例5-2结合实例熟悉汇编源程序的两种结构思考并分析实例的算法及其汇编程序实现加深对常用指令功能的理解,关注指令的灵活应用 思考书后习题的算法及采用汇编语言编程的思路,