- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 汇编程序设计2010
3-3 汇编程序及程序设计 Ⅰ 汇编语言概述 一、汇编语言的语句格式 指令性语句:就是汇编语言指令,表示机器必须执行的一种操作命令,每条指令性语句都将产生对应的目标代码。 [标号:] 指令助记符 [操作数1,操作数2] [;注解] 指示性语句:指示自动汇编过程的语句,不产生目标代码,在机器语言中没有任何反映,也称为伪指令语句。 [名字] 伪指令助记符 [操作数1,操作数2] [;注解] 指令助记符 对于指令,汇编程序将其翻译成机器语言指令。 MOV AX, 100 H → B8 01 00 伪指令助记符 BUFFER DB 12H,34H,56H,78H 汇编程序按其要求的功能进行处理(内存单元置数)。 操作数 MOV AX,1234H 操作数可以是常数、寄存器、存储器操作数, 也可以是标号名、过程名或表达式等。 二、伪指令 定义一个存贮区时,也可以不放数据: 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[类型FAR / NEAR] … ; 过程体 RET 过程名 ENDP 例 一个延时100ms的子程序: SOFTDT PROC MOV BL,10 DELAY: MOV CX,2801 WAIT: LOOP WAIT DEC BL JNZ DELAY RET SOFTDT ENDP 6、 汇编结束伪指令END 该伪指令表示源程序的结束,令汇编程序停止汇编。因此,任何一个完整的源程序均应有END指令,其一般格式为 END[表达式] 其中表达式表示该
原创力文档


文档评论(0)