微机第2章 汇编语言程序设计课件.ppt

微机第2章 汇编语言程序设计课件.ppt

ID:57122882

大小:387.50 KB

页数:58页

时间:2020-08-01

微机第2章 汇编语言程序设计课件.ppt_第1页
微机第2章 汇编语言程序设计课件.ppt_第2页
微机第2章 汇编语言程序设计课件.ppt_第3页
微机第2章 汇编语言程序设计课件.ppt_第4页
微机第2章 汇编语言程序设计课件.ppt_第5页
资源描述:

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

1、2.3汇编语言2.3.1汇编语言程序的上机过程2.3.2源程序框架2.3.3汇编语言语句的格式2.3.4伪指令语句2.3.5常用DOS系统功能调用和BIOS功能调用2.3.1具体步骤:2.3.1汇编语言程序的开发过程程序的设计源程序Progam.asm目标程序program.obj可执行模块program.exe利用编辑程序EDIT编写汇编语言利用MASM进行汇编利用Link进行连接汇编语言和机器语言一一对应,如:MOVAL,00HMASM3E002.3.2源程序框架2.3.2源程序框架代码段DATASE

2、GMENT;定义数据段(数据定义)DATAENDSEXTRASEGMENT;定义附加段(数据定义)EXTRAENDSSTACKSEGMENTPARASTACK‘STACK’;堆栈区间预留字节数定义TOPEQUTHISWORDSTACKENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATA,ES:EXTRA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,EXTRAMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,OFFSETTOP…

3、…MOVAH,4CHINT21HCODEENDSENDSTART执行完程序,返回DOS,有两种方法:1标准序:将主程序定义成远(FAR)过程,最后一条指令为RET,在程序开始,用下列指令设置堆栈段MAINPROCFARPUSHDSMOVAX,0PUSHAX……RETMAINENDP由于开始执行程序的时候,DS、ES并未指向相对应的逻辑段,因此,还要设置DS及ES的值MOVAX,DATAMOVDS,AXMOVES,AXMAINPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS

4、,AXMOVES,AX……RETMAINENDP2、非标准序:代替标准序部分,在代码段结束之前增加两条语句MOVAX,4C00H(或MOVAH,4CH)INT21H2.3.2汇编语言的语句2.3.3汇编语言的语句汇编语言的语句格式分类语句一般由分隔符分成的四个部分组成,它们有两种类型:1.指令语句(执行性语句)——由处理器指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中,其结构如下:[标号:](label)操作符(operator)[操作数n](operand)[;注解](comment)[前

5、缀]2.伪指令语句2.伪指令语句(说明性语句)——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序,其结构如下:[名字](Name)伪操作符(Pseudo)[参数列表](Parameter)[;注解](comment)(1)标号和名字2.3.4伪指令语句汇编程序提供一些指令使你能控制一个程序进行汇编,这些指令,称为伪操作指令。它只有在程序汇编时才有作用,且不会产生任何机器代码。伪指令可以完成数据定义、分配存储区、指示程序结束等功能。1.段定义伪指令1.段定义伪指令:SEGMENT和ENDS指令格式:段

6、名SEGMENT[定位类型][组合类型][‘类别名’]…………;指令语句或伪指令语句……段名ENDS功能:用来定义段的组合,指出段名及段的各种属性,并表示段的开始和结束。指令说明2.段寄存器说明伪指令:ASSUME格式:ASSUME段寄存器名:段名称[,段寄存器:段名称,……]功能:设定特定的段寄存器指向特定的逻辑段。注意:只说明程序中的各逻辑段与各段寄存器的关系,并未给段寄存器赋实际的初值。因此编程者需要在程序中对被说明的各段寄存器设初值(CS除外,SS根据堆栈段的设置而定)各段寄存器的设置对于代码段:

7、CS和IP初值在程序执行时由伪指令语句ENDSTART装入,无需在程序中设置;对于堆栈段:若在段定义时选用了组合类型STACK,系统链接时会自动初始化SS和SP,因此可不用对其初始化;如用到数据段DS或附加数据段ES,需要在程序中初始化,如:ASSUMECS:CODE,DS:DATA,SS:STACKMOVAX,DATAMOVDS,AX名称种类&说明3.END格式:END[entrypointlabel]label是PROC中的“过程名”或程序入口标号功能:用来指明整个程序的结束。主程序中label不能省

8、略,子程序中可省略。4.数据定义伪指令(1)等值语句:EQU(2)等号语句:=(3)数据定义及存储空间分配伪操作:DB、DW、DD、DQ和DT(1)EQU(1)等值语句:EQU格式:名称EQU表达式功能:用于给表达式赋予一个名称。在程序指令中,若用到表达式可用名称代替。实例:VALUEEQU10COUNTEQUVALUE经过以上定义后,在程序中若写VALUE则代表10;若你写COUNT,则是代表VALUE,在此例是10。注意:

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

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

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