8月7日陈老师课堂总结
1.伪指令 (1)设置初始地址ORG 如:ORG 2000H 表示后面的目标程序从2000H单元开始存放,不加ORG则从0000H开始 (2)定义字节DB 如:HERE: DB 84H ;(HERE)=84H (3)定义字DW 如: ABC:DW 1234H,08H 等价 ABC:DB 12H,34H,00H,8H DB一般用于定义8位数据(1个字节)。DW用于定义16位数据(1个字)。 (4)为赋值标号EQU 如BLK EQU 1000H 把值1000hH赋给BLK (5)DATA指令 将内部RAM的地址赋给指定的符号名(数值表达式的值在00H~0FFH之间) 如: BUFFAR DATA 40H (6) XDATA指令 将外部RAM的地址赋给指定的符号名(数值表达式的值在0000H~0FFFFH之间) 如:MYDATA XDATA 0400H (7) 定义位命令BIT 给字符名称定义位地址 如:DOGOUT BIT P3.4 用DOGOUT代替P3.4 (8) 文件包含命令INCLUDE 用于将寄存器定义文件包含于当前文件中 (9)源程序结束END $NOMOD51 一、助记符语言
操作码(指令功能) 操作数(指令操作的对象) 可以是数据也可以是地址。 二、指令格式及分类 三、寻址方式 1. 立即寻址:指令中的源操作数是立即数的寻址方式(立即数的类型可以是数字也可以是字符,一般为8位或16位) 如:MOV A,#28H MOV DPTR,#0050H 2. 寄存器寻址 如:INC R5 把寄存器R5的内容加1再送回R6 3. 直接寻址 可访问3种地址空间 (1) 特殊功能寄存器SFR:直接寻址是唯一的访问方式。 (2) 内部数据RAM中的00H~7FH的128个字节单元。 (3) 位地址空间 如:MOV A,45H 把45H单元中的内容送入累加器A中。 4. 寄存器间接寻址 指令指定某一寄存器的内容作为操作数地址。 可间接寻址的寄存器:选定工作寄存器的R0、R1、堆栈指针SP或16位的数据指针DPRT 如:MOV A,@R0 将R0中的内容所表示的地址单元中的内容送给A MOVX @DPTR,A 将A中的内容送到DPTR指向的外部RAM单元中 5. 变址寻址 6. 相对寻址 用于相对跳转指令 7. 位寻址
|