第3章MCS-51单片机的寻址方式和指令系统 31MCS-51指令系统概述 32寻址方式 33指令系统
3.1 MCS-51指令系统概述 3.2 寻址方式 3.3 指令系统 第3章 MCS-51单片机的寻址方式和指令系统
第3.1MCS-51指令概述 指令是规定计算机进行某种操作的命令。 指令系统:计算机能够执行的各种指令的集合。 用助记符形式来表示的机器指令称汇编语言指令 指令格式: 操作码「操作数1[,操作数2][,操作数3
指令是规定计算机进行某种操作的命令。 指令系统:计算机能够执行的各种指令的集合。 用助记符形式来表示的机器指令称汇编语言指令。 指令格式: 操作码 [操作数1] [,操作数2] [,操作数3] 第3.1 MCS-51指令概述
计算机语言 机器语言:用二进制代码表示的,能被计算机直接识 别和执行的一种机器指令的集合。目标程序。 2、汇编语言:用助记符表示表示操作码,用字符(字母、 数字、符号)表示操作数的指令称汇编指令。 汇编语言程序占用存储单元较少,执行速度较快,能够准 确掌握执行时间,可实现精细控制,因此特别适用于实时 控制。 汇编语言是面向机器的语言,各种计算机的汇编语言是不 同的
1、机器语言:用二进制代码表示的,能被计算机直接识 别和执行的一种机器指令的集合。目标程序。 2、汇编语言:用助记符表示表示操作码,用字符(字母、 数字、符号)表示操作数的指令称汇编指令。 汇编语言程序占用存储单元较少,执行速度较快,能够准 确掌握执行时间,可实现精细控制,因此特别适用于实时 控制。 汇编语言是面向机器的语言,各种计算机的汇编语言是不 同的。 计算机语言
计算机语言 3、高级语言:高级语言是面向过程的语言。用高级语言 编程主要着眼于算法,而不必了解计算机的内部结构和指 令系统,因此易学易用。高级语言是独立于机器的,一般 的,同一个程序可在任何种类的机器中使用。高级语言适 用于科学计算、数据处理等方面。 将汇编语言翻译成目标程序的过程称为汇编。由人工汇编 和机器汇编两种。 高级语言转换成机器语言只能由计算机完成,使用的软件 称为编译程序或解释程序
3、高级语言:高级语言是面向过程的语言。用高级语言 编程主要着眼于算法,而不必了解计算机的内部结构和指 令系统,因此易学易用。高级语言是独立于机器的,一般 的,同一个程序可在任何种类的机器中使用。高级语言适 用于科学计算、数据处理等方面。 将汇编语言翻译成目标程序的过程称为汇编。由人工汇编 和机器汇编两种。 高级语言转换成机器语言只能由计算机完成,使用的软件 称为编译程序或解释程序。 计算机语言
32寻址方式 寻址方式:寻找操作数或操作数地址的方法。 7种寻址方式: 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 基址加变址寻址 相对寻址 位寻址
3.2 寻址方式 寻址方式:寻找操作数或操作数地址的方法。 7种寻址方式: 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 基址加变址寻址 相对寻址 位寻址
立即寻址 操作数直接出现在指令中。 立即数前必须加“#”,立即数可以是8或16位的。 MOV A,#30H MOV DPTR, #3000H 立即寻址主要用来给寄存器或存储单元赋值
立即寻址 操作数直接出现在指令中。 立即数前必须加“#” ,立即数可以是8或16位的。 MOV A,#30H MOV DPTR,#3000H 立即寻址主要用来给寄存器或存储单元赋值
直接寻址 指令中直接给出操作数所在单元的有效地址。 MOV A, 30H MOV A,90H (PD LaMP addr16 可以直接寻址的存储区域: (1)片内RAM的00H-~7FH单元。 (2)SFR(80H-0FFH),地址可以以单元地址给 出,也可以以寄存器符号给出。 (3)访问程序存储器
直接寻址 指令中直接给出操作数所在单元的有效地址。 MOV A,30H MOV A,90H(P1) LJMP addr16 可以直接寻址的存储区域: (1)片内RAM的00H~7FH单元。 (2)SFR(80H~0FFH),地址可以以单元地址给 出,也可以以寄存器符号给出。 (3)访问程序存储器
寄存器寻址 操作数在寄存器中。 MOV A, RO INC DPTR 可以寻址的寄存器: (1)R0~R7。 (2)部分专用寄存器。如A,B,DPTR等
寄存器寻址 操作数在寄存器中。 MOV A,R0 INC DPTR 可以寻址的寄存器: (1)R0~R7。 (2)部分专用寄存器。如A,B,DPTR等
寄存器间接寻址 寄存器中存放的是操作数的地址,而不是操作数本 身。寄存器前加“a” 可以间接寻址的寄存器:R0、R1、DPTR MOV A,@ RO MOVX A,@ DPTR 可以寻址的存储区域: (1)内部RAM的低128B。aR0、aR1 (2)内部RAM的高128B。aR0、@R1 (3)外部RAM。 @DPTR、@R0、aR1 (4)堆栈操作(SP)
寄存器间接寻址 寄存器中存放的是操作数的地址,而不是操作数本 身。寄存器前加“@”。 可以间接寻址的寄存器:R0、R1、DPTR MOV A, @ R0 MOVX A, @ DPTR 可以寻址的存储区域: (1)内部RAM的低128B。@R0、 @R1 (2)内部RAM的高128B。@R0、 @R1 (3)外部RAM。@DPTR、 @R0、 @R1 (4)堆栈操作(SP)
基址加变址寻址 以DPTR或PC作为基址寄存器,累加器A作为变址 中寄存器,并以两者内容相加形成16位地址作为操作 数的地址。常用于查表操作。前加“@”。 MOVC A,@A+DPTR MOVC A,@A+PC JMP aA+DPTR 特点:(1)只能对程序存储器寻址。 (2)只有3条。 (3)都是单字节指令
基址加变址寻址 以DPTR或PC作为基址寄存器,累加器A作为变址 中寄存器,并以两者内容相加形成16位地址作为操作 数的地址。常用于查表操作。前加“@”。 MOVC A, @ A+DPTR MOVC A, @ A+PC JMP @ A+DPTR 特点:(1)只能对程序存储器寻址。 (2) 只有3条。 (3)都是单字节指令