第4章汇编语言程序设 第4章汇编语言程序设计 41概述 42MCS51汇编语言程序设计 顺序、循环、分支、子程序 43常用程序设计举例 查表、代码转换、极值査找等 BACK
第 4 章 汇编语言程序设计 第4章 汇编语言程序设计 4.1 概述 4.2 MCS-51汇编语言程序设计 顺序、循环、分支、子程序 4.3 常用程序设计举例 查表、代码转换、极值查找等
第4章汇编语言程序设 4.1概述 4.1.1计算机常用的编程语言 程序设计语言:低级语言和高级语言。 低级语言:机器语言 汇编语言: 采用特定的助记符号来描述机器指令 高级语言: 高级语言程序要经过解释程序或编译程序的 编译,形成目标程序后,才能执行。 常用的高级语言: BASIC, FORTRAN, PASCAL,C等
第 4 章 汇编语言程序设计 4.1 概 述 4.1.1 计算机常用的编程语言 程序设计语言:低级语言和高级语言。 低级语言:机器语言 汇编语言: 采用特定的助记符号来描述机器指令 高级语言: 高级语言程序要经过解释程序或编译程序的 编译,形成目标程序后,才能执行。 常用的高级语言:BASIC,FORTRAN,PASCAL,C等
第4章汇编语言程序设 4.1.2MCS-51汇编语言伪指令 1.ORG( Origin)汇编起始地址命令 功能:用于规定目标程序的起始地址。 格式: 标号:ORG地址 地址项:16位绝对地址,也可以用标号或表达式表示。 如果不用ORG规定,则汇编得到的目标程序将从0000H开始
第 4 章 汇编语言程序设计 4.1.2 MCS-51汇编语言伪指令 1.ORG(Origin) 汇编起始地址命令 功能:用于规定目标程序的起始地址。 格式: [标号:] ORG 地址 地址项:16位绝对地址,也可以用标号或表达式表示。 如果不用ORG规定,则汇编得到的目标程序将从0000H开始
第4章汇编语言程序设 个源程序中,可多次使用ORG指令以规定不同程序段 的起始位置。地址应从小到大顺序排列,不允许重叠。 例如: ORG 4000H LUMP MAIN ORG 4200H MAIN MOV A, 30H
第 4 章 汇编语言程序设计 一个源程序中,可多次使用ORG指令以规定不同程序段 的起始位置。地址应从小到大顺序排列,不允许重叠。 例如: ORG 4000H LJMP MAIN ORG 4200H MAIN: MOV A, 30H
第4章汇编语言程序设 2.END( END of assembly)汇编终止命令 功能:用于终止源程序的汇编工作。 END之后的指令,汇编程序不予处理 格式: 标号:END[表达式 只有主程序模块才有“表达式”项,且“表达式”的值等于 该程序模块的入口地址。而其他程序模块就没有“表达式”项 “标号:”也是选择项。 一个源程序只能有一个END命令
第 4 章 汇编语言程序设计 2.END(END of assembly)汇编终止命令 功能:用于终止源程序的汇编工作。 END之后的指令,汇编程序不予处理。 格式: [标号:] END [表达式] 只有主程序模块才有“表达式” 项,且“表达式”的值等于 该程序模块的入口地址。而其他程序模块就没有“表达式”项 。 “标号:”也是选择项。 一个源程序只能有一个END命令
第4章汇编语言程序设 3.EQU( Equate)赋值命令 功能:用于给字符名称赋予一个特定值。赋值以后,其值在 整个过程中有效。 格式: 字符名称EQU赋值项 “赋值项”:可以是常数、地址、标号或表达式。 8位或16位二进制数。赋值以后的字符名称即可 作地址使用,也可作立即数使用。 PA8155 EQU 8001H 给标号PA8155赋值800H
第 4 章 汇编语言程序设计 3.EQU(Equate) 赋值命令 功能:用于给字符名称赋予一个特定值。赋值以后,其值在 整个过程中有效。 格式: 字符名称 EQU 赋值项 “赋值项”:可以是常数、地址、标号或表达式。 8位或16位二进制数。赋值以后的字符名称即可 作地址使用,也可作立即数使用。 PA8155 EQU 8001H 给标号PA8155赋值8001H
第4章汇编语言程序设 4.DB( Define byte)定义数据字节命令 功能:用于从指定的地址单元开始,在程序存储器中定义 字节数据。 格式:[标号:|DB8位数表 例如:DB“ how are you?” 常使用本命令存放数据表格,例如存放数码管显示的十六 进制数的字形码,可使用多条DB命令定义: DB COH, F9H, A4H, BOH DB 99H, 92H, 82H, F8H DB80H,90H,88H,83H DB C6H AlH, 86H, 84H
第 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命令前一条指令的地址确定。 例:8100HMOV A,#49H(1字节) TAB: db Coh. F9H. A4H. BOH (2)使用ORG指令专门规定 例 ORG 8100H TAB: Db CoH. F9H. A4H. BOH 定义的数码管字形码从8100地址开始存放
第 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位 的数据字。 格式: 标号:Dw16位数表 存放规则:高8位在前(低地址),低8位在后(高地址) 例 DW100H,1ACH,814;按顺序存01H,00H, OIH. ACHD2H.FCH DW“AA ;存入41,41H DW“A ;存入00H,41 Dw“ABC” ;不合法,因是两个字节
第 4 章 汇编语言程序设计 5.DW(DefineWord) 定义数据字命令 功能:用于从指定地址开始,在程序存储器单元中定义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个。 如果数据的数目较多时,可使用多个定义命令。 在MCS51程序设计应用中,常以DB定义数据, 以DW定义地址
第 4 章 汇编语言程序设计 注意: DB和DW定义的数表,数的个数不得超过80个。 如果数据的数目较多时,可使用多个定义命令。 在 MCS-51程序设计应用中,常以DB定义数据, 以DW定义地址