本文内容参考了一个国外的文章,但有些地方我改用中文自己描述了,因为国外的文章也有低级错误啥的,影响阅读和理解。不要迷信国外的东西,都是人写的,是人就会失误或者打混。。
1.立即数寻址
操作数是立即数,在数前面加井号表示:
2.直接寻址
给出的是操作数的地址,如以下7EH:
3.寄存器寻址
操作数是所指定的寄存器中的内容
4.寄存器间接寻址
在寄存器前面加小老鼠@
表示寄存器里面的内容是操作数的地址
5.变址寻址
使用DPTR/PC作为基址,A作为变址
操作数地址由 DPTR/PC的内容 加上 A的内容 所得到
MOVC A, @A + DPTR; A ---((A)+(DPTR))
变址寻址只能访问程序存储器(ROM),无法访问数据存储器(RAM)——我也不知道为什么,是参考文档里面这么说的,先不管它
6.相对寻址
相对寻址是以相对寻址指令的下一条指令的程序计数器PC的内容为基值,加上指令机器代码中的“相对地址”,形成新的PC值(要转移的指令地址)的寻址方式
JC 70H; 条件转移指令
如果C进位标志为0,PC指针指向不变;如果C进位标志位1,PC指针指向当前值加70H偏移
7.位寻址
51单片机提供的位处理功能,可以只定位到某一个位进行操作
只适用于片上RAM的位操作区和特殊功能寄存器的位
参考:https://titanwolf.org/Network/Articles/Article?AID=8d34394d-