第二步:计算偏移量 (rel1=1008H-100BH=-3H 以补码表示:rel=0FDH ②rel2=1005H-100EH=9H 以补码表示:rel2=0F7H ③指令中 AJMP DL中D=1002H其低11为0000000,所 该指令的代码为:01H,02H 表4-2第二步汇编结果 地址 指令代码 标号助记符 ORG 1000H 1000H D291 START: SETB PLI 1002H 753003 DL. MOV 30H #03H 1005H 7531F0 DLO: MOV 31H #OFOH 1008H D5 31 FD DLI DJNZ 31H DLl 100BH D530F7 DJNZ 30H DLO 100EH B291 CPL PLL 1010H 0102 AJMP DL END
第二步:计算偏移量 ①rel1=1008H-100BH=-3H 以补码表示:rel=0FDH ②rel2=1005H-100EH=-9H 以补码表示:rel2=0F7H ③指令中AJMP DL中DL=1002H其低11为00000000010B,所 以该指令的代码为:01H,02H。 表4-2 第二步汇编结果 地址 指令代码 标号 助记符 1000H D2 91 1002H 75 30 03 1005H 75 31 F0 1008H D5 31 FD 100BH D5 30 F7 100EH B2 91 1010 H 01 02 ORG 1000H START: SETB P1.1 DL: MOV 30H,#03H DL0: MOV 31H,#0F0H DL1: DJNZ 31H,DL1 DJNZ 30H,DL0 CPL P1.1 AJMP DL END
4.1.3机器汇编 机器汇编是由计算机的汇编软件将汇编语言源程序自动 生成机器语言程序。汇编软件称汇编程序。 机器汇编可在单片机开发系统(如仿真器)上汇编软件 实现,称驻留汇编;也可在其它计算机(如PC机)上进 称交叉汇编
4.1.3 机器汇编 机器汇编是由计算机的汇编软件将汇编语言源程序自动 生成机器语言程序。汇编软件称汇编程序。 机器汇编可在单片机开发系统(如仿真器)上汇编软件 实现,称驻留汇编;也可在其它计算机(如PC机)上进行, 称交叉汇编
4.2汇编语言程序设计概述 4.21汇编语言语句格式 〔标号:〕<操作码助记符冮操作数;注释] 1标号 标号是语句地址的标志符号、代表该语句指令代码第 个字节的地址。 2操作码助记符 此为语句中唯一不可缸少的部分,也是语句的核心,表 示该语句进行何种操作。 3操作数 操作数是指令的操作对象。 4注释 注释是为方便程序的编写、理解、交流而书写的说明解 释性文字、符号
4.2 汇编语言程序设计概述 4.2.1 汇编语言语句格式 〔标号:〕<操作码助记符>[ 操作数][;注释] 1.标号 标号是语句地址的标志符号、代表该语句指令代码第一 个字节的地址。 2.操作码助记符 此为语句中唯一不可缸少的部分,也是语句的核心,表 示该语句进行何种操作。 3.操作数 操作数是指令的操作对象。 4.注释 注释是为方便程序的编写、理解、交流而书写的说明解 释性文字、符号
4.22伪指令 1汇编起始地址伪指令ORG( Origin) 格式:〔标号:〕ORG< caddo6> 功能:规定目标程序段式数据块的起始地址 说明:总放在源程序段的开头和数据块的开头 2汇编结束指令END 格式:[标号:〕END 功能:告诉汇编程序,源程序到此结果,汇编到此截止。 说明:一个程序只能有一条END命令,且位于程序的最后。汇 编程序对END语句以后的语句不进行汇编。 例如: ORG 2000H START: MOV A B INB ACC 7 DONE CPL A DONE MOV B.A END
4.2.2 伪指令 1.汇编起始地址伪指令ORG(Origin) 格式:〔标号:〕ORG <addr16> 功能:规定目标程序段式数据块的起始地址。 说明:总放在源程序段的开头和数据块的开头 2.汇编结束指令END 格式:〔标号:〕END 功能:告诉汇编程序,源程序到此结果,汇编到此截止。 说明:一个程序只能有一条END命令,且位于程序的最后。汇 编程序对END语句以后的语句不进行汇编。 例如: ORG 2000H START:MOV A,B JNB ACC.7,DONE CPL A DONE:MOV B,A END
3字节定义伪指令 DEfine byte) 格式:〔标号:〕DB<字节数据 功能:从指定的地址单元开始,存入规定好的8位数(字节数 据) 说明:1)存贮地址单元可由前一条指令确定或由ORG命令 指定 2)当存贮多个数时,中间用 隔开 例如 ORG 8000H MOV A 40H TAB:DB40H,1101B,96… 表示从8002H单元开始分别存放40H,ODH,43H 例 ORG 1000H DB“ How are you” 则把字符串中的字符按ASCI码连续存放在1000H~100AH 个单元中(包括两个空格) 注意: DB OFA2H是非法的,因OFA2H不是字节数
格式:〔标号:〕DB <字节数据> 功能:从指定的地址单元开始,存入规定好的8位数(字节数 据)。 说明:1)存贮地址单元可由前一条指令确定或由ORG命令 指定; 2)当存贮多个数时,中间用“ , ”隔开。 例如: ORG 8000H MOV A, 40H TAB:DB 40H, 1101B, 96…… 表示从8002H单元开始分别存放40H,0DH,43H 例: ORG 1000H DB “How are you” 则把字符串中的字符按ASCII码连续存放在1000H~100AH 11 个单元中(包括两个空格)。 注意:DB 0FA2H 是非法的,因0FA2H不是字节数。 3.字节定义伪指令DB(Define Byte)