- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第4章_汇编程序
第四章汇编语言程序设计 汇编语言指令到机器指令的示意图 4.1.1 汇编语言源程序的结构 数据段名 SEGMENT …… 数据段名 ENDS 附加数据段名 SEGMENT …… 附加数据段名 ENDS 堆栈段名 SEGMENT …… 堆栈段名 ENDS 代码段名 SEGMENT …… 代码段名 ENDS END 下面举例来加以说明: 这是一个两个字相加的程序 DSEG SEGMENT ;定义数据段 DATA1 DW 0F865H ;定义被加数 DATA2 DW 360CH ;定义加数 DSEG ENDS ;数据段结束 ESEG SEGMENT ;定义附加段 SUM DW 2 DUP(?) ;定义存放结果区 ESEG ENDS ;附加段结束 CSEG SEGMENT ;定义代码段 ASSUME CS:CSEG,DS:DSEG,ES:ESEG START: MOV AX,DSEG MOV DS,AX ;初始化DS MOV AX,ESEG MOV ES,AX ;初始化ES LEA SI,SUM ;存放结果的偏移地址送SI MOV AX,DATA1 ;取被加数 ADD AX,DATA2 ;两数相加 MOV ES:[SI],AX ;和送附加段的SUM单元中 HLT CSEG ENDS ;代码段结束 END START ;源程序结束 总结: 1、标号域 语句中的标号是一个标示符,表示一条指令所在的存储单元的地址,或叫符号地址。 2、操作码域: 所有指令的助记符、伪指令等都在操作码域。 3、操作数域: 操作数以逗号间隔。操作数可以是常数、寄存器、标号、变量、表达式。 4、注释域: 说明。 4.1.2 汇编语言语句类型 语句类型:指令性语句、指示性语句 指令性语句由指令组成、CPU可以执行; 指示性语句用来告诉编译程序MASM如何对源程序进行汇编,它不生成目标代码,不由CPU执行,所以常称为伪操作指令; 例如:START: MOV AX,DATA DATA DB 11H,12H,13H 标号指令的符号地址,后边通常加上“:”START是指令性语句的标号; 名字通常表示变量名、段名和过程名,后不加“:” 指示性语句中的操作数可以有多个,相互之间用逗号分开,DATA是指示性语句的名字。 4.1.3 数据项及表达式 操作数可以是寄存器、存储器单元或数据项。存储器可以按字节、字、双字Double Word、四字Quad Word、十字节操作。而数据项又可以是常量、标号、变量或表达式。 1、常量:分为数字常数和字符串常数。 B:二进制 D:十进制,可以省略 H:十六进制 字符串常数用‘’单引号括起来,编译程序将其翻译成ASCII码。 2.标号Label 指令的标号由程序员确定: 不能与指令助记符或伪指令重名; 不允许由数字打头; 字符个数不超过31个; 标号代表存放一条指令的存储单元的地址; 标号可以作为程序转移、过程调用、循环控制等指令的操作数; 标号有三种属性:段、偏移量、类型 偏移量是一个16位的无符号数; 类型有两种:近标号NEAR(2字节)和远标号FAR(4字节); 3.变量Variable 变量是存储器中某个数据区的名字,在指令中可以作为存储器操作数使用;变量也具有三种属性:段、偏移量、类型 段值:一般在DS或ES寄存器; 变量的类型:有BYTE、WORD、DWORD、QWORD、TBYTE; 常用数据类型伪指令DB
文档评论(0)