计算机原理讲义2014 The Microcomputer Principle Ch4

上传人:f****u 文档编号:123094968 上传时间:2020-03-08 格式:PPT 页数:90 大小:608KB
返回 下载 相关 举报
计算机原理讲义2014 The Microcomputer Principle Ch4_第1页
第1页 / 共90页
计算机原理讲义2014 The Microcomputer Principle Ch4_第2页
第2页 / 共90页
计算机原理讲义2014 The Microcomputer Principle Ch4_第3页
第3页 / 共90页
计算机原理讲义2014 The Microcomputer Principle Ch4_第4页
第4页 / 共90页
计算机原理讲义2014 The Microcomputer Principle Ch4_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《计算机原理讲义2014 The Microcomputer Principle Ch4》由会员分享,可在线阅读,更多相关《计算机原理讲义2014 The Microcomputer Principle Ch4(90页珍藏版)》请在金锄头文库上搜索。

1、Dalian University of Technology 计算机原理 电信学院 自动化系 卢伟 ADD 大黑楼B705 TEL 84706161 Email luwei 4 1 概述 4 2 汇编语言源程序的格式 4 3 伪指令操作 4 4 DOS功能调用 4 5 汇编语言程序设计 第四章 汇编语言程序设计 2 机器语言 Machine Language 二进制表示的指令和数据 汇编语言 Assembly Language 助记符来编写指令 地址和 数据也可用符号表示 用汇编语言编写的程序必须翻译成机器语言 目标程序 或目标代码 才能执行 这种翻译过程称为汇编 高级语言 不针对某个具体的

2、计算机 通用性强 但高级语言编 写的源程序同样必须 翻译 成机器语言 计算机才能执行 所用的 系统软件称为编译程序或解释程序 第四章 汇编语言程序设计第四章 汇编语言程序设计第四章 汇编语言程序设计 3 用汇编语言编写源程序 经过汇编程序和连接程序生成目标程序和 执行程序 文件名 ASM 文件名 OBJ 文件名 EXE 汇编语言 源程序 汇编 目标 程序 连接 执行 程序 编辑程序 EDIT EXE 汇编程序 MASM EXE 连接程序 LINK EXE 第四章 汇编语言程序设计 4 用文本编辑程序编写汇编语言源程序 产生扩展名为 ASM的源文件 用汇编语言编写的源程序经过汇编程序MASM E

3、XE自动翻译成目标 程序 产生扩展名为 OBJ的目标文件 用链接程序LINK EXE将目标程序链接产生扩展名为 EXE的可执行 程序 用Debug EXE进行调试 编译器可采用Microsoft MASM 或者 Borland TASM 第四章 汇编语言程序设计 5 汇编程序 MASM EXE 的主要功能是 将汇编语言源程序翻译成机器语言 按程序员指定 分配存储区域 包括程序区 数据区 堆栈区等 将各种进位制数据转换成二进制数 把字符转换成ASCII码 计算出数值表达式的值 对源程序进行检查 如果有指令错或程序格式错则给出相应提示 第四章 汇编语言程序设计 6 在8086 8088汇编语言中

4、有两类汇编语言指令 一类是执行性指 令 另一类是说明性指令 对执行性指令 汇编程序都为之产生机 器指令代码 而说明性指令的作用仅仅是告诉汇编程序对源程序中 的执行性指令应该如何产生代码 或分配存储区 1 执行性指令 执行性指令 又称 指令语句 这类语句经汇编后总有目标程 序与之对应 按其与汇编后目标程序对应情况又可分为两种类型 一般性执行性指令和宏指令 执行性指令的功能主要由其对应的目 标程序在运行时来实现 第四章 汇编语言程序设计 7 1 一般性执行指令 这种指令是一条指令对应一条8086 8088的 机器指令 即指令系统中包括的指令 2 宏指令 这种指令是由伪操作定义的 宏指令是一般性指令

