基于8086的微机原理.pptxVIP

  • 0
  • 0
  • 约2.58万字
  • 约 10页
  • 2025-04-17 发布于四川
  • 举报

基于8086的微机原理补充课件参考教材微型计算机原理与接口技术(第四版)(中国科技大学-周荷琴吴秀清主编) 第2章8086系统结构 第3章8086的寻址方式和指令系统 第4章汇编语言程序设计

第4章汇编语言程序设计汇编语言基础知识1汇编语言的伪指令2系统功能调用3汇编语言程序设计4汇编语言程序的上机过程5

4.1汇编语言基础知识概述汇编源程序的结构汇编语言的语句汇编语言的数据汇编语言的操作符与表达式

概述01汇编语言(AssemblyLanguage)是介于机器语言和高级语言之间的计算机语言,是一种用符号表示的面向机器的程序设计语言。02它比机器语言易于阅读、编写和修改,又比高级语言运行速度快,能充分利用计算机的硬件资源,占用内存空间少。03汇编语言常用于计算机控制系统的开发和高级语言编译程序的编制等应用场合。采用不同CPU的计算机有不同的汇编语言。

用汇编语言编写的程序称为汇编语言程序或源程序(SourceProgram)。汇编语言源程序不能直接在计算机上运行,需要将它翻译成机器语言程序(也称目标代码程序,ObjectProgram)。这个翻译过程为汇编。完成汇编任务的程序(软件)称为汇编程序。

1汇编程序完成以下几个任务:2将汇编语言源程序翻译成目标代码程序;3按指令要求自动分配存储区(包括程序区、数据区等);4自动把源程序中以各种进制表示的数据都转换成二进制形式的数据;6对汇编语言源程序进行语法检查,并给出语法出错的提示信息。5计算表达式的值;

汇编源程序的结构按照各段功能的不同,分别有代码段、数据段、堆栈段和附加段。其中代码段是必须要定义的。汇编语言程序由若干个段组成。

【例5-1】编写汇编程序,计算2010H+2011H,并把和存入RESULT单元。DATASEGMENT ;定义数据段DW2010H ;定义被加数DW2011H ;定义加数RESULTDW? ;分配和数存放单元DATAENDS ;数据段定义结束

MAINPROCFAR01ASSUMECS:CODE,DS:DATA02START:PUSHDS03MOVAX,004PUSHAX05MOVAX,DATA06MOVDS,AX07CODESEGMENT

MOVAX,X01ADDAX,Y02MOVRESULT,AX03RET04MAINENDP05CODEENDS06ENDSTART07

汇编语言源程序的特点采用段式结构01汇编源程序通常包含若干个段,上例的程序有数据段和代码段这两个段,DATA、CODE分别为两个段的名字。每一段有明显的起始语句SEGMENT与结束语句ENDS,这些语句称为“段定义”语句。02每一段由若干汇编语句构成03汇编源程序每一段包含若干汇编语句。汇编语句的主体是汇编指令。一条语句写一行,为了清晰,书写语句时,注意语句的各部分要尽量对齐。04

每个汇编源程序需要一个启动标号01汇编语言源程序需要一个启动标号作为程序开始执行时目标代码的入口地址。启动标号可以按照汇编语言的标号命名规则由程序员自己定义。常用的启动标号有START、BEGIN等。02加入适当注释,可以提高程序的可读性03为了提高程序的可读性,可以在汇编语句后以分号“;”为起始标志,加入注释。04汇编语言源程序的特点(续)

汇编语言和操作系统(DOS)的接口计算机一旦启动成功,由DOS掌握CPU的控制权。应用程序只是作为DOS的子程序,应用程序执行完,必须返回DOS。上述程序的第7行、第9行~第11行、第17行和第18行就是为了完成此功能而设计的。

(1)返回DOS的标准方法例5-1采用了此方法。具体程序设计方法如下:在代码段的主程序的开始部分用3条指令,把INT20H指令的段地址(CS=DS=ES)及偏移地址(0)压入堆栈(见上述程序的第9行~第11行)。将应用程序的主程序定义成一个FAR过程(见上述程序的第7行和第18行),该过程的最后一条指令为RET(见上述程序的第17行);这样,程序执行到主程序的最后一条指令RET时,由于过程具有FAR属性,故堆栈内的两个字分别弹出到IP及CS,便执行INT20H指令,返回到DOS。

(2)用DOS功能调用4CH返回在用户程序中不定义过程段,删除上述程序的第7行、第9行~第11行和第18行指令,把原第17行的RET指令换成下面两条指令:MOVAH,4CHINT21HINT21H指令是DOS向用户提供服务程序的窗口。

2指令语句3伪指令语句1汇编语言的语句可以分为:4宏指令语句汇编语言的语句

1.指令语句指令语句是可执行语句,汇编后将产生目标代码

文档评论(0)

1亿VIP精品文档

相关文档