- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计第01章第04章
第4章 汇编语言程序 重点:常用伪指令 4.1 汇编语言源程序与汇编程序 用汇编语言编写的程序称为汇编语言源程序,简称汇编语言程序。 汇编语言源程序只有被编译成目标程序(机器语言程序)后,才能被计算机执行。 将汇编语言源程序编译成目标程序的加工程序称为汇编程序。 4.2 汇编语言程序格式和组成元素 【例4.1】 示例程序 NAME EXAMPLE DSEG SEGMENT DATA1 DB 4 DUP(1), 10H, 11, 0AH, 0, 0BH SUM DB ? COUNT EQU 9 DSEG ENDS SSEG SEGMENT STACK DB 100H DUP(?) SSEG ENDS 【例4.1】 示例程序 CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG, SS:SSEG START:MOV AX, DSEG MOV DS, AX XOR AL, AL ; AL清0; MOV CX, COUNT ; 设置相加次数, 也即循环操作次数; LEA SI, DATA1 ; SI指向数据区起始位置; LOOP1:ADD AL, [SI] ; 将SI所指数据加到AL中; INC SI ; SI指向下一字节; LOOP LOOP1 ; CX减1计数, 减1后不为0则转LOOP1 MOV SUM, AL ; 将DATA1中9个字节之和送变量SUM; MOV AH, 4CH INT 21H ; 返回DOS。 CSEG ENDS END START 4.2 汇编语言程序格式和组成元素 示例程序实现了DATA1数据区中9个字节的相加,基本上体现了汇编语言程序的一般格式和组成元素: 汇编语言程序采用以SEGMENT和ENDS定义的段结构,一个汇编语言程序由若干个段组成。 段中包含两种语句:指令语句,即前面介绍的指令,以及伪指令语句,简称伪指令。 语句中包含若干元素:标识符,保留字,表达式等。 4.2.1 标识符 标识符是源程序中便于指定和阅读的字符串。例如,示例程序中的数据段名DSEG,变量DATA1,标号LOOP1,符号常量COUNT等都是标识符。 标识符可以由字母A ~ Z,a ~ z,数字0 ~ 9,专用字符?、.、@、$、_(下划线)等字符组成。除数字外,所有这些字符均可作为标识符的首字符。“.”只能作为标识符的首字符。 4.2.2 保留字 保留字是汇编程序预留的具有固定用途的字符串。例如,示例程序中的SEGMENT,DB,MOV,CX等所有寄存器名,指令及伪指令助记符,运算符等均属于保留字。在编写源程序时,一般要避免将保留字用于非固定用途。 4.2.3 表达式 表达式是由常量、变量、标号及运算符等构成的式子。表达式分为数值表达式和地址表达式。 1.常量 字面常量由0~9,A,B,C,D,E,F以及基数后缀,即尾标B,D,H,Q(或O)构成。如果一个十六进制常量以字母开头,则须在前面添加数字0以区别于标识符。 符号常量是使用EQU、= 伪指令定义其值的标识符。例如,示例程序中的标识符COUNT被定义为数值9。 串常量是用单引号括起的一串字符。串常量以单引号中各字符的ASCII码存储。例如,′Data′ 以44H,61H,74H,61H存储。 4.2.3 表达式 2.变量 变量是存贮单元的标识符,即数据存放地址的符号表示。变量名被认为是变量的符号地址。变量名一般由定义变量的伪指令语句确定。 4.2.3 表达式 2.变量 变量具有三个方面的属性。 (1)变量的段属性 变量的段属性是指变量所在段的段地址。当需要访问该变量时,该段地址一定要在某一段寄存器中。例如,在示例程序中,通过指令: MOV AX, DSEG MOV DS, AX 将变量DATA1,SUM所在段的段地址放到DS中,以便其后对这些变量进行访问。 4.2.3 表
文档评论(0)