预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共70页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章汇编语言程序设计 4.1汇编语言基本概念4.1.1程序设计语言 4.1.2汇编语言的语句结构 汇编语言及汇编过程汇编程序的汇编过程 汇编有两种方法:手工汇编、机器汇编。源程序两次扫描过程。 第一次扫描:检查语法错误,确定符号名字; 建立使用的全部符号名字表; 每一符号名字后跟一对应值(地址或 数)。 第二次扫描:是在第一次扫描基础上,将符号地址转 换成地址(代真); 利用操作码表将助记符转换成相应的目 标码。信息表示方法: 二进制(B)十六进制(H) 十进制(D或无字尾)PC现行值($) ASCII码(‘’)指令标号等。 为区分数字和字符,凡数字以0~9开头。 如:MOVA,#0A4H 4、注释段 为了便于阅读和交流,对程序进行注释。汇编时对注释部分不予理会。4.1.3伪指令 2.EQU:赋值(或等值指令)3.DB:定义字节数据(DefineByte)4.DW:定义字数据(DefineWord)5.DS:定义存储区(DefineStore)6.BIT:位定义7.DATA数据地址赋值指令8.END:汇编结束 源程序结束指令。在END以后所写的指令,汇编程序都不予处理。一个源程序只能有一个END指令,放在程序结尾。4.2汇编语言程序设计4.2.1汇编语言程序设计步骤流程图符号语句34.2.2顺序程序 结束4.2.3分支程序 条件满足?3.多向分支程序设计举例K=?小结: 1、汇编程序有哪三种基本结构? 2、构成分支程序,常用到哪些判断语句?4.2.4循环程序 循环结构不但使程序简练,而且大大节省存储空间。 循环程序包含四部分: 1、初始化部分(循环计数器、变量置初值) 2、循环处理部分(主体,需要重复执行的部分) 3、循环控制部分(修改地址指针、修改变量、检测 循环结束条件) 4、循环结束部分(对结果分析、处理,存放结果)先处理,后判断:2.循环程序设计举例A=0?参考源程序如下:多重循环设计 循环体中还包含着一个或多个循环结构,即双重或多重循环。 【例4.5】设8031使用12MHz晶振,试设计延迟100ms的延时程序。2、多重循环设计 循环体中还包含着一个或多个循环结构,即双重或多重循环。 例4.6设8031使用12MHz晶振,试设计延迟100ms的延时程序。内循环延时: (1+2×CTR)T=500us(假设) 则CTR=250 实际延时:[1+2×250]×1us=501us 外循环延时:T+(501+2T)×CTS=100ms=100000us 所以,CTS=198.8取199 实际延时:[1+(501+2)×199]=1000.98ms4.2.5子程序 RETLCALLA 2.子程序设计举例4.2.6位操作程序 P3.1 P1.1 30H 31H RS1 RS0(P3.1•P1.1)•[(30H+31H)•RS1]•RS0=P1.0软件实验一S1.ASM一、实验要求软件实验二S2.ASM二进制到BCD码转换二进制到ASCII码转换软件实验三S3.ASM软件实验四内存块移动S4.ASM软件实验5数据排序用冒泡法对数进行排序(由小到大) 思路:将相邻两数比较,将小的数调到前面。这就是所谓的“冒泡法”。 经第一趟(共3次),已得到最大数09。然后,进行第二趟比较 ,对余下的前面3个数按上法进行比较。 第一趟要进行两两比较3次。 第二趟要进行两两比较2次。 如有N个数,则要进行N-1次比较。软件实验5数据排序S5.ASMTHANKYOUVERYMUCH!