ATmega128单片机的指令是能执行的命令,其集合则为指令系统,属于AVR系列单片机的RISC结构的精简指令集,可以分为以下5个大类。
● 算术运算和逻辑运算指令。
● 转移指令。
● 数据传送指令。
● 位和位测试指令。
● 控制指令。
ATmega128单片机的指令集如表1.23所示。
表1.23 ATmega128单片机的指令集
续表
续表
续表
寻址是ATmega128单片机寻找操作数所在地址单元的过程,有以下10种寻址方式。
(1)直接单寄存器寻址:通过指令中的一些特定字段的内容来定位操作数,操作数的地址由指令的后5位来确定,可以寻址32个通用寄存器。
(2)直接双寄存器寻址:和直接单寄存器寻址类似,但是它有两组5位寄存器地址单元,因此可以寻址32个通用寄存器中的两个。
(3)直接I/O寻址:使用指令中的D5~D0位来指定I/O的位置,同时还可以寻址一个寄存器单元,作为目的地址或者源地址。
(4)直接数据寻址:用于对RAM的操作,在该寻址方式中,一个字为操作数在RAM中的地址,一个字为指令,其中包括目的或源寄存器地址。
(5)带偏移量的间接数据寻址:以Y或Z寄存器中的变址和指令中的偏移量地址之和来决定操作数在RAM中的地址,同时指令中还包含有目的或源寄存器的地址。
(6)间接数据寻址:指令中给出的寄存器内容即为操作数的地址。
(7)预先减1的间接数据寻址:和间接数据寻址类似,但是操作数的地址为指定寄存器的内容减1,同时再把这个减1之后的值赋给指定的寄存器。
(8)程序存储器常量寻址:这是访问程序存储器中常量的直接寻址方式,常量的地址由Z寄存器给出。
(9)程序存储器间接寻址:以Z寄存器的内容为地址继续执行程序的寻址地址就是程序存储器的间接寻址方式,在这种寻址方式的指令执行之后,Z寄存器的内容会代替程序指针的值。
(10)程序存储器相关寻址:以当前PC值和指令中所包含的相关地址K值之和位地址继续执行程序的寻址方式,当指令执行之后,PC值和K值相加,并且把两者的和送到PC中。