每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY 第四章 汇编语言及程序设计 信息与通信工程学院
第四章 汇编语言及程序设计
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY §4.1伪指令 伪指令不是真正的指令,在汇编时不产生机器代 码。伪指令的功能主要是用来对汇编过程进行某种控 制。采用机器汇编的方法时,源程序必须通过汇编程 序的处理,才能转换为计算机识别和执行的机器语言。 为此,在源程序中应有向汇编程序发出的指示信息, 告诉汇编程序如何完成汇编工作。如用伪指令给程序 分配一定的存储区、定义符号、指定暂存数据的RAM 区等。 信息与通信工程学院
伪指令不是真正的指令,在汇编时不产生机器代 码。伪指令的功能主要是用来对汇编过程进行某种控 制。采用机器汇编的方法时,源程序必须通过汇编程 序的处理,才能转换为计算机识别和执行的机器语言。 为此,在源程序中应有向汇编程序发出的指示信息, 告诉汇编程序如何完成汇编工作。如用伪指令给程序 分配一定的存储区、定义符号、指定暂存数据的RAM 区等。 §4.1 伪指令
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY 1.ORG(起始汇编)伪指令 般用于确定汇编语言源程序或某数据块在内存 存储的首地址 ORG 2000H START MOV A. 10H END 在一个源程序中,可以多次使用ORG规定不 同程序段的起始地址,但定义的地址顺序应该是从 小到大,不允许交叉、重叠。 信息与通信工程学院
一般用于确定汇编语言源程序或某数据块在内存 存储的首地址 ORG 2000H START: MOV A, #10H ┇ END 在一个源程序中,可以多次使用ORG规定不 同程序段的起始地址,但定义的地址顺序应该是从 小到大,不允许交叉、重叠。 1.ORG(起始汇编)伪指令
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY ORG 2000H ORG 2500H ORG 2500H ORG 2000H ORG 3000H ORG 3000H 2.END(结束汇编)伪指令 END是汇编语言源程序的结束标志,常用于汇编语 言源程序末尾,表示汇编结束。一个源程序只能有 个END命令,且置于程序的最后。在END以后所写的 指令,汇编程序都不予处理。 信息与通信工程学院
ORG 2000H ┇ ORG 2500H ┇ ORG 3000H ┇ ORG 2500H ┇ ORG 2000H ┇ ORG 3000H ┇ END是汇编语言源程序的结束标志,常用于汇编语 言源程序末尾,表示汇编结束。一个源程序只能有一 个END命令,且置于程序的最后。在END以后所写的 指令,汇编程序都不予处理。 2. END(结束汇编)伪指令
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY 3.EQU(赋值)伪指令 字符名EQU数据或汇编符 ORG 2000H KA EQU R1 M1 EQU 20H STRT EQU 2500H MOV RO, M1 MOV KA. A ACALL STRT END 信息与通信工程学院
字符名 EQU 数据或汇编符 ORG 2000H KA EQU R1 M1 EQU 20H STRT EQU 2500H MOV R0, #M1 MOV KA, A ┇ ACALL STRT ┇ END 3. EQU(赋值)伪指令
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY ①“字符名”不是标号,故它与EQU之间不能用“:” 隔开; ②“字符名”必须先赋值后使用,只能赋值一次; ③在有些McS-51汇编程序中,EQU定义的“字符名” 不能在表达式中运算。如下面语句就是错误的。 K1EQ以30H MOV A K1+ 信息与通信工程学院
①“字符名”不是标号,故它与EQU之间不能用 “ :” 隔开; ②“字符名”必须先赋值后使用,只能赋值一次; K1 EQU 30H MOV A, K1+1 ③ 在有些MCS-51汇编程序中,EQU定义的“字符名” 不能在表达式中运算。如下面语句就是 错误的
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY 4.DATA(赋值)伪指令 字符名DATA表达式 ①表达式允许是一个数据或地址,也可以是包含被 定义的“字符名”在内的表达式,但不能是汇编符号 如R0~R7等 ②DATA伪指令可放在程序的任何位置,比EQU伪 指令灵活 信息与通信工程学院
字符名 DATA 表达式 ①表达式允许是一个数据或地址,也可以是包含被 定义的“字符名”在内的表达式,但不能是汇编符号, 如R0~R7等 ②DATA伪指令可放在程序的任何位置,比EQU伪 指令灵活 4.DATA(赋值)伪指令
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY ③DATA伪指令一般用于定义程序中所用的8位或16位 的数据或地址,但在有些汇编程序中,只允许DATA语 句定义8位数据或地址,定义16位的数据或地址时,需 使用 XDATA语句 ORG 2000H M DATA 20H DELAY XDATA 08AFH MOVA M LCALL DELAY END 信息与通信工程学院
ORG 2000H M DATA 20H DELAY XDATA 08AFH MOV A , M ┇ LCALL DELAY ┇ END ③DATA伪指令一般用于定义程序中所用的8位或16位 的数据或地址,但在有些汇编程序中,只允许DATA语 句定义8位数据或地址,定义16位的数据或地址时,需 使用XDATA语句
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY 5.DB(定义字节)伪指令 DB伪指令可用来为汇编语言源程序在内存的 某区域中定义一个或一串字节 [标号:]DB项或项表 ORG 2000H TAB1: DB 30H, 8AH, 7FH, 73 DB 5,A,BCD 信息与通信工程学院
DB伪指令可用来为汇编语言源程序在内存的 某区域中定义一个或一串字节。 [标号:] DB 项或项表 ORG 2000H TAB1: DB 30H,8AH,7FH,73 DB '5','A','BCD' 5.DB(定义字节)伪指令
每)天半紫大学 IIANJIN POLYTECHNIC UNIVERSITY (2000H)=30H (2001H)=8AH (2002H)=7FH (2003H)=49H;十进制数73以十六进制数存放 (2004H)=35H;35H是数字5的ASC码 (2005H)=41H;41H是字母A的ASCI码 (2006H)=42H;42H是字符串BCD中B的ASc码 (2007H)=43H;43H是字符串BcD中c的ASC码 (2008H)=44H;44H是字符串BcD中D的ASc码 信息与通信工程学院
(2000H)=30H (2001H)=8AH (2002H)=7FH (2003H)=49H ;十进制数73以十六进制数存放 (2004H)=35H ;35H是数字5的ASCII码 (2005H)=41H ;41H是字母A的ASCII码 (2006H)=42H ;42H是字符串'BCD'中B的ASCII码 (2007H)=43H ;43H是字符串'BCD'中C的ASCII码 (2008H)=44H ;44H是字符串'BCD'中D的ASCII码