1 / 37
文档名称:

ch08-汇编语言 程序设计.ppt

格式:ppt   页数:37
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ch08-汇编语言 程序设计.ppt

上传人:企业资源 2012/2/4 文件大小:0 KB

下载得到文件列表

ch08-汇编语言 程序设计.ppt

文档介绍

文档介绍:1
第8章汇编语言 程序设计
汇编语言语句及其结构
伪指令
常用程序设计方法
模块化程序设计
2
汇编语言语句及其结构
3
汇编语言程序的组成
机器指令
全体指令的集合,形成可执行机器码
伪指令
定义程序结构、符号(变量、地址),非执行语句
控制
控制汇编模式、汇编流程(代码生成)
4
指令与伪指令
指令——产生可执行代码
伪指令——不产生机器码
指示汇编器如何生成代码
确定各段代码的存储位置
分配变量和临时数据的地址
完成常数转换
符号地址的自动计算
5
程序行组成
[标号][ :] 操作码[操作数][,操作数] [;注释]
操作码必有,其它部分可选。
操作码是指令或伪指令的助记符。
标号必须以字母开头,由字母和数字组成,它代表一个地址。
标号涉及地址分配,则后跟冒号“:”,如果只是一般的等价关系,就不需要冒号。
注释不是对指令的简单解释,而是有利于程序阅读。
6
程序行中的常数
后缀D、H、B区别进制,最高位数字以A-F开头,必须加数字0,如#0A3H 。
字符或字符串用单引号写出,如′A′,′ABCD′,这样可代替ASCII码,免去手工查表的麻烦。
需要注意的是,凡写成10进制的,均自动转换为计算机中的二进制表达。
汇编时选择足够的字长来保存中间数据,但将该数编码为指令中的一部分时,超出规定字长的高位信息自动丢失。
7
程序行中的表达式
表达式中可有运算符号,包括“+、-、×、÷、()”例如
X EQU 20h
MOV A,#HIGH(X-100h)
MOV B,#LOW(X-100h)
MOV R0,#25*4
这里X-100h = 20h-100h = FF20h
HIGH、LOW分别取高字节和取低字节,上面两行等价于:
MOV A,#0FFH
MOV B,#20H
8
IDATA
80 – FF
间接寻址
内部RAM
DATA
00 – 7F
直接寻址
间接寻址
内部RAM
SFR
80-FF
直接寻址
不连续
XDATA
0000
~FFFF
64 KB
扩展
RAM
(MOVX)
CODE
0000
~FFFF
64 KB
ROM
程序

常数
BIT(共享)
20–2F 位寻址内部RAM
~
~

~
R0~R7
4组
00H-1FH
伪指令
9
段定义伪指令
程序运行需要代码段、数据段和堆栈段
MCS-51的存储器组织有其自身特色
根据MCS-51的特点,有以下各种段
直接寻址的数据段
间接寻址的数据段
位寻址的段
扩展数据段(16位地址)
代码段
堆栈段
10
格式 segment SEGMENT class
segment是段名
class是类型
class
存储空间和范围
BIT
位寻址空间(内部RAM 20H .. 2FH)
CODE
程序代码空间
DATA
直接寻址的内部RAM(0 ~ 7FH)和SFR寄存器(位于80H~0FFH)
IDATA
间接寻址的内部RAM ( 0 ~ 0FFH)
XDATA
扩展的外部RAM空间,由MOVX指令访问