文档详情

第五章汇编语言程序设计I.ppt

发布:2017-06-10约1.15万字共65页下载文档
文本预览下载声明
第五章 汇编语言程序设计 5.1 程序设计概述 5.2 汇编,链接和运行程序 5.3 模块化的程序设计 5.4 汇编语言程序设计的基本方法 内容与要求: 掌握汇编语言的基本语法、语句、操作数的寻址 方式与汇编表示、常量与数值表达式,标号、变量与地址表达式。 2. 掌握顺序、分支、循环程序设计的基本方法和一 般技巧。 3. 掌握子程序与堆栈技术。 4. 了解宏汇编和宏指令的应用。 2.高级语言(High Level Language) 如果说机器语言是面向机器的,那么高级语言(如BASIC,FORTRAN等)则是“面向过程”的语言。利用这些语言编程,程序员可以完全不考虑机器的结构特点,不必了解和熟记机器的指令系统,仅使用一些接近人们书写习惯的英语和数学表达式形式的语句去编制程序。这样编写的程序与问题本身的数学模型之间有着良好的对应关系,可在各种机器上通用(不同机器之间仅做少量修改)。但是,这种用高级语言编写的源程序并不能在机器上直接执行,需要被翻译成对应的目标程序(即机器语言程序),机器才能运行。把具有这种翻译作用的程序称为解释程序或编译程序,见图5.1。 由于高级语言程序是在未考虑机器的结构特点的条件下编写的,因而它就不能充分利用某种具体CPU所具有的某些特性,而通过编译或解释程序生成的目标程序往往比较冗长, 占有较多的内存空间,执行时间也比较长,这就限制了它在某些场合下的运用。例如,实时的数据采集、检测和在线的实时控制等,往往要求程序的目标代码尽可能少占内存并有尽可能快的执行速度,在这些场合下,使用高级语言编写的程序常常不能满足要求。 3.汇编语言(Assembly Language) 汇编语言是一种采用助记符表示的程序设计语言,即用助记符来表示指令的操作码和操作数,用标号或符号代表地址、常量或变量。助记符一般都是英文字的缩写,以方便人们书写、阅读和检查。实际上,用汇编语言编写的汇编语言源程序就是机器语言程序的符号表示,汇编语言源程序与其经过汇编所产生的目标代码程序之间有明显的一一对应关系,故也称汇编语言为符号语言。 用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等)直接对位、字节、字寄存器或存储单元、I/O端口进行处理,同时也能直接使用CPU 指令系统和指令系统提供的各种寻址方式,编制出高质量的程序,这样的程序不但占用内存空间少,而且执行速度快。当然,由于源程序和所要解决的问题的数学模型之间的关系不够直观,使得汇编语言程序设计需要较多的软件开发时间,也增加了程序设计过程中出错的可能性。 用汇编语言编写的源程序也需要翻译成目标程序才能被机器执行。这个翻译过程称为汇编,完成汇编任务的程序称为汇编程序,见图5.2。 图5.2 汇编程序的功能示意图 5.2 汇编,链接和运行程序 5.3 模块化的程序设计 ;Create a shell for modular programming using the complete segment definition. ;one file will contain the main module: EXTRN SUBPROG1: FAR EXTRN SUBPROG2: FAR PUBLIC ….; declare data here to be shared ;------------------------------------------- STSEG SEGMENT PARA STACK ‘STACK’ DW 64 DUP (?) STSEG ENDS ;------------------------------------------- DTSEG SEGMENT PARA ‘DATA’ ;define data here DTSEG ENDS ;------------------------------------------- CODSEG_A SEGMENT PARA ‘CODE’ MAIN PROC FAR ASSUME CS: CODSEG_A,DS: DTSEG,SS:STSEG MOV AX, DTSEG MOV DS, AX …. CALL SUBPROG1 ;call subprog CALL SUBPROG2 ;call subprog …. MOV AH, 4CH INT 21H MAIN ENDP CODSEG_A ENDS END MAIN ;-------and in another file: SUBPROG1 PROGRA
显示全部
相似文档