微机原理6_汇编语言程序设计基础课件.ppt

微机原理6_汇编语言程序设计基础课件.ppt

ID:57122823

大小:278.50 KB

页数:99页

时间:2020-08-01

微机原理6_汇编语言程序设计基础课件.ppt_第1页
微机原理6_汇编语言程序设计基础课件.ppt_第2页
微机原理6_汇编语言程序设计基础课件.ppt_第3页
微机原理6_汇编语言程序设计基础课件.ppt_第4页
微机原理6_汇编语言程序设计基础课件.ppt_第5页
资源描述:

《微机原理6_汇编语言程序设计基础课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章汇编语言程序设计基础AssembleLanguage汇编语言是利用机器指令的助记符、符号地址和标号来编写的语言机器语言的符号化描述。基本语句是机器指令系统中的指令。一种面向机器的程序设计语言,通常是为特定计算机或计算机系列专门设计的。汇编语言的优点与机器语言等价,所开发的程序执行速度最快、目标代码最短、效率最高。可最大限度地利用机器的硬件功能、结构特点以及汇编才具有的最好的编程灵活性,构建高效的数据结构和通用功能模块,组成核心软件平台(或子程序库),加快程序的执行速度,减少目标程序所占用的存

2、储空间,提高硬件运行效率。主要用来编写操作系统核心程序、实时控制程序、实时通信程序、输入/输出软件包,有时也用来编制某些系统软件核心程序。缺点:编程效率低(与人们描述计算过程的需要差距大)与机器硬件的具体结构联系过于紧密——在一种结构的机器上开发的程序极难移植到另一种不同结构的机器上去。AssembleLanguage用汇编语言编写的程序不能由机器直接执行,而必须经汇编程序翻译成机器语言程序。汇编:汇编语言源程序由ASM.exe生成目标代码(*.obj,可能有多个)连接:由LINK.exe将.ob

3、j连接成可执行程序。汇编语言程序的汇编过程编辑程序Prog.asm文件汇编程序Prog.obj文件连接程序Prog.exe文件Edit.exeMasm.exeLink.exe汇编示意图调用MASM.EXE.ASM汇编.OBJ.LST.CRF可选汇编程序的主要功能汇编程序分两种,一种是基本汇编(ASM.EXE),一种是宏汇编(MASM.EXE),宏汇编功能比较强。汇编完成的主要功能为:检查源程序;测出源程序中的语法错误,并给出出错信息;产生目标文件(.OBJ),并可给出列表文件(同时列出汇编语言源程

4、序和机器语言目标程序的文件,称之为.LST文件)和交叉索引文件(列出程序中使用的符号、变量和标号以及引用情况,称之为.CRF文件)。展开宏指令。连接程序汇编之后生成的OBJ文件必须经过链接过程,才能成为扩展名.EXE的可执行文件。链接的过程就是调用连接程序(LINK.EXE),对OBJ文件进行定位、链接,最后生成扩展名为EXE的可执行文件。如果需要,也可生成MAP文件和LIB文件。连接示意图:调用LINK.EXE.OBJ.OBJ.LIB连接.EXE.MAP.LIB可选调试程序(DEBUG.COM)

5、>DEBUGPROG.EXE-u(反汇编)-g=起始地址断点地址-t=地址指令条数-rd汇编语言程序的结构分段结构两类语句指令性语句指示性语句DDataSEGMENT--------DDataENDSSTACKSEGMENT--------STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:--------movdx,Port_a;dx指向8255端口A--------CODEENDSENDSTART汇编程序框架例程;程序说明注释st_s

6、egsegmentstack;定义堆栈段db20dup(‘stack’);定义堆栈数据区st_segends;堆栈段结束datareasegment;定义数据段:;数据定义datareaends;数据段结束programsegmentmainprocfar;主程序声明assumecs:program,ds:datarea,ss:st_segstart:;主程序入口地址pushds;返回操作系统的段基址入栈subax,ax;pushax;0000H入栈设置返回堆栈段名段属性标号过程名汇编程序框架例程

7、movax,datarea;取数据段基地址movds,ax;送入数据段寄存器:;主程序体放在这里ret;返回操作系统mainendp;主程序结束;----------------------subrlprocnear;定义子程序:;子程序体放在这里subrlendp;子程序结束;----------------------programends;代码段结束;**********************endstart;汇编程序结束设置当前的数据段过程名堆栈段定义格式STACKSEGMENTSTAC

8、KSTADB50DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,TOP:CODEENDSENDSTART::保留50个字节的堆栈区SS=STACK基址堆栈起始地址TOP=50起始栈顶栈底SP6.1.1指令语句格式指令语句的一般格式如下:[标号:]指令助记符操作数;注释1.标号:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。