第 4 章 汇编语言程序设计第 4章 汇编语言程序设计
4.1 概述
4.2 MCS-51汇编语言程序设计顺序、循环、分支、子程序
4.3 常用程序设计举例查表、代码转换、极值查找等第 4 章 汇编语言程序设计
4.1 概 述
4.1.1 计算机常用的编程语言程序设计语言,低级语言和高级语言 。
低级语言,机器语言汇编语言:
采用特定的助记符号来描述机器指令高级语言:
高级语言程序要经过解释程序或编译程序的编译,形成目标程序后,才能执行 。
常用的高级语言,BASIC,FORTRAN,PASCAL,C等

第 4 章 汇编语言程序设计
4.1.2 MCS-51汇编语言伪指令
1,ORG( Origin) 汇编起始地址命令功能:用于规定目标程序的起始地址 。
格式:
[标号,] ORG 地址地址项,16位绝对地址,也可以用标号或表达式表示 。
如果不用 ORG规定,则汇编得到的目标程序将从 0000H开始 。
第 4 章 汇编语言程序设计一个源程序中,可多次使用 ORG指令以规定不同程序段的起始位置。地址应从小到大顺序排列,不允许重叠。
例如,ORG 4000H
LJMP MAIN
ORG 4200H
MAIN,MOV A,30H
第 4 章 汇编语言程序设计
2,END( END of assembly) 汇编终止命令功能:用于终止源程序的汇编工作。
END之后的指令,汇编程序不予处理。
格式:
[标号,] END [表达式 ]
只有主程序模块才有,表达式,项,且,表达式,的值等于该程序模块的入口地址 。 而其他程序模块就没有,表达式,项
。,标号:,也是选择项 。
一个源程序只能有一个 END命令 。
第 4 章 汇编语言程序设计
3,EQU( Equate) 赋值命令功能:用于给字符名称赋予一个特定值 。 赋值以后,其值在整个过程中有效 。
格式:
字符名称 EQU 赋值项
,赋值项,,可以是常数,地址,标号或表达式 。
8位或 16位二进制数 。 赋值以后的字符名称即可作地址使用,也可作立即数使用 。
PA8155 EQU 8001H
给标号 PA8155赋值 8001H。
第 4 章 汇编语言程序设计
4,DB( Define Byte) 定义数据字节命令功能:用于从指定的地址单元开始,在程序存储器中定义字节数据 。
格式,[标号,] DB 8位数表例如,DB,how are you?”
常使用本命令存放数据表格,例如存放数码管显示的十六进制数的字形码,可使用多条 DB命令定义:
DB C0H,F9H,A4H,B0H
DB 99H,92H,82H,F8H
DB 80H,90H,88H,83H
DB C6H,A1H,86H,84H
第 4 章 汇编语言程序设计查表时,为确定数据区的起始位置,可采用两种方法:
( 1) 根据 DB命令前一条指令的地址确定 。
例,8100H MOV A,#49H ( 1字节 )
TAB,DB C0H,F9H,A4H,B0H
( 2) 使用 ORG指令专门规定例,ORG 8100H
TAB,DB C0H,F9H,A4H,B0H
定义的数码管字形码从 8100地址开始存放 。
第 4 章 汇编语言程序设计
5,DW( Define Word) 定义数据字命令功能:用于从指定地址开始,在程序存储器单元中定义 16位的数据字 。
格式,[标号,] DW 16位数表存放规则:高 8位在前 ( 低地址 ),低 8位在后 ( 高地址 ) 。
例:
DW 100H,1ACH,-814 ;按顺序存 01H,00H,
01H,ACH,D2H,FCH
DW,AA” ;存入 41H,41H
DW,A” ;存入 00H,41H
DW,ABC” ;不合法,因是两个字节第 4 章 汇编语言程序设计注意,DB和 DW定义的数表,数的个数不得超过 80个。
如果数据的数目较多时,可使用多个定义命令。
在 MCS-51程序设计应用中,常以 DB定义数据,
以 DW定义地址。
第 4 章 汇编语言程序设计
6,DS( Define Storage) 定义存储区命令功能:用于从指定地址开始,保留指定数目的字节单元为存储区,供程序运行使用 。 汇编时对这些单元不赋值 。
格式,[标号,] DS 16位数表例,ADDRTABL,DS 20
例,ORG 8100H
DS 08H
注意:对 MSC-51单片机来说,DB,DW,DS命令只能对程序存储器使用,不能对数据存储器使用 。
第 4 章 汇编语言程序设计
7,BIT 位定义命令功能,用于给字符名称赋以位地址 。
格式,字符名称 BIT 位地址例如:
AAA BIT 40H
BBB BIT 50H
其中,位地址,可以是绝对地址,也可以是符号地址 。
第 4 章 汇编语言程序设计
4.2 MCS-51汇编语言程序设计汇编和高级语言程序设计的过程:
首先对问题进行分析,然后确定算法,再根据算法流程编写程序,最后是调试程序 。
汇编语言程序设计的 独特点 在于:
( 1) 用汇编语言进行程序设计时,对 数据的存放,寄存器和工作单元的使用等要由设计者安排 。 而高级语言程序设计时,这些工作都由计算机软件安排,程序设计者不必考虑 。
第 4 章 汇编语言程序设计
( 2) 汇编语言程序设计要求设计人员必须对所使用的计算机的硬件结构有较为详细的了解 。特别是对 各类寄存器、端口、定时器 /计数器、中断等 内容要熟悉,以便在程序设计时能熟练使用。
汇编语言程序共有四种结构形式:
顺序结构、循环结构、分子结构和子程序结构。
第 4 章 汇编语言程序设计
4.2.1 顺序程序例 4.1 设三字节无符号数相加,
被加数:在内部 RAM 20H~ 22H单元 ( 低位在前 ),
加数,在内部 RAM 30H~ 32H单元 ( 低位在前 ),
结果,存于内部 RAM20~ 22H单元,进位位存于 23H单元 。
利用 ADDC指令进行多字节加法运算 。
第 4 章 汇编语言程序设计
ORG 5000H
MOV R0,#20H ;被加数的低字节地址
MOV R1,#30H ;加数的低字节地址
MOV A,@R0
ADD A,@R1 ;低字节相加
MOV @R0,A ;存放字节相加结果
INC R0
INC R1
MOV A,@R0
ADDC A,@R1 ;中间字节带进位相加
MOV @R0,A ;存中间字节相加结果第 4 章 汇编语言程序设计
INC R0
INC R1
MOV A,@R0
ADDC A,@R1 ;高字节带进位相加
MOV @R0,A ;存高字节相加结果
INC R0
MOV A,#00H
ADDC A,#00H
MOV @R0,A ;进位位送 23H
END
第 4 章 汇编语言程序设计例 4.2 将片内 RAM 20H单元的内容拆成两段,每段 4位 。 并将它们分别存入 21H与 22H单元中 。
(20H) =0101,1010=5AH
(21H) =0AH
(22H) =05H
第 4 章 汇编语言程序设计
ORG 5000H
START,MOV R0,#21H ; R0←21H
MOV A,20H ; A← ( 20H)
ANL A,#0FH ; A← #0FH ∧ ( A)
MOV @ R0,A ;( R0) ← ( A),保存低 4位
INC R0 ; R0← ( R0)+ 1
MOV A,20H ; A← ( 20H)
SWAP A ;高低半字节交换
ANL A,# 0FH ; A ∧ # 0FH
MOV @ R0,A ;( R0) ← ( A)
END
第 4 章 汇编语言程序设计
4.2.2 循环程序设计循环初态第 4 章 汇编语言程序设计循环程序一般由四个主要部分组成,
(1) 初始化部分,为循环程序做准备,如规定循环次数,给各变量和地址指针预置初值 。
(2) 处理部分,为反复执行的程序段,是循环程序的实体,也是循环程序的主体 。
(3) 循环控制部分,这部分的作用是修改循环变量和控制变量,并判断循环是否结束,直到符合结束条件时,跳出循环为止 。
(4) 结束部分,这部分主要是对循环程序的结果进行分析、
处理和存放。
第 4 章 汇编语言程序设计循环:单重循环多重循环 ( 二重以上 ) --循环嵌套 。
在多重循环程序中,只允许外重循环嵌套内重循环程序,而不允许循环体互相交叉,另外,也不允许从循环程序的外部跳入循环程序的内部 。
第 4 章 汇编语言程序设计例 4.3 把外部 RAM 5000~50FFH单元的内容清零 。
ORG 4200H
START1,MOV R0,#00H ;设置循环初始值
MOV DPTR,#5000H
LOOP1,MOV A,#00H
MOVX @DPTR,A ;外部 RAM单元清零
INC DPTR ;外部 RAM单元加 1
INC R0 ;循环次数加 1
CJNE R0,#00H,LOOP1 ;循环控制
END
第 4 章 汇编语言程序设计例 4-4 设三字节无符号数相加,
被加数:内部 RAM 20H~ 22H单元 ( 低位在前 ),
加数,内部 RAM 30H~ 32H单元 ( 低位在前 ),
结果:存于内部 RAM 20~ 22H单元,进位位存于 23H单元 。
利用 ADDC指令进行多字节加法运算 。
第 4 章 汇编语言程序设计
ORG 4200H
MOV R0,#20H ;被加数的低字节地址
MOV R1,#30H ;加数的低字节地址
MOV R2,#03H ;循环次数
CLR C
LOOP,MOV A,@R0
ADDC A,@R1 ;低字节相加
MOV @R0,A ;存放字节相加结果
INC R0
INC R1
DJNZ R2,LOOP ;循环控制
MOV A,#00H
ADDC A,#00H
MOV @R0,A ;进位位送 23H
END
第 4 章 汇编语言程序设计例 4.5 把内部 RAM中起始地址为 40H的数据串传送到外部
RAM以 5000H为首地址的区域,直到发现,$”字符的 ASCII码为止。同时规定数据串的最大长度为 32个字节。
第 4 章 汇编语言程序设计
ORG 4200H
MOV R0,#40H ;内部 RAM起始地址
MOV DPTR,#5000H ;外部 RAM起始地址
MOV R1,#20H ;最大串长
LOOP,MOV A,@R0 ;取数据
CLR C ;清进位位
MOV R2,A ;暂存
SUBB A,#24H ;判断是否为,$”
JZ QUIT ;是,转,QUIT”
MOV A,R2 ;不是,送入外部
RAM
MOVX @DPTR,A
INC DPTR ;数据指针加 1
INC R0 ; R0加 1
DJNZ R1,LOOP ;循环次数控制
QUIT,END
第 4 章 汇编语言程序设计例 4.6 从 P1口重复 256次读数并取平均值 。
若用 8051 P1口作为数据输入口,为了采样得到稳定的数值
,要求连续读入 256次取平均 。
将 R2 R3作为连续 256次累加 16位工作寄存器,最后取平均值即除以 256,相当于除以 28。
因此,R2中的数作为最终的近似平均值,R3为余数 。
第 4 章 汇编语言程序设计
ORG 4000H
AVERAGE EQU 40H
AVR,MOV R2,# 00H ; 16位中间寄存器
MOV R3,#00H
MOV R4,# 00H ;设累加次数数为 256D
AVR1,MOV A,P1 ;输入读数
ADD A,R3 ;加入中间寄存器低 8位
JNC AVR2 ;无进位则暂存结果
INC R2 ;有进位则中间寄存器高 8位增 1
AVR2,MOV R3,A ;暂存低 8位中间结果
DJNZ R4,AVR1
MOV AVERAGE,R2
END
第 4 章 汇编语言程序设计例 4.7 设 MCS-51单片机的时钟频率为 fosc = 6 MHz,试设计延时 0.1ms的延时程序 。
延时程序所花费的时间是该程序指令的总机器周期数与机器周期的乘积 。
通常,延时程序采用 MOV和 DJNZ指令来实现 。
单循环延时程序,最大的循环次数位 256,则程序段为:
MOV R0,#00H ;机器周期数为 1
DJNZ R0,$ ;机器周期数为 2
若单片机晶振为 6MHz,则一个机器周期为 2us。
延时时间:( 1+256× 2) × 2μ s= 1026μ s。
需采用多重循环。
第 4 章 汇编语言程序设计多重循环,在一个循环体中又包含了其它的循环程序 。
这种方式是实现延时程序的常用方法 。 使用多重循环时,
必须 注意,
(1) 循环嵌套,必须层次分明,不允许产生内外层循环交叉 。
(2) 外循环可以一层层向内循环进入,结束时由里往外一层层退出 。
(3) 内循环可以直接转入外循环,实现一个循环由多个条件控制的循环结构方式 。
第 4 章 汇编语言程序设计
MOV R7,#200
DELAY1,MOV R6,#125
DELAY2,DJNZ R6,DELAY2 ; 125× 4= 500μs= 0.5ms
DJNZ R7,DELAY1 ; 0.5× 200= 0.1s
该段程序的延时时间约为 0.1006ms
若需延时更长时间,可采用多重循环,如 1s延时可采用 3重循环,而用 7重循环可延时几年 。
第 4 章 汇编语言程序设计
4.2.3 分支程序分支程序的基本结构:单分支和多分支 。
其特点是:各处理模块是相互排斥的 。
第 4 章 汇编语言程序设计
13条条件转移指令,分别为,
JZ,JNZ,累加器判零转移指令;
CJNE,比较条件转移指令;
DJNZ,减 1条件转移指令 ;
JC,JNC,JB,JNB,JBC,位控制条件转移指令等四类。
第 4 章 汇编语言程序设计例 4.9 x,y均为 8位二进制数,x存放在 VAR单元中,函数值 y
存放在 FUNC中,按下式给 y赋值,