5、的 扩展 3 执行性指令的格式 标号 前缀 指令助记符 操作数表 注释 其中 表示根据不同的指令或不同情况可以任选的部分 操作数表 是由逗号分隔开的多个操作数 标号 代表 后指令的存储地址 供JMP CALL和LOOP等指令 操作使用 除此之外 它还具备一些其他 属性 第四章 汇编语言程序设计 8 前缀 是8086 8088中一些特殊指令 它们同其他指令配合使 用 如 串操作指令 的重复指令REP 指令助记符 包括8086 8088指令助记符以及用宏定义语句定义 过的宏指令名 操作数 对8086 8088的一般性执行指令来说 可以是一个或二 个操作数 这时我们称左边的操作数为目标操作数 右边的

6、操作数 为源操作数 对宏指令来说 可能有多个操作数 操作数之间有逗 号隔开 注释 以 开始 用来简要说明该指令在程序中的作用 以提 高程序的可读性 第四章 汇编语言程序设计 9 2 说明性指令 伪指令 说明性指令 又称 指示性语句 由伪操作符定义 用于程序以 源程序方式同 汇编程序 通信 程序采用说明性指令表示源程序的起始终止信息 分段情况 内存结构和变量说明等信息 说明性指令的功能由汇编程序来完成 说明性指令在汇编时不 产生任何代码 说明性指令的格式如下 名字 伪操作指令 操作数表 注释 其中 名字 可以是标识符定义的常量名 变量名 过程名 段名 以及结构名 或记录名 等 所谓标识符是由字母

7、 数字 特殊字 符 如 或下划线 等组成的字符串 第四章 汇编语言程序设计 10 汇编语言源程序的例子 DATA SEGMENT 定义数据段 DATA1 DB 0F8H 60H 0ACH 74H 3BH 被加数 DATA2 DB 0C1H 36H 9EH 0D5H 20H 加数 DATA ENDS 数据段结束 CODE SEGMENT 定义代码段 ASSUME CS CODE DS DATA 告诉汇编程序段范围 START MOV AX DATA MOV DS AX 初始化DS MOV CX 5 循环次数送CX MOV SI 0 置SI初值为零 第四章 汇编语言程序设计第四章 汇编语言程序设计

8、 11 CLC 清CF标志 LOOPER MOV AL DATA2 SI 取一个字节加数 ADC DATA1 SI AL 与被加数相加 INC SI SI加1指向下一字节 DEC CX 计数器CX减1 JNZ LOOPER 不等于零 转LOOPER MOV AH 4CH 系统功能调用 AH 4C INT 21H 退出并返回DOS CODE ENDS 代码段结束 END START 源程序结束 指定起始地址标号 第四章 汇编语言程序设计 12 常用的汇编语言源程序框架 DATA SEGMENT 定义数据段 VAL1 DB 12H 8EH 定义变量 DATA ENDS 数据段结束 STACK SE

9、GMENT STACK STACK ENDS EXTRA SEGMENT EXTRA ENDS 堆栈段 数据段 扩展段 第四章 汇编语言程序设计第四章 汇编语言程序设计 13 CODE SEGMENT 定义代码段 ASSUME CS CODE DS DATA ES EXTRA SS STACK 段属性说明 START MOV AX DATA 初始化DS MOV DS AX MOV AX EXTRA 初始化ES MOV ES AX MOV AX STACK 初始化SS MOV SS AX MOV AX 4C00H 返回DOS INT 21H CODE ENDS 代码段结束 END START 源

10、程序结束 第四章 汇编语言程序设计第四章 汇编语言程序设计 14 汇编语言的语句 执行 指令性语句 可以产生相应的机器码 与机器指令相对应 LOOPER MOV AL DATA SI 指示性语句 伪操作指令 不产生机器码 仅为汇编程序提供汇 编时所需要的信息 如 datal DW 12abH 该语句将告诉汇编程序data1定义为一个字12abH 汇编程序将为它 分配一个存储器地址 而且把该存储单元与下一个存储单元初始化 为abH和12H 第四章 汇编语言程序设计 15 宏指令语句 为了书写方便 把一个汇编语句序列用一条指令代替 这种指令 称为宏指令 由宏指令组成的语句称为宏指令语句 在汇编时

