- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 汇编语言程序设计 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
文档评论(0)