汇编语言程序设计()初步.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计()初步

第4章 节 目 录 4.1 汇编语言源程序 4.2 伪指令 4.3 DOS功能调用 4.4 汇编语言程序设计基础 4.1 汇编语言源程序 机器语言——用二进制来表示指令和数据。 B0 64 ;既不直观,又不易理解和记忆。 助记符——反映指令的功能和主要特征,便于人们理解和记忆。 MOV AL,64H ; 存储器操作数及转移或调用指令,采用标号或符号来代替地址。 汇编语言——用助记符、符号地址以及标号等书写程序——汇编语言源程序。 由以上实例可知,每一语句行由4部分组成: 名字 操作码 操作数 ;注释 2)操作码是一个助记符,它可以是指令、伪指令(又叫伪操作)或宏指令。 4.1.3 数据项及表达式 数据项包括常量、变量、标号及表达式。 1、常量 (1)数字常量 二进制常量,以B结尾 十进制常量,以D结尾或省略(汇编语言中默认无标记数为十进制数) 十六进制常量,以H结尾,如0A8C6H。 (2)字符串常量 用单引号引起来的字符或字符串也代表常数。 例:‘A’, ‘BCDE’,汇编时被翻译成对应的ASCII码41H和42H,43H,44H,45H。 (5) 其它运算符 4.2 伪指令 常用的伪指令有: 数据定义伪指令 符号定义伪指令 段定义伪指令 过程定义伪指令 结束伪指令 4.2.1 数据定义伪指令 变量是内存中数据区的名字,故这类伪指令又可叫数据定义伪指令。 这类伪指令格式为: 变量名 伪指令助记符 操作数 ;注释 其中变量名用符号地址表示,后面不能跟冒号,它可有可无。 例:BUFFER DW 3, 4, $+3 设BUFFER的偏移地址为0088H,则汇编后如下图: 4.2.2 符号定义伪指令 1、等值伪指令EQU 格式为:符号名 EQU 表达式 或:新符号名 EQU 老符号名 例: CONSTANT EQU 100 NEW_PORT EQU PORT_VAL+1 EQU伪指令在未解除前,不能重新定义。 2、等号(=)伪指令 与EQU类似,但允许重新定义 例: ┇ EMP = 7 ;值为7 ┇ EMP = EMP+1 ;值为8 3、解除伪指令PURGE 4.2.3 段定义伪指令 与段有关的伪指令有: SEGMENT、ENDS、ASSUME、ORG 段定义伪指令的格式如下: 段名 SEGMENT [定位类型] [组合类型] [’类别’] ┇ 段名 ENDS 这两个伪指令总是成对出现,二者前面的段名一致。二者之间的部分,对数据段、附加段及堆栈段,一般是符号、变量定义等伪指令。对于代码段则是指令及伪指令。 此外,还必须明确段和段寄存器的关系,这可由ASSUME语句来实现。 4.2.4 设定段寄存器伪指令ASSUME ASSUME伪指令告知汇编程序有关段寄存器与段的关系,但并没有给段寄存器赋予实际的初值。故在下例中 MOV AX, DATA  ;DATA为数据段名称 MOV DS, AX MOV ES, AX   这些语句实现了将段基址装入段寄存器。 如程序中用到堆栈段,也需装入实际的初值。而代码段不需要用户装入,由初始化程序自动装入。 4.2.5 过程定义伪指令 过程的含义和子程序是一样的,一个过程可以被其它程序所调用,过程的最后一条指令是返回指令RET。 过程属性NEAR(若不指明,则默认为NEAR)表示在段内被调用。  FAR属性表示可以被其它段调用。 返回指令都是RET,但两种情况下汇编时产生的代码不同,前者代码为C3H,后者代码为CBH。 调用过程的格式为: CALL 过程名 3. 结束伪指令END 当汇编程序对源程序进行汇编过程中,如遇到END,得知源程序到此结束。格式为: END 标号 标号表示程序的起始地址,通常就是程序第一条指令的标号。 如果有多个模块连接在一起,则只有主模块的END语句允许使用标号。 MOV AX, DATA MOV DS, AX MOV ES, AX;装入段值 LEA SI, BLOCK LEA DI, PDATA LEA BX, NDATA CLD MOV CX, PDATA-BLOCK GOON: LODSB ;(AL)?[SI] TEST AL, 80H JNZ MINUS STOSB ;[DI] ? (AL)

文档评论(0)

woaitiantian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档