11、凡 是有宏指令的地方将用相应的汇编语句序列取代 所以宏指令可以 产生目标代码 例如 fun macro x x是形式参数 mov ah x int 21h endm 则 fun为宏指令 使用时直接写成 fun 2 其中2是宏参数 汇编时产生 mov ah 2 int 21h 两条语句 并将它们汇编成目标代码 第四章 汇编语言程序设计 16 汇编语言语句的格式 指令语句格式 标号 助记符 操作数 操作数 注释 伪指令语句格式 名字 助记符 参数 参数 注释 宏指令语句格式 宏指令名 实参数 实参数 注释 第四章 汇编语言程序设计 17 1 标识符 标识符即标号和名字 标号和名字的区别是标号后面必

12、须跟冒 号 而名字后面没有冒号 一个标号与一条指令的地址的符号名相 联系 即标号是符号地址 例如上面的示例程序中Start是标号 名字可以是变量名 段名 过程名等 例如上面的示例程序中 DATA CODE是段名 Data1 Data2是变量名 汇编语言中的几个基本概念 第四章 汇编语言程序设计 18 2 保留字 保留字是一个汇编语言中预先保留下来的具有特殊含义的符 号 这些符号不能滥用 如 SEGMENT ENDS OFFSET SIZE DB DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END 第四章 汇编语言

13、程序设计 19 3 数的表示 常数 二进 B 八进 O 十进 D 和十六进 H 制数 注 意十六进制数若以字母开头 前面要加数字0 缺省情况下是十进 制数 但可用伪指令RADIX n来改变缺省的基数 字符串常数 用单引号括起来的一个或多个字符组成一个字符串 常数 例如 The rezult is 在内存中 以字符的ASCII码值存放 注 意一个空格也是一个字符 如 The 在内存中是54H 68H 65H 和20H 第四章 汇编语言程序设计 20 4 变量 变量是代表存放在某些存储单元的数据 这些数据在程序运行 期间随时可以修改 变量有三个属性 段属性 偏移属性和类型属性 变量的定义与预置 定

14、义变量就是给变量分配存储单元 且对该存储单元赋于一个符 号名 变量名 同时预置初值 定义变量用数据定义伪指令DB DW DD DQ DT等 例 VAR DATA SEGMENT data1 DB 12H data2 DW 5678H VAR DATA ENDS 第四章 汇编语言程序设计 21 变量的属性 段属性 SEG 表示变量存放在那一个逻辑段中 例如上面定 义的变量名data1和data2存放在VAR DATA逻辑段中 对它们进行 存 取时要先将它们所在段的段基值放在DS中 即执行下面语句 mov ax VAR DATA mov ds ax 段的偏移属性 offset 表示变量在逻辑段中离

15、段起点的字节数 如上面的data1的偏移量为0 data2的偏移量为1 变量的段属性和偏移属性构成了变量的逻辑地址 类型属性 type 表示变量占用存储单元的字节数 DB 1字节 DW 2字节 DD 4字节 DQ 8字节 DT 10字节 第四章 汇编语言程序设计 22 数据定义伪指令 格式 变量名 伪指令名 表达式1 表达式2 这里表达式有以下几种情况 数值表达式 例 DA BYTE DB 50H 50 0caH DA WORD DW 0a3f1H 498dH 表达式 不带引号的 表示可预置任何内容 例 DA B DB 要求分配两个字节单元 DA W DW 要求分配两个字单元 字符串表达式 数

16、据项可以写成字符串形式 但只能用DB DW DD定义 而且DW DD语句定义的串只允许包含两个字符 参看下面的例子 第四章 汇编语言程序设计 23 注意 定义多于两个以上字符的字符串时 只能使用DB伪指令 不能使用DW和DD等伪指令 例 S1 DB ABCDEF S2 DW AB CD EF S3 DD AB CD 这几个变量在存储器中存放情况如下 S1 41H S2 42H S3 42H 42H 41H 41H 43H 44H 00H 44H 43H 00H 45H 46H 44H 46H 45H 43H 00H 00H 第四章 汇编语言程序设计第四章 汇编语言程序设计 24 可以用DW语句把变量或标号的偏移地址存入存储器 也可用DD 语句把变量或标号的段地址和偏移地址都存入存储器 此时低位 字存偏移地址 高位字存段地址 例如 VAR DW1234H LABEL MOV AL 04H PRV DD VAR PRL DW LABEL PRR DD LABEL PRV PRL PRR VAR的偏移地址 VAR的段地址 LABEL的偏移地址 LABEL的偏移地址 LABEL的段地址 第四章

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号