问题标签 [addressing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
191650 浏览

android - 从适配器调用 Activity 方法

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

(我想在行中创建一个Buttonlist's当单击此按钮时,它应该执行在相应活动中定义的方法。我尝试onClickListener在我的设置中设置ListAdapter但我不知道如何调用此方法,它的路径是什么。 ..)

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

任何的想法 ?

0 投票
1 回答
950 浏览

cpu - 在计算机系统中存储指令需要多少个记忆字

如果计算机系统的内存模块大小为 2048 且每个字为 8 位,则它有四个字段:指定 32 个操作之一的操作码字段、用于选择 64 个寄存器之一的寄存器地址、启用以下之一的地址模式4 种模式和一个内存地址字段。

绘制指示其字段的指令。

0 投票
1 回答
316 浏览

gcc - 关于间接寻址,如 %segreg:disp(base,index,scale),foo

movl $0x14,0x4(%rax,%rdx,1) 测量 %rax+%rdx*1+0x4 = $0x14(20)</p>

但是: mov 0x0(,%rax,8),%rax 是基段寄存器?这个指令是什么意思?</p>

0 投票
1 回答
1776 浏览

assembly - 如何区分内存(堆)和堆栈地址

我的问题是:当我有这样的事情时:

// 也许这是我堆栈上的一个 int,因为我的代码中有一个本地“int”变量。当我这样做时,CPU如何知道数据在哪里:

我的意思是,它只是一个地址......如果我在 保留内存2^64 - x怎么办?

你分配的内存不能有这种地址吗?

或者如果堆栈增长到与您分配的内存具有相同的地址怎么办?

这会发生吗?

汇编器不知道 rax 中的数字是多少,因此它不能是 MOVstack 和 MOVheap,就像近 JMP 和远 JMP 一样。

0 投票
1 回答
2224 浏览

dyld - PIE 已禁用。代码签名的 PIE 中不允许使用绝对寻址

我正在使用具有 iOS 5.1 部署目标的 Xcode 4.5

当我针对两个显着增加的特定方法编译我的应用程序时,我收到以下警告。

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: 无

当我注释掉有问题的方法时,应用程序运行良好。

有什么建议么?

0 投票
1 回答
62 浏览

computer-architecture - 负载需要对齐网络吗?

我在阅读有关计算机体系结构中的内存寻址的一些内容时遇到了这一行-“无论如何,负载都需要对齐网络” ,但不明白它的含义。有谁知道这可能意味着什么?

0 投票
2 回答
4686 浏览

block - 如何从 NTFS 文件系统上的 MFT 获取文件的 LBA(逻辑块寻址)?

我访问了 $MFT 文件并提取了文件属性。

给定来自 MFT 的文件属性,如何从 NTFS 文件系统上的 MFT 记录中获取文件的 LBA?

要计算 LBA,我知道文件的簇数。

可以用簇数来计算吗?

0 投票
1 回答
1473 浏览

arrays - 如何避免在 MIPS 的循环中硬编码数组索引/索引?

例如,

我想在循环中访问数组的每个元素,对该元素执行算术运算,然后将其保存到下一个。每次迭代时,索引应增加 +1。

举一个简单的例子,我试图对数组中的每个前一个元素求平方。初始硬编码值为 INDEX[0]=0,ARRAY[0]=2。我已经标记了我感到困惑的地方。我不知道如何为每个循环制作这个变量。

(1) 如何保存元素 ARRAY[INDEX] 以注册 $t1 而无需硬编码偏移量?

(2) 如何将更改后的寄存器 $t1 保存到数组中的特定元素:ARRAY[INDEX] = $t1

由于间接寻址会在每个循环中发生变化,因此我想避免使用 4($a1)、8($a1) 等。

谢谢你。

0 投票
1 回答
13193 浏览

assembly - MIPS 标签寻址?

这都是相关的,我试图尽可能合乎逻辑地将它们拼凑在一起,所以请多多包涵。

我真的很困惑如何正确处理标签。比如下面一段代码中,“bne”翻译成“00010101001001010000000000000001”,loopend的标签地址为0x00000020(32)

当我将loopend向上移动时,“bne”变为“00010101001001011111111111111011”并且loopend的地址变为0x00000008(8)

所以据我了解,在代码的第一位,loopend是在八条指令之后,所以它的地址是4*8=32=0x00000020。在第二位代码中,loopend是在两条指令之后,所以它的地址是4*2,即0x00000008。

但是,我不明白的是标​​签地址。如果我错了,请纠正我:标签地址取决于标签相对于调用它的指令的位置。所以在代码的第一位,loopendbne你不翻转符号晚两行,它的地址是“0000000000000001”。在第二个loopend之前,bne所以你翻转标志,它的地址变成“1111111111111011”。

我知道您将地址向左移了 2 位,但我仍然很困惑。如果最后没有两个 0,你是否只向左移动,比如第二个loopend

我最紧迫的问题是:00000000000000001,地址loopend,甚至在第一个bne机器语言翻译中来自哪里?我以为标签的地址loopend是 0000000000100000。

0 投票
4 回答
105 浏览

c++ - C++ 数组访问

假设我有:

在 32 位机器上。如果我这样做怎么办:

显然,在访问数组(越界)时这是一个很大的禁忌,但实际发生了什么?只是好奇

我是否在访问数组“之前”的 32 位字?

或者只是解决一个非常遥远的单词(从“测试”内存位置开始)?

0xFFFFFFFF 是十进制 -1 的二进制补码表示