谁帮我解释一下这个函数(C语言)
LOCAL void _flush_cache_( VP laddr )
{
register UWentasm("r1");
register UWtagasm("r2");
tag = (UW)laddr & 0x1ffff000; //这个是做什么的
for ( ent = 0x000; ent < 0x1000; ent += 0x010 ) {
*(_UW*)(0xf0000008 | ent) = (tag | ent) & 0xfffffc00; //主要是这个循环,它做了什么
}
}
问题点数:50、回复次数:3Top
1 楼suyun9329(WYSIWYG)回复于 2006-03-02 20:35:56 得分 30
这个FUNCTION是很底层的了
主要是对CACHE DATA 的发送
tag = (UW)laddr & 0x1ffff000;
位与运算,可能是取的CACHE的上对应的DATA
Top
2 楼xiao88yan(水水)回复于 2006-03-03 09:15:03 得分 0
抛开技术或原理的角度,单从语言上看,下面这个循环做了什么?我看象是一个双重指针,然后进行赋值
for ( ent = 0x000; ent < 0x1000; ent += 0x010 ) {
*(unsigned int*)(0xf0000008 | ent) = (tag | ent) & 0xfffffc00; //主要是这个循环,它做了什么
}Top
3 楼shmily1280(锄禾)回复于 2006-03-06 16:28:41 得分 20
晕了...Top




