第4章汇编语宣程存设计简介 第4章汇编语言程序设计简介 41伪指令 4,2汇编语言程序设计 BACK
第 4 章 汇编语言程序设计简介 第4章 汇编语言程序设计简介 4.1 伪指令 4.2 汇编语言程序设计
第4章汇编语宣程存设计简介 411伪指令 汇编起始指令ORG 指令格式为 ORG nn 该指令的作用是指明后面的程序或数据块的起始地址, 它总是出现在每段源程序或数据块的开始。式中,nn为16位 地址,汇编时m确定了此语句后面第一条指令或第一个数据 的地址此后的源程序或数据块就依次连续存放在以后的地址 内,直到遇到另一个ORG指令为止
第 4 章 汇编语言程序设计简介 4.1 伪 指 令 一、 汇编起始指令 ORG 指令格式为: ORG nn 该指令的作用是指明后面的程序或数据块的起始地址, 它总是出现在每段源程序或数据块的开始。 式中, nn为 16 位 地址, 汇编时nn确定了此语句后面第一条指令或第一个数据 的地址,此后的源程序或数据块就依次连续存放在以后的地址 内, 直到遇到另一个ORG指令为止
第4章汇编语宣程存设计简介 例 ORG 2000H MOV SP + 60H MOV RO. +2FH MOV R2. OFFH ORG伪指令说明其后面程序的目标代码在存储器中存放的 起始地址是2000H,即 存储器地址目标程序 2000H 758160 2003H 782F 2005H 7A FF
第 4 章 汇编语言程序设计简介 例: ORG 2000H MOV SP, #60H MOV R0, #2FH MOV R2, # 0FFH ORG伪指令说明其后面程序的目标代码在存储器中存放的 起始地址是2000H, 存储器地址 2000H 75 81 60 2003H 78 2F 2005H 7A FF
第4章汇编语宣程存设计简介 、等值指令EQU 指令格式 字符名称EQU数字或汇编符号 功能:使指令中的字符名称等价于给定的数字或汇编符号。 使用等值指令可给程序的编制、调试、修改带来方便,如果 在程序中要多次使用到某一地址,由EQU指令将其赋值给一个字 符名称,一旦需要对其进行变动,只要改变EQU命令后面的数字 即可,而不需要对程序中涉及到该地址的所有指令逐句进行修 改。但要注意,由EQU等值的字符名称必须先赋值后使用,且 在回一个源程序中,同一个标号只能赋值一次。例 PA8155 EQU 8001H 即给标号PA8155赋值为8001H
第 4 章 汇编语言程序设计简介 二、等值指令EQU 指令格式: 字符名称 EQU 功能: 使指令中的字符名称等价于给定的数字或汇编符号。 使用等值指令可给程序的编制、调试、修改带来方便, 如果 在程序中要多次使用到某一地址,由EQU指令将其赋值给一个字 符名称, 一旦需要对其进行变动, 只要改变EQU命令后面的数字 即可, 而不需要对程序中涉及到该地址的所有指令逐句进行修 改。 但要注意, 由 EQU等值的字符名称必须先赋值后使用, 且 在同一个源程序中, 同一个标号只能赋值一次。 例: PA8155 EQU 8001H 即给标号PA8155赋值为8001H
第4章汇编语宣程存设计简介 三、定义字节指令DB 指令格式 [标号:]DB8位二进制数表 功能:把8位二进制数表依次存入从标号开始的连续的 存储单元中 格式中,标号区段可有可无,DB指令之后的8位二进制 数表是字节常数或用逗号隔开的字节串,也可以是用引号括 起来的ASCI码字符串(一个ASC字符相当于一个字节
第 4 章 汇编语言程序设计简介 三、 定义字节指令DB 指令格式: [标号: ] DB 8 功能: 把 8 位二进制数表依次存入从标号开始的连续的 存储单元中。 格式中, 标号区段可有可无, DB指令之后的 8 位二进制 数表是字节常数或用逗号隔开的字节串, 也可以是用引号括 起来的ASCII码字符串 (一个 ASCII字符相当于一个字节)。 例:
第4章汇编语宣程存设计简介 ORG 1000H bUF1: db 38H. 7FH. 80H BUF2: DB 45H. 66H ORG伪指令指定了标号BUF1的地址为1000H,而DB伪 指令是将其后的二进制数表38H,7FH,80H依次存放在 1000HI,100IH,1002H3个连续单元之中,BUF2也是一个标 号,其地址与前一条伪指令连续,即1003H,1004H地址单元 中依次存放45H,66H
第 4 章 汇编语言程序设计简介 ORG 1000H BUF1: DB 38H, 7FH, 80H BUF2: DB 45H, 66H ORG伪指令指定了标号BUF1的地址为1000H, 而DB伪 指令是将其后的二进制数表38H, 7FH, 80H依次存放在 1000H, 1001H, 1002H 3 个连续单元之中, BUF2也是一个标 号, 其地址与前一条伪指令连续, 即1003H, 1004H地址单元 中依次存放 45H, 66H
第4章汇编语宣程存设计简介 四、定义字指令Dw 指令格式 [标号:]DW16位数据表 该指令的功能与DB相似,区别仅在于从指定地址开始存 放的是指令中的16位数据,而不是字节串。每个16位数据 要占两个存储单元,高8位先存,低8位后存,这和MCS-51指 令中的16位数据存放顺序是一致的
第 4 章 汇编语言程序设计简介 四、 定义字指令DW 指令格式: [标号:] DW 16 该指令的功能与DB相似, 区别仅在于从指定地址开始存 放的是指令中的 16 位数据, 而不是字节串。每个 16 位数据 要占两个存储单元, 高8 位先存, 低 8 位后存, 这和MCS -51指 令中的16位数据存放顺序是一致的
第4章汇编语宣程存设计简介 五、汇编结束指令END 指令格式 [标号:]END地址或标号 格式中标号以及END后面的地址或标号可有可无。 功能:提供汇编结束标志。汇编程序遇到END后就停 止汇编,对END以后的语句不予处理,故END应放在程序 的结束处
第 4 章 汇编语言程序设计简介 五、 汇编结束指令END 指令格式: [标号:] END 格式中标号以及END后面的地址或标号可有可无。 功能: 提供汇编结束标志。汇编程序遇到 END后就停 止汇编, 对 END以后的语句不予处理, 故 END应放在程序 的结束处
第4章汇编语宣程存设计简介 42汇编语言程序设计 421简单程序设计 例1两个无符号双字节数相加。 设被加数存放于内部RAM的40H(高位字节),41H(低 位字节),加数存放于50H(高位字节),51H(低位字节), 和数存入40H和4H单元中
第 4 章 汇编语言程序设计简介 4.2 汇编语言程序设计 4.2.1 简单程序设计 例 1 两个无符号双字节数相加。 设被加数存放于内部RAM的40H(高位字节), 41H(低 位字节), 加数存放于50H(高位字节), 51H(低位字节), 和数存入 40H和41H单元中
第4章汇编语宣程存设计简介 程序如下 START CLR C 将Cy清零 MOV RO,#41H;将被加数地址送数据指针RO MOⅴRl,#5H;将加数地址送数据指针R1 AD1:MOVA,@R0;被加数低字节的内容送入A ADD A, @RI 两个低字节相加 MOⅤaR0,A 低字节的和存入被加数低字节中 DEC RO 指向被加数高位字节 DEC RI 指向加数高位字节 MOⅤA,@R0 被加数高位字节送入A ADDC A, @RI 两个高位字节带Cy相加 MOV aRO,A 高位字节的和送被加数高位字节 RET
第 4 章 汇编语言程序设计简介 程序如下: START: CLR C ; 将Cy MOV R0, #41H ; 将被加数地址送数据指针R0 MOV R1, #51H ; 将加数地址送数据指针R1 AD1: MOV A, @R0 ; 被加数低字节的内容送入A ADD A,@R1 ; MOV @R0, A ; DEC R0 ; DEC R1 ; MOV A, @R0 ; 被加数高位字节送入A ADDC A, @R1 ; 两个高位字节带Cy MOV @R0, A ; RET