- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术第4章
第4章汇编语言程序设计 主要内容 汇编语言源程序的结构 汇编语言语句格式 伪指令 功能调用 汇编语言程序设计 4.1 汇编语言源程序 汇编语言源程序 汇编程序 1、汇编语言程序执行过程 输入汇编语言源程序(EDIT) 汇编(MASM) 链接(LINK) 调试(TD) 2. 汇编语言源程序结构 数据段名 SEGMENT … 数据段名 ENDS 附加段名 SEGMENT … 附加段名 ENDS 3. 汇编语言语句类型 指令性语句 指示性语句 4. 汇编语言语句格式 指令性语句: [标号:] [前缀] 助记符 [操作数],[操作数] [ ;注释] 指示性语句格式 [名字] 伪指令助记符 操作数 [,操作数,…] [ ;注释] (1) 标号、名字 标号后有冒号,在指令性语句前;名字后不加冒号,在指示性语句前。 标号——符号地址 名字——变量名、段名和过程名等 英文字母、数字及专用字符组成,最大长度不能超过31个,且不能由数字打头,不能用保留字(如寄存器名,指令助记符,伪指令)。 (2) 操作码 指令码 伪指令助记符 指示汇编程序要完成的操作。 作用: 定义变量 分配存储单元 指示程序开始和结束等 (3) 注 释 用分号作为注释的开始; 用于说明程序或语句的功能,以便于阅读和理解 (4) 操作数 寄存器 存储器单元 常量 数据项 标号 变量 表达式 常 量 数字常量(二、十、十六进制) 字符串常量 例:‘A’ MOV AL,’A’ 例:’ABCD’ 标号 用符号表示的地址,称为符号地址 标号的三个属性: 段地址——标号对应指令首字节所在段 的段地址 偏移地址——段内的偏移地址。 类型——NEAR和FAR 变 量 代表内存中的数据区,程序中视为存储器操作数 变量的属性: 段地址——变量所在段的段地址,变量在哪个段内定 义,其段属性就是哪个段的段基址。 偏移地址——变量所在段内的偏移地址,即从段的起 始地址开始到变量对应数据区的第一个存 储单元之间的字节数 变量的段属性与偏移属性构成了变量的逻辑地址。 类型——字节型、字型和双字型 变 量 注: 变量类型与指令的要求必须相同 定义变量时,变量名对应的是数据区的首地址 表达式 算术运算 逻辑运算 关系运算 取值运算和属性运算 其它运算 算术运算和逻辑运算符 算术运算符 +,-,*,/,MOD 逻辑运算符 AND,OR,NOT,XOR 例: MOV AL,8 AND 4 MOV AL,8+4-1 关系运算符 表示关系是否成立的运算符 参与关系运算的必须是两个数值 关系成立,结果=FFFFH 关系不成立,结果=0。 运算符: EQ,NE,LT,GT,LE,GE 取值运算符 取值运算符例 MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET DATA LEA BX,DATA 取值运算符例 若BUFFER存储区用如下伪指令定义: BUFFER DW 200 DUP(0) 则:TYPE BUFFER 等于2 LENGTH BUFFER 等于200 SIZE BUFFER 等于400 对于变量有3种: 1 字节型; 2 字型; 4 双字型; 对于标号有2种:-1 NEAR(段内) -2 FAR(段间) 属性运算符 4.2 伪指令 掌握: 伪指令的格式及实现的操作 伪指令的应用 4.2 伪指令 由汇编程序执行的“指令系统” 作用: 定义变量; 分配存储区 定义逻辑段; 指示程序开始和结束; 定义过程等。 常用伪指令 数据定义伪指令 符号定义伪指令 段定义伪指令 结束伪指令 过程定义伪指令 宏命令伪指令 一、数据定义伪指令 用于定义数据区中变量的类型及大小 格式: 1. 数据定义伪指令助记符 DB 定义的变量为字节型 DW 定义的变量为字类型(双字节) DD
文档评论(0)