00h~1fH:寄存器组
20H~2fH:可位寻址区
30H~7FH:一般数据区,堆栈区
寄存器组就是R0-R7,一共是8*4是32字节
位寻址就是对每一位寻址,一个字节可以有8位,位地址可以从0-7F,一共是16个字节
30-7FH有80个字节单元,可以采用字节字节寻址的方法访问
堆栈区及堆栈指示区 堆栈是在片内RAM中数据先进后出的一个存储区域。堆栈指针SP是存放当前堆栈栈顶所对应的存储单元地址的一个8位寄存器。系统复位后SP为07H,而07H一般是寄存器区,所以,一般可以通过对SP赋值,可以使堆栈区设定在RAM中的某一区域,但堆栈的深度以不超过片内RAM区空间为限
return
k
是函数返回值,这是个子函数,处理完后返回给调用函数一个处理后的值。
k=(k<<1)|j;
这个是指k左移一位,在或上j,因为j=sda,看你的写法,据我猜测da是一个芯片的端口,这是串行输入的方式,你要读取芯片的输出值
假设某个时候k=0000
0001,假设j这个时候为1,那执行k=(k<<1)|j;后,k左移一位再或上j就为0000
0011了,一共执行8次,刚好从sda也就是j那里读出了一个字节的数据。
欢迎追问