标号字段操作码宇段操作数字段注释字段 START: MOV A#00H .0-A MOV RI. #10 10→R1 MOvR2,#00000011B;3-R2 LOOP: ADD A, R2;(A)+(R2)-A DNZ R1,LOOP;R1内容减1不 为零,则循环 NOP HERE: SJMP HERE 基本语法规则: 1.标号字段 是语句所在地址的标志符号
标号字段 操作码字段 操作数字段 注释字段 START: MOV A,#00H ;0→A MOV R1,#10 ;10→R1 MOV R2,#00000011B ;3→R2 LOOP:ADD A,R2 ;(A)+(R2)→A DJNZ R1,LOOP;R1内容减1不 ;为零,则循环 NOP HERE: SJMP HERE 基本语法规则: 1.标号字段 是语句所在地址的标志符号
(1)标号后边必须跟以冒号“:” (2)由1~8个ASCI字符组成 (3)同一标号在一个程序中只能定义一次 (4)不能使用汇编语言已经定义的符号作为标号 2.操作码字段 是汇编语言指令中唯一不能空缺的部分。汇编程序就是根 据这一字段来生成机器代码的 3.操作数字段 通常有单操作数、双操作数和无操作数三种情况。如果是 双操作数,则操作数之间,要以逗号隔开。 (1)十六进制、二进制和十进制形式的操作数表示
(1)标号后边必须跟以冒号“:” (2)由1~8个ASCII字符组成 (3)同一标号在一个程序中只能定义一次 (4)不能使用汇编语言已经定义的符号作为标号 2.操作码字段 是汇编语言指令中唯一不能空缺的部分。汇编程序就是根 据这一字段来生成机器代码的。 3.操作数字段 通常有单操作数、双操作数和无操作数三种情况。如果是 双操作数,则操作数之间,要以逗号隔开。 (1)十六进制、二进制和十进制形式的操作数表示
采用十六进制形式来表示,某些特殊场合才采用二进制 或十进制的表示形式。 十六进制,后缀“H”。 二进制,后缀“B”。 十进制,后缀“D”,也可省略。 若十六进制的操作数以字符A~F中的某个开头时,则需在 它前面加一个“0”,以便在汇编时把它和字符AF区别 开来。 (2)工作寄存器和特殊功能寄存器的表示 采用工作寄存器和特殊功能寄存器的代号来表示,也可用 其地址来表示。 例如,累加器可用A(或Ac)表示。也可用0E0H来表示, 0E0H为累加器A的地址
采用十六进制形式来表示 ,某些特殊场合才采用二进制 或十进制的表示形式 。 十六进制,后缀“H” 。 二进制,后缀“B” 。 十进制,后缀“D” ,也可省略。 若十六进制的操作数以字符A~F中的某个开头时,则需在 它前面加一个 “0” ,以便在汇编时把它和字符A~F区别 开来。 (2)工作寄存器和特殊功能寄存器的表示 采用工作寄存器和特殊功能寄存器的代号来表示,也可用 其地址来表示。 例如,累加器可用A(或Acc)表示。也可用0E0H来表示, 0E0H为累加器A的地址
(3)美元符号$的使用 用于表示该转移指令操作码所在的地址。例如,如下指令 JNB FO S 与如下指令是等价的: HERE: NB FO. HERE 再如: HERE: SJMP HERE 可写为: SJMP S 4.注释字段
(3)美元符号$的使用 用于表示该转移指令操作码所在的地址。例如,如下指令: JNB F0, $ 与如下指令是等价的: HERE:JNB F0,HERE 再如: HERE:SJMP HERE 可写为: SJMP $ 4.注释字段
必须以分号“;”开头,换行书写,但必须注意也要以分 号“;”开头。 汇编时,注释字段不会产生机器代码。 413伪指令 在MCS-51汇编语言源程序中应有向汇编程序发出的指示 信息,告诉它如何完成汇编工作,这是通过使用伪指令 来实现的。 也称为汇编程序控制命令。只有在汇编前的源程序中才有 伪指令。经过汇编得到目标程序(机器代码)后,伪指 令已无存在的必要,所以“伪”体现在汇编时,伪指令 没有相应的机器代码产生。 常用的伪指令: 1.ORG( ORiGin)汇编起始地址命令
必须以分号“;”开头,换行书写,但必须注意也要以分 号“;”开头。 汇编时,注释字段不会产生机器代码。 4.1.3 伪指令 在MCS-51 汇编语言源程序中应有向汇编程序发出的指示 信息,告诉它如何完成汇编工作,这是通过使用伪指令 来实现的。 也称为汇编程序控制命令。只有在汇编前的源程序中才有 伪指令。经过汇编得到目标程序(机器代码)后,伪指 令已无存在的必要,所以“伪”体现在汇编时,伪指令 没有相应的机器代码产生。 常用的伪指令: 1.ORG(ORiGin)汇编起始地址命令