0
1
1
y
0
0
0
x
x
x
第 4 章 汇编语言程序设计第 4 章 汇编语言程序设计
ORG 4200H
VAR EQU 40H
FUNC EQU 50H
START,MOV A,VAR ;取 x
JZ COMP ;为零转 COMP
JNB ACC.7,POSI ; x>0,转 POSI
MOV A,#0FFH ; x<0,(A)=- 1
SJMP COMP
POSI,MOV A,#01H
COMP,MOV FUNC,A ;保存结果
END
第 4 章 汇编语言程序设计例 4.8 片内 RAM DATA1和 DATA2两个单元中存有两个无符号数字,将两个数中的小者存入 30H单元 。
ORG 4000H
DATA1 EQU 34H
DATA2 EQU 56H
MOV A,DATA1 ;第一数送 A
CLR C
CJNE A,DATA2,BIG
SJMP STORE ;相等,DATA1作为小的数
BIG,JC STORE
MOV A,DATA2
STORE,MOV 30H,A ;小者送 RAM
END
第 4 章 汇编语言程序设计例 4.10 假定 R0中存放的是采集到的被按键键值,共有 128个键值 ( 0~ 127),根据该键值转向不同键的处理程序中去 。
跳转方法:逐个比较,类似 CASE。
使用散转指令 JMP @A+DPTR 。
设( R0)= 0~ n,对应的处理程序入口地址分别为
PROG0~PROGn,且按照一定的规律排列 。
第 4 章 汇编语言程序设计
ORG 2000H
MOV DPTR,#TAB ;设置处理程序入口首地址
MOV A,R0
RL A ;
NEXT,JMP @A+DPTR ;转向形成的散转地址入口
TAB,AJMP PROG0 ;直接转移地址表
AJMP PROG1
……
AJMP PROGn
第 4 章 汇编语言程序设计
4.2.4 子程序设计子程序与一般程序的主要区别是在子程序的末尾有一条子程序返回指令 ( RET),其功能是执行完子程序后通过将堆栈内的断点地址弹出到 PC而返回到主程序中 。
在编写子程序时应注意以下几点:
( 1) 要给每个子程序赋一个名字 。
实际上是一个入口地址的代号 。
( 2) 要能正确地传递参数 。
首先要有入口条件,说明进入子程序时它所要处理的数据如何得到,另外,要有出口条件,即处理的结果是如何存放的 。
第 4 章 汇编语言程序设计
( 3) 注意保护现场和恢复现场。
注意保存主程序和子程序共同涉及的,但值不同的累加器、寄存器和单元的内容。
保护现场,PUSH
恢复现场,POP
( 4) 注意子程序的通用性。
主程序调用子程序的指令:,LCALL”,,ACALL”。
子程序返回指令,RET。
子程序可以嵌套,嵌套次数从理论上说是无限的,但实际上由于受堆栈深度的影响,嵌套次数是有限的。
第 4 章 汇编语言程序设计例 4.11 设有 a,b,c三个数 ( 0~9),存于内部 RAM的
DATAA,DATAB,和 DATAC三个单元 。
编程实现,c = a2 + b2。
设 DATAA,DATAB,DATAC分别对应内部 RAM的 40H、
41H和 42H单元 。
第 4 章 汇编语言程序设计
ORG 5000H
DATAA EQU 40H
DATAB EQU 41H
DATAC EQU 42H
START,MOV A,DATAA ;取第一操作数
ACALL SQR ;调用查表程序
MOV R1,A ; a2暂存 R1
MOV A,DATAB ;取第二操作数
ACALL SQR ;调用查表程序
ADD A,R1 ; A←a 2+ b2
MOV DATAC,A
第 4 章 汇编语言程序设计子程序:
SQR,INC A ;偏移量调整
MOVC A,@A+PC ;查平方表
RET
TAB,DB 0,1,4,9,16,25,36,49,64,81
END
第 4 章 汇编语言程序设计例 4.12 向 P1口输出全高电平,延时 1s后,再输出全低电平,延时 1s后,再输出全高电平 。
主程序:
ORG 5000H
MAIN,MOV P1,#0FFH
ACALL DELAY
MOV P1,#00H
ACALL DELAY
SJMP MAIN
第 4 章 汇编语言程序设计子程序:
DELAY,MOV R5,#10 ; 1s延时子程序
DELAY0,MOV R6,#200
DELAY1,MOV R7,#125
DELAY2,DJNZ R7,DELAY2
DJNZ R6,DELAY1
DJNZ R5,DELAY0
END
第 4 章 汇编语言程序设计
4.3 其它程序设计举例查表程序代码转换类程序数据极值查找程序逻辑操作程序第 4 章 汇编语言程序设计
4.3.1 查表程序常用于非线性修正,非线性函数转换以及代码转换等 。
专用的查表指令:
MOVC A,@A+DPTR ;远程查表,64KB
通过 以下三步操作实现查表 。
·将所查表格的 首地址送入 DPTR;
·将要查找的 数据序号,即数据在表中的位置送入 累加器 A中 ;
·执行查表指令 MOVC A,@A+DPTR 进行读数并存结果存于累加器 A。
第 4 章 汇编语言程序设计例 4.13 若累加器 A中存放的是一位 BCD码 。 通过查表将其转换成为相应的七段显示码,并存入寄存器 B中 。
七段数码显示管连接方式:共阳极和共阴极两种 。
共阳极是低电平为有效输入,
共阴极为高电平为有效输入 。
假设数码显示管为共阴极 。
0~9的七段码为 3FH,06H,5BH,4FH,66H,6DH,
7DH,07H,7FH,6FH。
由于代码没有规律,一般采用查表完成 。
第 4 章 汇编语言程序设计
h g f e d c b a
0 0 1 1 1 1 1 1
a
ce
d
bgf
h
3FH
第 4 章 汇编语言程序设计若以 DPTR为基址,程序段如下:
… …
MOV A,#05H
MOV DPTR,#TAB
MOVC A,@A+DPTR
TAB,DB 3FH,06H,5BH,4FH,66H,
DB 6DH,7DH,07H,7FH,6FH
… …
第 4 章 汇编语言程序设计
MOVC A,@A+PC ;近程查表,-128~+127B
其实现查表也可通过以下三步操作来完成。
· 将要查找的 数据序号,即数据在表中的位置 送入累加器 A中;
· 把从 查表指令到表的首地址间的偏移量与 A值相加 ;
· 执行查表指令 MOVC A,@A+PC 进行读数,查表结果送累加器 A。
第 4 章 汇编语言程序设计若以 PC为基地址,则程序段如下:
… …
MOV A,#05H
ADD A,#01H
MOVC A,@A+PC
NOP
TAB,DB 3FH,06H,5BH,4FH,66H,
DB 6DH,7DH,07H,7FH,6FH
… …
第 4 章 汇编语言程序设计
4.3.2 代码转换类程序计算机内部的运算一般都是用二进制,而在计算机与外设的数据传送中常采用 BCD码,ASCII码和其它代码,因此,就存在代码转换的问题 。 在程序设计中常采用 算法处理和查表方式 来实现代码转换 。
第 4 章 汇编语言程序设计例 4.14 将累加器 A中 0~ FFH范围内的二进制数转换为非压缩的 BCD数( 0~ 255),并分别保存于 40H,41H和 42H单元(
低位在前)。
非压缩的 BCD码:一个字节放一位 BCD码压缩的 BCD码:一个字节放两个 BCD码例,( A)= 0FEH= 255
= 0000 0010 0000 0101 0000 0101
应用,常用于需要数码显示的场合。
分离方法,将 A中的内容分别除以 100和 10。
45=0100,0101
45=0000,0100,0000,0101
第 4 章 汇编语言程序设计子程序:
BCD,MOV B,#100
DIV AB ; A中为百位数
MOV 42H,A ;保存百位
MOV A,B
MOV B,#10
DIV AB ; A中为十位,B中为个位
MOV 41H,A ;保存十位
MOV 40H,B ;保存个位
RET
第 4 章 汇编语言程序设计例 4.15 把外部 RAM 30H~3FH单元中的 ASCII码依次转换为十六进制数,并存入内部 RAM 60H~67H单元之中 。
假设,被转换的 ASCII为 十六进制数 ( 0~F)的 ASCII,则,
因为,0~9-- ASCII 30~39H
A~F-- ASCII 41~46H
若 ( 30H) = 41H-- A= 10
41H- 30H= 11H= 17
第 4 章 汇编语言程序设计因为一个字节可装两个转换后得到的十六进制数,即两次转换才能拼装为一个字节。为了避免在程序中重复出现转换程序段,因此通常采用子程序结构,把转换操作编写为子程序。
第 4 章 汇编语言程序设计
ORG 5000H
MAIN,MOV R0,# 30H ;设置 ASCII码地址指针
MOV R1,# 60H ;设置十六进制数地址指针
MOV R7,# 08H ;字节个数
AB,ACALL TRAN ;调用转换子程序
SWAP A ; A高低字节交换
MOVX @R1,A
INC R0
ACALL TRAN ; 调用转换子程序
XCHD A,@R1 ;十六进制数拼装
INC R0
INC R1
DJNZ R7,AB
第 4 章 汇编语言程序设计子程序 ( TRAN),
TRAN,CLR C
MOVX A,@R0 ;取 ASCII码
SUBB A,#30H
CJNE A,#0AH,BB
AJMP BC
BB,JC DONE
BC,SUBB A,#07H ;大于等于 0AH,再减 07H
DONE,RET
END
第 4 章 汇编语言程序设计
4.3.3 数据极值查找程序极值查找,挑出 最大值和最小值 。
例 4.16 从内部 RAM 20H单元开始存放 8个数,找出其中的最大数,并放在 28H单元中 。
极值查找的主要内容:进行数值大小的比较 。
假定,A存放大数,与之比较数始终放在 30H单元中 。
比较结束后,把最大数送 28H单元中 。
第 4 章 汇编语言程序设计
ORG 4200H
MOV R0,#20H ;数据区首地址
MOV R7,#08H ;数据区长度
MOV A,@R0 ;读第一个数
DEC R7
LOOP,INC R0
MOV 30H,@R0 ;读下一个数
CJNE A,30H,CHECK ;数值比较
CHECK,JNC LOOP1 ; A值大转
MOV A,@R0 ;大数送 A
LOOP1,DJNZ R7,LOOP ;未完,继续
MOV 28H,A ;极值送 28H单元
END
第 4 章 汇编语言程序设计
4.3.4 逻辑操作程序例 4.17 用软件实现逻辑函数 。
其中 X,Y,Z,W,F均为位变量,分别对应 P1.0,P1.1、
P1.2,P1.3和 P1.7。 由开关为 P1.0,P1.1,P1.2,P1.3输入值,
而由 P1.7输出该逻辑函数值 。
X Y ZX Y Z WZYXF
第 4 章 汇编语言程序设计
ORG 5000H
X BIT P1.0
Y BIT P1.1
Z BIT P1.2
W BIT P1.3
F BIT P1.7
TEMPBIT 20H.0
MOV C,X
ANL C,Y
ANL C,Z ; C←XYZ
MOV TEMP,C ;暂存 XYZ
第 4 章 汇编语言程序设计
ANL C,W
ORL C,TEMP ; C←XYZW + XYZ
MOV TEMP,C
MOV C,X
ANL C,/Y
ANL C,W ; C←
ORL C,/TEMP ; C←
MOV F,C ;输出最后结果
END
ZYX
X Y ZX Y Z WZYX
第 4 章 汇编语言程序设计
4.4 单片机汇编语言源程序的编辑和汇编
4.4.1 单片机源程序编辑
4.4.2 源程序的汇编
1,手工汇编
2,机器汇编
4.4.3 源程序的模拟运行第 4 章 汇编语言程序设计本章小结介绍了顺序、循环、分支以及子程序的设计;
常用程序设计。