黄玉清 微机原理课件4.ppt_第1页
黄玉清 微机原理课件4.ppt_第2页
黄玉清 微机原理课件4.ppt_第3页
黄玉清 微机原理课件4.ppt_第4页
黄玉清 微机原理课件4.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第4章汇编语言程序设计 2 一 汇编程序的功能将汇编语言源程序翻译成机器语言编写的目标程序 并可输出列表文件 检查语法并给出错误信息展开宏指令常用汇编工具 ASM和MASM 汇编程序的执行 3 二 程序的编辑 汇编与连接 1 建立源文件用编辑软件完成 常见软件 Edit 记事本2 汇编源程序用汇编程序MASM对源程序进行汇编3 连接产生可执行文件用连接程序LINK对 OBJ进行连接 产生可执行文件 EXE 4 执行程序 EXE 汇编程序的执行 4 4 1汇编程序的格式 基本定义 datasegmentsbufferdb Iamastudent db dataends 汇编程序是分段的 每个段有一个段名 以符号SEGMENT开始 以语句ENDS结束 这两者都要有名字 且名字必须相同 汇编源程序可以由若干个段组成 整个源程序以语句END结束 5 4 2语句行的构成 name operationoperand comment 名字 操作项操作数项 注释项 名字项 字母 数字 特殊字符 31可以是标号或变量 它们均代表符号地址 操作项 指令 伪指令和宏指令的助记符 操作数项 由0个或多个组成 之间用 分开 可以是常数或表达式 注释项 用来说明一段或一句指令的功能 前加 基本定义 语句举例 sbufferdb Iamastudent movds ax 6 4 3指示性语句 一 符号定义语句 EQU等值语句格式 EQU功能 把表达式的值赋给符号名 举例 NUMBEREQU8 等号语句格式 TMP 6功能 将符号TMP赋值为6 基本定义 7 PURGE解除语句格式 PURGE符号1 符号2 符号3功能 解除对符号1 符号2 符号3的赋值 举例 PURGENUMBER 4 3指示性语句 EQU和 的区别 EQU定义后的符号名 除非解除 不允许重复定义 对定义后的符号名可以重复定义 基本定义 8 例 PORT1EQU3 PORT1 3PORT2EQUPORT1 2 PORT2 5T1EQUADD 定义T1与ADD同义CONTEQUCX 定义CONT与CX同义N1 9N1 6 重复定义N1 其值最终为6PURGEPORT1 解除PORT1的赋值PORT1EQU10 PORT1重新赋值为10 4 3指示性语句 应用举例 9 4 3指示性语句 二 数据定义语句 字节定义 符号DB 表达式 字定义 符号DW 表达式 四字节定义 符号DD 表达式 八字定义 符号DQ 表达式 十字节定义 符号DT 表达式 数据定义 10 4 3指示性语句 操作数是常数或表达式 数据定义 MY DATADB10H 4H 27H 10 04 27 11 4 3指示性语句 操作数是常数或表达式 续 数据定义 ARRAYDW100H 5 3 20H 01 00 FB FF 00 60 012345 12 4 3指示性语句 操作数是常数或表达式 续 数据定义 注意事项 数据定义中的数据默认值均为十进制 数据定义不能超过伪指令的有效范围 数据存放遵循 高位在高端 的原则 DATADB256COUNTDB12 循环12次MYNUMDW1234H 13 4 3指示性语句 操作数是字符串 数据定义 STRINGDB GOOD MYCHARDW AB CD 14 4 3指示性语句 数据定义 注意事项 字符串必须用单引号括起来 当定义的字符多余两个字符的字符串时 只能使用DB伪指令 DATA1DW ABCD 应改为 DATA1DB ABCD 操作数是字符串 续 15 4 3指示性语句 数据定义 可保留空单元 操作数为 ABCDB12 56MEDW 98 MCDD1248 0D123H 可用复制操作符DUP MY1DB2DUP 0 1 2 MY2DB100DUP 含义 将括号中的数重复n 1 65535 次 16 TABLE1DD0 1 2 3TABLE2DB30H 31H 32H 33HTABLE3DB 12345678910 判断下列指令是否正确 1 MOVAX TABLE12 MOVBX TABLE23 MOVAL TABLE34 MOVAX WORDPTRTABLE2 4 3指示性语句 课堂练习 请为XLAT指令定义一张表 以计算2n 17 4 3指示性语句 三 段定义语句 主要伪指令有 SEGMENT 标志段开始 ENDS 标志段结束 ASSUME 让汇编程序知道源程序的段结构 并知道在各种指令执行时访问哪一个段 ORG 设置存储单元的起始偏移地址 段定义 18 段名SEGMENT 定位方式 连接关系 类别名 段名ENDS 4 3指示性语句 段定义 1 定位方式指定段的起始地址边界 共4种 PAGE 页边界地址 能被256除 PARA 段边界地址 能被16除 缺省项 WORD 字边界地址 能被2除 BYTE 字节边界地址 任意地址装入均可 19 2 连接关系6种 PUBLICSTACKNONECOMMONMEMORYAT 3 类别名是一个标志符 必须用单引号括起来 LINK根据连接关系把类别名相同的段连接在一起 4 3指示性语句 段定义 20 3 定位伪指令 ORG100H 指定起始偏移地址 DATASEGMENTORG100H 起始偏移地址XDB12HDATAENDS 默认情况从0000H开始存放数据 2 段说明 ASSUME 给各程序段指定段寄存器 4 3指示性语句 段定义 21 4 3指示性语句 段定义举例 datasegmenta1dw3a2dw2sumdw dataendscodesegmentassumecs code ds datastart movax datamovds axmovax a1addax a2movsum axcodeendsendstart 编程计算 3 2并显示结果 温馨提示请体会思路 22 课堂练习 程序举例 编写完整程序实现以下命题 1 任意定义3个数 将它们累加之和放入内存单元 2 给定一字符串 将它们按原样搬至另一处 NONE 表示本段于其它段无连接关系 本段有自己的段地址 缺省选项 PUBLIC 本段与同名段邻接在一起形成新段 该新段内所有段公用一个段基址 所有偏移量调整为相对新段地址的偏移量 COMMON 本段与其它COMMON类型的同名段形成一个覆盖段 所有同名段将具有相同的段基址 共享该覆盖段存储区 覆盖段长度取同名段中最长段的长度 STACK 本段与同名段连接成一个连续段作为堆栈

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论