- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 汇编程序设计 5.1 概述 一、计算机语言的分类: 机器语言 汇编语言 高级语言 1. 机器语言 特 点:直接采用二进制数书写指令和数据,能被计算机直接识别; 优缺点:机器代码效率高,实时性能好,编写的程序效率高,节省内存,运行速度快;但很难掌握。 2. 高级语言 特 点:采用近似于自然语言的书写方式,直接面向过程,与机种基本无关;计算机不能直接识别,需要一套编译系统。 优缺点:编程容易,便于阅读与理解;但代码效率较低,占用内存大,运行时间长。 一、汇编语言的语句格式 语句是汇编语言程序的最小组成单位,一般分为指令性语句和指示性语句。 指令性语句:就是汇编语言指令,表示机器必须执行的一种操作命令,前述指令系统均属此列。每条指令性语句将产生对应的目标代码。 指示性语句:为了自动汇编工作而增设的一些指导汇编过程的语句,在机器语言中没有任何反映,即指示性语句不产生目标代码,因而也称为伪指令语句。 2)伪指令助记符 BUFFER DB 12H,34H,56H,78H 该组数据存放在内存的类型(内存单元置数)。 二、伪指令 注意几点: 定义一个存贮区时,也可以不放数据: TABLE DB ?; 表示在TABLE单元存放的内容是随机的。即为该变量分配一个字节的空间。 当一个定义的存贮区内的每个单元要放置同样的数据时,可用DUP操作符,如: BUFFER DB 100 DUP(0); 表示以BUFFER为首地址的100个字节中存放00H数据。 BUFFER DB 2,12H,20 DUP(?) 2、 符号定义伪指令EQU EQU伪指令给符号定义一个常数值。在程序中,凡是出现该符号的地方,汇编时均用其数值代替,如: TIMES EQU 50 DATA DB TIMES DUP(?) MOV CL,TIMES 上述语句实际等效于如下语句: DATA DB 50 DUP(?) MOV CL,50 3、段定义伪指令SEGMENT和ENDS 一般来说,一个完整的汇编源程序由3个段组成,即堆栈段、数据段和代码段。段定义伪指令可将源程序划分成若干段,以便生成目的代码和连接时将各同名段进行组合。 段定义伪指令一般格式为: 段名 SEGMENT[定位类型][组合类型][类别] … 段名 ENDS SEGMENT和ENDS应成对使用,缺一不可。 STACK SEGMENT DW 100 DUP(?);堆栈深度为100个字单元 STACK ENDS DATA SEGMENT TABLE DB 12H,34H,56H,78H … DATA ENDS CODE SEGMENT … CODE ENDS 5、 过程定义伪指令PROC和ENDP 在程序设计中,可将具有一定功能的程序段作为一个过程(子程序)。它可以用CALL指令被别的程序调用或作为中断处理程序,在中断响应后转此执行。一个过程由伪指令PROC和ENDP来定义,其格式为: 过程名 PROC[类型] … ; 过程体 RET 过程名 ENDP 例 一个延时100ms的子程序: SOFTDT PROC MOV BL,10 DELAY: MOV CX,2801 WAIT: LOOP WAIT DEC BL JNZ DELAY RET SOFTDT ENDP 6、 汇编结束伪指令END
文档评论(0)