§42指令格式及其分类C51单片机共1条指令 42.1汇编语言的一般格式 标号:指令助记符且的操作数,源操作数;注释 标号 ◇标号也叫做标识符(或符号地址),放在指令之前,是 其后指令所在地址的名字,必须跟一冒号" ◇标号的作用 ◆标号用于表示某条指令跳转时的目标地址 ◆程序在修改和调试时,指令所在的实际地址往往会 随之变化,而代表地址的名字可以不变。因此,使 用标号,可以给编程和修改带来极大的方便。 ◆不是每条指令都需要标号,通常在该指令作为跳转 或调用的目的地址时需要标号。 125446 16:17:5
16:17:59 §4.2 指令格式及其分类 4.2.1 汇编语言的一般格式 标号: 指令助记符 目的操作数, 源操作数 ; 注释 1、标号 标号也叫做标识符(或符号地址),放在指令之前,是 其后指令所在地址的名字,必须跟一冒号":" 。 15 12:54:46 标号的作用 标号用于表示某条指令跳转时的目标地址。 程序在修改和调试时,指令所在的实际地址往往会 随之变化,而代表地址的名字可以不变。因此,使 用标号,可以给编程和修改带来极大的方便。 不是每条指令都需要标号,通常在该指令作为跳转 或调用的目的地址时需要标号。 C51单片机共111条指令
标号的命名必须遵循下列规则: ◆标号由字母a~减A~)、数字(0~9)或某些特殊字 符(下划线、@、?等)组成; ◆标号必须以字母(a~减A~团或某些特殊的符号(a ,?)开头,但问号“?”不能单独作标号; ◆标号长度不允许超过31个字符; ◆标号不能与指令助记符相同。 ◇符合上述规则的标号: .NEXT 1 AAIQ MCCI MODEL?? DELAY ◇不符合上述规则的标号: ◆5FVM F 33G MOV ADD XOR 其中最后三个标号均为指令助记符,不能用做标号 125446 16:17:5
16:17:59 标号的命名必须遵循下列规则: 标号由字母(a~z或A~Z)、数字(0~9)或某些特殊字 符(下划线_、@、?等)组成; 标号必须以字母(a~z或A~Z)或某些特殊的符号(@, _,?)开头,但问号“?”不能单独作标号; 标号长度不允许超过31个字符; 标号不能与指令助记符相同。 16 12:54:46 符合上述规则的标号: NEXT_1 AA1Q MCCl MODEL?? _DELAY 不符合上述规则的标号: 5FVM -F33G ? MOV ADD XOR 其中最后三个标号均为指令助记符,不能用做标号
标号:指令助记符目的操作数,源操作数;注释 2、指令助记符11条指令助记符有41(含5个位操作) ◇指令助记符也叫做操作码,是指令名称的代表符号, 是一条指令语句中必需的,表示本指令进行的操作。 ◇例:MOV表示传送MOVA#13HADA,#0AAH 3、操作数 NOP CLR A CJNE A, direct, rel ◇操作数是指令参与操作的数据,有些指令不需要操作 数,只有操作码;有些指令需要2个或3个操作数。 ◇在数据传送时,送出数据的叫做源操作数,接收数据 的叫做目的操作数。指令中,目的操作数写在前,源 操作数写在后,两操作数之间用逗号“,”分开。有些 操作数可以用表达式表示。 ◇可以用不同的寻址方式得到操作数。 125446 16:17:5
16:17:59 标号:指令助记符 目的操作数,源操作数;注释 2、指令助记符 指令助记符也叫做操作码,是指令名称的代表符号, 是一条指令语句中必需的,表示本指令进行的操作。 例:MOV 表示传送 17 12:54:46 3、操作数 操作数是指令参与操作的数据,有些指令不需要操作 数,只有操作码;有些指令需要2个或3个操作数。 在数据传送时,送出数据的叫做源操作数,接收数据 的叫做目的操作数。指令中,目的操作数写在前,源 操作数写在后,两操作数之间用逗号“,”分开。有些 操作数可以用表达式表示。 可以用不同的寻址方式得到操作数。 MOV A,#13H ADD A, #0AAH NOP CLR A CJNE A, direct, rel 111条指令助记符有44个(含5个位操作)
4.21汇编语言的一般格式 标号:指令助记符目的操作数,源操作数;注释 注释 ◇注释是为了阅读程序方便由编程人员加上的,并不 影响程序的执行和功能,所以,注释部分不是必需 的 ◇注释部分必须用分号“;”开头,一般都写在它所注 释的指令的后面,注释本身只用于对指令功能加以 说明,使阅读程序时便于理解,所以注释可以用中 文或者英文甚至任何便于理解的字符表示。 125446 16:17:5
16:17:59 4.2.1 汇编语言的一般格式 标号:指令助记符 目的操作数,源操作数;注释 4、注释 注释是为了阅读程序方便由编程人员加上的,并不 影响程序的执行和功能,所以,注释部分不是必需 的。 注释部分必须用分号“;”开头,一般都写在它所注 释的指令的后面,注释本身只用于对指令功能加以 说明,使阅读程序时便于理解,所以注释可以用中 文或者英文甚至任何便于理解的字符表示。 18 12:54:46
4.22指令代码的存储格式 ◇指令存储位置:程序存储器 ◇指令由操作码和操作数组成,不同的指令所需要的操 作数的个数有可能是不同的,所以每条指令的实际字 节数不是固定的, ◇例如,程序中有如下两条连续存放的指令: MOVA,#68H;将立即数68H送到累加器A中; ◆是两字节指令;机器码:74H(操作码)和68H(操作数) MOVB,#73H;将立即数73H送到寄存器B中 ◆是三字节指令;机器码:75H(操作码)、F0H和73H; B(地址为F0H)和73H是操作数。 A(地址为E0H)、B地址,见表3-2特殊功能寄存器(49页) 125446 16:17:5
16:17:59 4.2.2 指令代码的存储格式 指令存储位置:程序存储器 指令由操作码和操作数组成,不同的指令所需要的操 作数的个数有可能是不同的,所以每条指令的实际字 节数不是固定的, 例如,程序中有如下两条连续存放的指令: 19 12:54:46 MOV A,#68H ;将立即数68H送到累加器A中; 是两字节指令; 机器码:74H(操作码)和68H(操作数). MOV B, #73H ;将立即数73H送到寄存器B中; 是三字节指令; 机器码: 75H(操作码)、F0H和73H; B(地址为F0H) 和73H是操作数。 A(地址为E0H)、B地址,见表3-2特殊功能寄存器(49页)