资源描述:
《第5章 汇编语言源程序结构与调试运行》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章汇编语言源程序结构与调试运行1本章学习内容汇编源程序的两种基本结构汇编源程序的编辑、汇编、链接、运行与调试2本章学习目标掌握汇编源程序的两种结构掌握汇编源程序的编辑、汇编、链接、运行步骤了解debug调试工具,掌握常用的debug命令31.汇编源程序的两种基本结构直接进入式结构主程序体系结构两种结构比较skipskipskipnextpart4datasegmentparastringdb'Hello,World!$',0AH,0DHdataendscodesegmentparaassumecs:code,ds:datastart:movax,datamo
2、vds,axmovah,9leadx,stringint21hmovah,4chint21hcodeendsendstartsample1.asm(直接进入式结构)“定义”数据段“定义”代码段数据段段基址填入ds输出字符串退出汇编系统next5d_segsegmentpara…d_segendse_segsegmentpara…e_segendss_segsegmentparastack…s_segendscodesegmentparaassumecs:c_seg,ds:d_seg,es:e_seg,ss:s_segstart:movax,d_segmovds,
3、axmovax,e_segmoves,ax…movah,4chint21hcodeendsendstart直接进入式结构一般形式:数据段段基址填入ds附加段段基址填入es退出汇编系统return(程序主体代码)(子程序)6datasegmentparastringdb'HelloWorld!$',0AH,0DHdataendscodesegmentparaassumecs:code,ds:datamainprocfarpushdsmovax,0pushaxmovax,datamovds,axmovah,9leadx,stringint21hretmainendp
4、codeendsendmainsample2.asm(主程序体系结构)“定义”数据段“定义”代码段定义主程序将程序段前缀压入堆栈数据段段基址填入ds输出字符串返回next7d_segsegmentpara…d_segendse_segsegmentpara…e_segendss_segsegmentparastack…s_segendscodesegmentparaassumecs:c_seg,ds:d_seg,es:e_seg,ss:s_segmainprocfarpushdsmovax,0pushaxmovax,d_segmovds,axmovax,e_se
5、gmoves,ax…retmainendpcodeendsendmain主程序体系结构一般形式:return数据段段基址填入ds附加段段基址填入es把程序段前缀ds:0000压入堆栈(程序主体代码)(子程序)8return直接进入式结构主程序体系结构[定义数据段][定义附加段][定义堆栈段][代码段assumestart:[填入数据段段基址][填入附加段段基址]…movah,4chint21h[子程序]]endstart[定义数据段][定义附加段][定义堆栈段][代码段assumemainprocfarpushdsmovax,0pushax[填入数据段段基址][
6、填入附加段段基址]…retmainendp[子程序]]endmain相同点!不同点!92.汇编源程序的编辑、汇编、链接、运行、调试编辑、汇编、链接编辑(x.asm)汇编(x.obj)连接(x.exe)运行与调试debug调试工具nextpart10本章小结汇编源程序的两种结构直接进入式主程序体系结构汇编源程序的编辑、汇编、链接、运行步骤常用的debug命令a命令,g命令,t命令,p命令d命令,e命令,r命令q命令11本章复习建议:结合实验1内容及实验1参考对比总结直接进入式结构与主程序体系结构在格式上的相同与不同之处(2)通过动手调试程序或指令熟悉常用的debu
7、g指令2.通过分析程序例5-1、例5-2熟悉两种程序结构,用另一种结构改写程序并上机调试(2)加深对常用指令如转移指令、循环指令等的理解12本章课后任务阅读本章例5-1、例5-2结合实例熟悉汇编源程序的两种结构思考并分析实例的算法及其汇编程序实现加深对常用指令功能的理解,关注指令的灵活应用思考书后习题的算法及采用汇编语言编程的思路13