- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章汇编语言程序格式
第4章 汇编语言程序格式 源程序书写格式 伪操作 程序中数据的组织 4.1 源程序书写格式 完整的段定义 一般格式如下: 段名 SEGMENT …… 段名 ENDS 简化段定义 .MODEL, .STACK, .DATA, .CODE 几点说明 源程序中的堆栈段、数据段和代码段是逻辑段。源程序在汇编、连接后生成的段是物理段。逻辑段和物理段的关系取决于伪指令ASSUME。 一个源程序至少有一个逻辑代码段和END伪指令。 一个源程序文件可以含有多个逻辑数据段、多个逻辑代码段、多个逻辑堆栈段。 书写格式中涉及的伪指令 SEGMENT / ENDS 相当于一个逻辑段的前后括号,必须成对出现。 段名由用户给出,前后必须一致。 END 格式:END [过程名|标号] 功能:源程序文件结束。 ASSUME 格式:ASSUME 段寄存器名:逻辑段名 功能:用于指定某逻辑段应通过哪个段寄存器寻址,但并不把具体值装入相应的段寄存器。 段寄存器的装填 CS的装填 系统完成,无需用户干预。 DS,ES,SS(对于386后继机型,FS,GS) 装填有用户程序完成。 以DS为例,一般方法: MOV AX,逻辑段名 MOV DS,AX 程序开始伪指令:.STARTUP(只能在简化段定义格式中使用) DOS下汇编语言程序的正常结束 方法1:采用DOS 4CH功能调用。 ….. MOV AH,4CH INT 21H …… END 4.2 伪操作 伪操作 它不是程序运行期间由计算机执行的,而是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功能。 处理器选择伪操作 段定义伪操作 程序开始和结束伪操作 数据定义及存储器分配伪操作 表达式赋值伪操作 地址计数器与对准伪操作 基数控制伪操作 一个简单的例子 在屏幕上输出一个字符’3’。 4.3 程序中数据的组织(参考教材P142) 程序中所涉及的数据除立即数、由指令产生的数、通过键盘等读入的数据外,其他数据、中间结果等都需要在程序设计中进行定义和分配。 变量的定义和预置 格式:变量名 伪操作符 操作数 变量名由字母、数字、下划线等字符组成,第1个字符不能是数字。前31个字符有效。保留字不能作为变量名。 操作数可以是常数、表达式、字符串、?、DUP等。 伪操作符:DB,DW,DD,DF,DQ,DT 变量定义举例 A DB 100 ;A为一个字节,初值100。 B DB 100,2*3 ;B值为100,B+1值为6。 C DB ‘ABCD’ ;C值41H,C+1值42H,C+2值43H,C+3值44H。 D DB ? ;D为一个字节,值不定。 E DB 23 DUP (0) ;23个0,从E开始每个占一个字节。 F DW 2*3 ;一个字,即06H、00H。 DUP(Duplication operator) 例1 COUNTER DB 6 DB ‘A’, ‘ D’,0DH, ‘$’ TABLE1 DB 21,45H,255 内存分配情况? 例2 WORD_VAR DW 89H,1909H,-1 DW 0ABCDH 内存分配情况? 教材P143 [例6-30] DATA_BYTE DB 12,8,12H DATA_WORD DW 100,-5,100H DATA_DW DD 4*15,0FFFBH 例6-32 STR1 DB ‘AB’ STR2 DW ‘AB’ STR3 DD ‘AB’ 例6-33 以DA1为首地址的数据区中,存放以下数据: “A”,“B”,0,0,“C”,“D”,0,0。 请分别用DB、DW和DD实现。 例6-33 DA1 DB “AB”,0,0,“CD”,0,0 DA1 DW “BA”, 0, “DC”, 0 DA1 DD “BA”, “DC” 变量的访问 变量的属性 段(segment ):它属于哪个段,段基是什么。 位移(offset):相对于段基的位移是多少。 类型(type):表明数据项的长度,如字节,字,双字,4字等。 数据回送操作符 主要有:TYPE,LENGTH,SIZE,OFFSET,SEG等。 对变量的访问有多种形式,除了取其值外,还可以取其段值、位移、类型、长度等。 数据回送操作符的使用(参考教材P129) TYPE 变量名
文档评论(0)