0
在我的课堂笔记,我已经得到了这个信息:翻译C到装配
C:
thisthread.id = 4711;
汇编:
.text
.align 2
movia r8,thisthread
movi r9,4711
stw r9,4(r8) # id after sp that takes 4 bytes
但不属坐4位而不是?我认为偏移量是以位而不是以字节为单位指定的。我错了吗?
在我的课堂笔记,我已经得到了这个信息:翻译C到装配
C:
thisthread.id = 4711;
汇编:
.text
.align 2
movia r8,thisthread
movi r9,4711
stw r9,4(r8) # id after sp that takes 4 bytes
但不属坐4位而不是?我认为偏移量是以位而不是以字节为单位指定的。我错了吗?
你错了。偏移量的确是以字节为单位的。
那么,操纵位的唯一方法就是使用位操作符。通常情况下,内存不能按位进行处理。 –
如果SP是堆栈指针,那么它的大小是4位,将可用堆栈限制为16个字节,这是没有用的(因为这是局部变量的空间)。 – dbrank0