假设有一个结构
struct info{
struct stat information;
char * filename
}
然后我设置文件名指针的偏移量
size_t fOffset = offsetof(struct info, filename);
现在fOffset是什么?
在SPARC程序集中,我想获取文件名中的实际字符串。这是我到目前为止所写的内容。该参数是info struct
的指针set fOffset, %l0
ld [%l0], %l1
add %i0, %l1, %l2
ld [%l2], %l2
ldub [%l2], %o0
我想现在%o0会存储字符串,但很明显它没有。谁来帮帮我?
答案 0 :(得分:0)
您已正确完成了fOffset声明,因此它将包含结构中文件名的偏移量。我也认为你的程序集是正确的,虽然我不确定你的意思是“%o2会存储字符串”。在代码的末尾,%l2是指向字符串的指针,%o2将包含字符串的第一个字节。所以你的代码对我来说是正确的。
可能出现问题的一些想法:
另请注意,您可以简化序列:
add %i0, %l1, %l2
ld [%l2], %l2
只需一条指令:
ld [%i0+%l1], %l2