第4章汇编程序设计.ppt

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

第4章 汇编语言程序设计 教学目的及要求 1.掌握汇编源程序的编辑、汇编、连接和调试的开发方法 2.掌握常用汇编伪指令的含义和用法 3.掌握汇编语言源程序中返回DOS的方法 4.理解顺序程序、分支结构、循环程序和子程序的设计方法 重点:分支结构、循环程序和子程序的设计方法 4.1 汇编语言程序的语句格式 ⑴ 执行性语句——由硬指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中: 标号: 硬指令助记符 操作数,操作数 ;注释 ⑵ 说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序: 名字 伪指令助记符 参数,参数,… ;注释 硬指令——使CPU产生动作、并在程序执行时才处理的语句,就是前面学习的处理器指令 伪指令(Directive)——不产生CPU动作、在程序执行前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等 伪指令与具体的处理器类型无关,但与汇编程序的版本有关 MOV CX, 0 ;传送指令,具有2个操作数 DELAY: NOP ;空操作指令,没有操作数,带有标号 LOOP DELAY ;循环指令,标号DELAY说明转移位置 BUFFER DB 1,2,3,4,5,6,7 ;数据定义伪指令,在主存中开辟7个连续的字节单元,初值依次为1~7,BUFFER表示首地址 标号、名字与标识符 标号是反映硬指令位置(逻辑地址)的标识符,后跟一个冒号分隔 名字是反映伪指令位置(逻辑地址)和属性的标识符,后跟空格或制表符分隔,没有冒号 标识符(Identifier)一般最多由31个字母、数字及规定的特殊符号(如 _、$、?、@)组成,不能以数字开头。默认情况下,汇编程序不区别标识符中的字母大小写 一个程序中,每个标识符的定义是唯一的,还不能是汇编语言采用的保留字 保留字 保留字(Reserved Word)是汇编程序已经利用的标识符,主要有: 硬指令助记符——例如:MOV、ADD 伪指令助记符——例如:DB、EQU 操作符——例如:OFFSET、PTR 寄存器名——例如:AX、CS 预定义符号——例如:@data 4.2 伪指令 4.2.1 符号定义伪指令 等值伪指令 EQU 格式: 名字 EQU 表达式 功能:把表达式的值赋给符号名。 等号伪指令 “=” EMP=6 EMP=EMP+1 解除定义伪指令 PUREG 格式:PUREG 符号1,符号2,符号3 功能:解除对符号1、符号2、符号3的赋值 4.2.2变量定义伪指令 变量定义(Define)伪指令为变量申请固定长度的存储空间,并可同时将相应的存储单元初始化 格式: 变量名 DB/DW/DD 初值表 所有的变量都具有三种属性: (1) 段值(SEGMENT),即变量单元所在段的段地址(段的起始地址)的高16位,低4位始终为0; (2) 偏移量(OFFSET),即变量单元地址与段的起始地址之间的偏移量(16位); (3) 类型(TYPE),变量有三种类型: 字节(BYTE)、字(WORD)和双字(DOUBLE WORD)。 变量通常是用存储器初始化命令定义的。 初值表 初值表是用逗号分隔的参数 主要由数值常数、表达式或?、DUP组成 ?——表示初值不确定,即未赋初值; DUP——表示重复初值 DUP的格式为: 重复次数 DUP(重复参数) 例如 BIGGEST DD 在汇编时就会初始化,如图所示。它定义了一个双字变量,且给了初始值。 例如: DB 100 DUP(0) ;100个字节全初始化为0 DW 100 DUP(0) ;100个字全初始化为0 DW 10 DUP(?) ;保留10个字 例如:ARRAY1 DB 2 DUP(0, 1, 2, ?) 汇编后的存储情况如右图一所示 例如: DB ‘AB’ DW ‘AB’ 汇编后的存储情况如图1和图2所示. 4.2.3 属性修改运算符PTR 使用格式为:类型 PTR 地址表达式 例如: DA_BYTE DB 20H DUP(0) DA_WORD DW 30H DUP(0) … MOV AX, WORD PTR DA_BYTE[10] ADD BYTE PTR DA_WORD[20], BL 4.2.4 分析运算符 (1)SEG (2) OFFSET 分析运算符SEG,返回的是一个存储单元的段地址(即它所在段的起始地址);OFFSET运算符返回的是每一个存储单元

文档评论(0)

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

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

1亿VIP精品文档

相关文档