4MCS-51汇编语言程序设计 ▣4.1 汇编语言的构成 4.2 MCS-51汇编语言程序设计
4.1 汇编语言的构成 汇编语言的构成 4.2 MCS-51汇编语言程序设计 汇编语言程序设计 4 MCS-51汇编语言程序设计 汇编语言程序设计
4.1汇编语言的构成 汇编语言(Assembly Language) 汇编语言源程序 ■汇编程序(Assembler) 汇编语言格式 ■汇编语言构成 ·1.指令性语句 ■2.伪指令(指示性语句)
汇编语言(Assembly Language Assembly Language) 汇编语言源程序 汇编语言源程序 汇编程序(Assembler Assembler) 汇编语言格式 汇编语言构成 1. 指令性语句 2. 伪指令(指示性语句) (指示性语句) 4.1 汇编语言的构成 汇编语言的构成
4.2MCS-51汇编语言程序设计 简单程序(顺序程序) ■分支结构程序 ·循环结构程序 查表程序 ·子程序结构
简单程序(顺序程序) 分支结构程序 循环结构程序 查表程序 子程序结构 4.2 MCS 4.2 MCS-51汇编语言程序设计 汇编语言程序设计
简单程序 顺序程序) 设计 入口 语句1 语句2 ●●●●e● 语句n 出口 结束
语句1 语句2 语句n 结束 …… 入口 出口 简单程序(顺序程序)设计 简单程序(顺序程序)设计
分支结构程序设计 ■用条件转移语句实现二分支 入口 根据不同的条件,执行不同的 程序段。 JZ、JNZ、JC、JNC、JB、 JNB、CJNE、DJNZ Yes 条件 No 语句组1 语句组2 出口
条件条件 语句组 1 语句组 2 Yes No 入口 出口 分支结构程序设计 分支结构程序设计 用条件转移语句实现二分支 用条件转移语句实现二分支 根据不同的条件,执行不同的 根据不同的条件,执行不同的 程序段。 JZ 、JNZ 、JC 、JNC 、JB 、 JNB 、CJNE 、DJNZ
■用CJNE实现三分支 CJNE入口 或 Cy=1? Yes ≠? No Yes Cy=0? 语句组1 语句组2 语句组3 出口
用CJNE实现三分支 ≠≠?? Cy=0? 语句组 语句组11 语句组 语句组22 语句组 语句组33 入口 Yes No Yes No CJNE 出口 或 Cy=1? 或 Cy=1?
用cjne实现 判零 +1 X>0 (R0)-x cine R0,#0,MP1 Y30 X=0 -1 (R1)-y mov R1,#0 X<0 sjmp MP3 判正负 开始 MP1:mov A,RO N jnb ACC.7,MP2 x=0? N mov R1,#0FFh 0 sjmp MP3 分支间 y<-0 y-1y-+1 MP2:mov R1,#01h 隔离 MP3:sjmp 结束 end
用cjne实现 cjne R0,#0,MP1 mov R1,#0 sjmp MP3 MP1:mov A,R0 MP1:mov A,R0 jnb ACC.7,MP2 mov R1,#0FFh R1,#0FFh sjmp MP3 MP2:mov R1,#01h MP2:mov R1,#01h MP3:sjmp $ :sjmp $ end 开始 结束 y←0 y←-1 y←+1 x=0? Y x0 0 X=0 -1 X<0
循环结构程序设计 ■循环初始化: 循环控制变量的初始化、 数据变量的初始化 ■循环工作部分:循环主体,重复执行的部分 ■循环控制部分:循环变量的修改、终止控制 ■循环结束: 用于存放执行循环程序所得结 果以及恢复各单元的初值
循环结构程序设计 循环结构程序设计 循环初始化: 循环控制变量的初始化、 循环控制变量的初始化、 数据变量的初始化 数据变量的初始化 循环工作部分:循环主体,重复执行的部分 循环工作部分:循环主体,重复执行的部分 循环控制部分:循环变量的修改、终止控制 循环控制部分:循环变量的修改、终止控制 循环结束: 用于存放执行循环程序所得结 用于存放执行循环程序所得结 果以及恢复各单元的初值。 果以及恢复各单元的初值
循环问题的类型 1、计数型 循环次数已知,用计数方法控制循环的终止。 2、条件型 循环次数未知,根据某种条件判断是否终止循环。 3、计数型+条件型 1、单循环程序 2、多重循环程序
1、计数型 循环次数已知,用计数方法控制循环的终止。 循环次数已知,用计数方法控制循环的终止。 2、条件型 循环次数未知,根据某种条件判断是否终止循环。 循环次数未知,根据某种条件判断是否终止循环。 3、计数型+条件型 循环问题的类型 循环问题的类型 1、单循环程序 2、多重循环程序 1、单循环程序 2、多重循环程序 、多重循环程序
50ms延时程序 ■设单片机的晶振为12MHz ORG 0300H 周期数 MOVR7,#200 1 DELAY1: MOVR6,#125 DELAY2: DJNZ R6,DELAY2 2 DJNZ R7,DELAYI- 2 RET 2
50ms延时程序 设单片机的晶振为 设单片机的晶振为12MHz ORG 0300H 周期数 MOV R7, #200 1 DELAY1: MOV R6, #125 1 DELAY2: DJNZ R6, DELAY2 2 DJNZ R7, DELAY1 2 RET 2