标签: addressing

从适配器调用Activity方法

是否可以调用Activityfrom中定义的方法ListAdapter

(我想打一个Buttonlist's行单击此按钮时,它应该执行的方法,即在相应的活动定义.我试图设置onClickListener在我ListAdapter,但我不知道该怎么称呼这种方法,什么是它的路径. ..)

当我使用时,Activity.this.method()我收到以下错误:

No enclosing instance of the type Activity is accessible in scope
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

android list adapter addressing

112
推荐指数
6
解决办法
14万
查看次数

x86_64中运行时代码替换的绝对寻址

我目前正在使用32位代码替换方案,其中代码移动到另一个位置,读取变量和类指针.由于x86_64不支持绝对寻址,因此无法在代码的新位置获取变量的正确地址.问题在于,由于rip相对寻址,指令指针地址与编译时不同.

那么有没有办法在x86_64中使用绝对寻址或以其他方式获取变量的地址而非指令指针相对?

类似的东西:leaq variable(%%rax), %%rbx也会有所帮助.我只想依赖指令指针.

64-bit assembly gcc x86-64 addressing

9
推荐指数
1
解决办法
2073
查看次数

MATLAB:使用逻辑索引提取子矩阵

我正在为MATLAB中这个非常简单的问题寻找一个优雅的解决方案.假设我有一个矩阵

>> M = magic(5)

M =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9 
Run Code Online (Sandbox Code Playgroud)

和形式的逻辑变量

I =

     0     0     0     0     0
     0     1     1     0     0
     0     1     1     0     0
     0     0     0     0     0
     0     0     0     0     0
Run Code Online (Sandbox Code Playgroud)

如果我尝试检索与值M相关联的元素,我会得到一个列向量1I

>> M(I)

ans =

     5
     6
     7
    13
Run Code Online (Sandbox Code Playgroud)

[5 7 ; 6 13]从这个逻辑索引中获取矩阵的最简单方法是什么?

如果我知道非零元素的形状 …

indexing matlab matrix addressing submatrix

8
推荐指数
1
解决办法
1万
查看次数

什么内存用于存储复位向量?

来自维基百科:8086处理器的复位向量位于地址FFFF0h存储的复位向量在哪里?

x86 addressing

8
推荐指数
1
解决办法
4375
查看次数

x86和内存寻址

我一直在阅读我收集的装配书中的记忆模型,我有一两个问题.假设地址总线有32行,数据总线有32行,CPU是32位(为简单起见).现在,如果CPU发出读取请求并发送32位地址,但只需要8位,那么所有32位都会返回?此外,内存中的地址仍然按字节正确解决?因此,获取一个字节会将0000 0001带回地址0000 0004?

memory x86 assembly addressing models

6
推荐指数
1
解决办法
1601
查看次数

如何在C/C++中从运行时卸载内存偏移量计算?

我正在实现一个简单的VM,目前我正在使用运行时算术来计算单个程序对象地址作为基指针的偏移量.

我今天就这个问题提出了几个问题,但我似乎无处可去.

我从第一个问题中学到了一些东西 - 对象和结构成员访问和地址偏移计算 - 我了解到现代处理器具有虚拟寻址功能,允许计算内存偏移,而无需任何额外的周期用于算术.

问题二 - 在C/C++编译期间是否解决了地址偏移? - 我了解到手动进行偏移时无法保证这种情况发生.

到目前为止,我应该清楚的是,我想要实现的是利用硬件的虚拟内存寻址功能并从运行时卸载它们.

我正在使用GCC,就像平台一样 - 我在Windows上开发x86,但由于它是一个VM,我希望它能够在GCC支持的所有平台上高效运行.

因此欢迎任何有关该主题的信息,我们将非常感谢.

提前致谢!

编辑:关于我的程序代码生成的一些概述 - 在设计阶段,程序被构建为树层次结构,然后递归地序列化为一个连续的内存块,以及索引对象并计算它们从程序内存块的开头的偏移量.

编辑2:这是VM的一些伪代码:

switch *instruction
   case 1: call_fn1(*(instruction+1)); instruction += (1+sizeof(parameter1)); break;
   case 2: call_fn2(*(instruction+1), *(instruction+1+sizeof(parameter1));
           instruction += (1+sizeof(parameter1)+sizeof(parameter2); break;
   case 3: instruction += *(instruction+1); break;  
Run Code Online (Sandbox Code Playgroud)

情况1是一个函数,它接受一个参数,该参数在指令之后立即找到,因此它作为指令的1个字节的偏移量传递.指令指针递增1 +第一个参数的大小以找到下一个指令.

情况2是一个函数,它接受两个参数,与之前相同,第一个参数作为1个字节的偏移量传递,第二个参数作为1个字节的偏移量加上第一个参数的大小.然后,指令指针增加指令的大小加上两个参数的大小.

情况3是goto语句,指令指针递增一个紧跟goto指令的偏移量.

编辑3:根据我的理解,操作系统将为每个进程提供自己专用的虚拟内存寻址空间.如果是这样,这是否意味着第一个地址总是......好零,所以从内存块的第一个字节开始的偏移实际上就是这个元素的地址?如果内存地址专用于每个进程,并且我知道程序存储器块的偏移量和每个程序对象与内存块的第一个字节的偏移量,那么在编译期间是否解析了对象地址?

问题是在编译C代码期间这些偏移是不可用的,它们在"编译"阶段和字节代码转换期间就已知.这是否意味着没有办法为"免费"进行对象内存地址计算?

例如,如何在Java中完成此操作,其中只将虚拟机编译为机器代码,这是否意味着由于运行时算术,对象地址的计算会降低性能?

c c++ addressing virtual-memory offset

6
推荐指数
1
解决办法
1387
查看次数

PIE禁用.代码签名PIE中不允许绝对寻址

我正在使用Xcode 4.5,其部署目标是iOS 5.1

当我编译应用程序时,我收到以下警告,这两个特定方法的大小明显增加.

ld:警告:PIE已禁用.在代码签名的PIE中不允许绝对寻址(可能是-mdynamic-no-pic),但在 - [mfile方法]中使用.要修复此警告,请不要使用-mdynamic-no-pic进行编译或使用-Wl,-no_pie进行链接

随后应用程序在启动时抛出异常,并出现以下错误:

dyld:vm_protect(0x00001000,0x0078C000,false,0x07)失败,结果= 2,用于/var/mobile/Applications/8E764612-87ED-4A99-9C59-E56C934DA997/appname.app/appname中的段__TEXT

dyld dyld_fatal_error:

0x2feb20c4:陷阱

0x2feb20c8:nop

当我评论出有问题的方法时,应用运行正常.

有什么建议?

addressing dyld pie-chart

6
推荐指数
1
解决办法
1870
查看次数

寻址模式如何在物理层面上工作?

我正在努力学习关于应该在每所大学的每个CS部门教授的处理器的基本知识.然而,我无法在网上找到它(谷歌没有帮助),我也无法在课堂资料中找到它.

您是否知道有关寻址模式如何在物理层面上工作的任何好资源?我对英特尔处理器特别感兴趣.

assembly memory-management intel computer-architecture addressing

5
推荐指数
1
解决办法
528
查看次数

5
推荐指数
2
解决办法
1122
查看次数

指针地址如何在c ++中工作

我对指向变量地址的指针很困惑 图片

它指向最后两个字节这是如何工作的

#include <iostream>
using namespace std;

int main()
{
    int i = 1;
    short *j  = (short*)&i;
    cout << *j << endl;
}
Run Code Online (Sandbox Code Playgroud)

.

c++ implementation pointers casting addressing

4
推荐指数
1
解决办法
369
查看次数