问题标签 [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 投票
2 回答
564 浏览

python - PyCUDA 内存寻址:内存偏移?

我在设备上有大量生成的数据(A[i,j,k]),但我只需要 A[i,:,:] 的一个“切片”,在常规 CUDA 中这很容易用一些指针算术完成。

在pycuda中可以做同样的事情吗?IE

显然这是完全错误的,因为没有尺寸信息(除非从 dest 形状推断),但希望你明白吗?

0 投票
3 回答
1441 浏览

cpu-architecture - 用于寻址模式的术语。[英特尔 8085]

在我正在研究的处理器的文档中说:

可用的操作数寻址模式有隐含、寄存器、立即、直接和寄存器间接(使用 BC、DE 和 HL 寄存器对作为指向内存的 16 位指针)。

有人可以用外行术语解释这些寻址模式之间的区别,或者发布一个我可以学习的链接吗?

非常感谢。

0 投票
0 回答
615 浏览

memory-management - RIP-relative addressing on x86

I'm not really experienced with x86 assembler and try to debug a problem related to a bug in mach_inject.

The original code looks like this (function mach_inject in mach_inject.c):

and then somewhat later (function INJECT_ENTRY of mach_inject_bundle_stub.c):

It seems, for me, when I compile this for x86, it fails. If I change the code so that I have imageOffset = 0; on just every architecture (i.e. also for x86), it all works fine.

So, some questions:

  • RIP-relative addressing is also available for 32bit/x86 mode?
  • What was (probably) the initial intention for this code if we anyway have also RIP-relative addressing for 32bit mode?
  • Is RIP-relative addressing a compiler setting? Or in what way can I control if my code uses RIP-relative addressing or not? (Or more related to this bug: Is imageOffset = 0; always correct? Or when is it not?)
0 投票
1 回答
406 浏览

assembly - 汇编语言间接寻址

我正在解决一些间接寻址问题,但我不确定如何正确计算字节数。我们得到这个代码:

该问题询问在执行这些指令后将向标准输出设备写入多少字节,答案是 4。

对于这个问题,我这样设置:

我们将 5 移动到 dx 中,写入两个字节 00 05。然后我们设置 dos 代码将其写出,所以我们的输出写出这两个字节组成 4?如果我的逻辑有误,请纠正我。

0 投票
1 回答
665 浏览

printing - Flex 4 通过在打印区域中添加动态项目进行打印(又名。如何动态地将动态命名的元素添加到另一个元素)

我有一些动态添加到舞台的项目。

这些称为 flexShapeXXX,其中 xxx 通常是唯一 ID。

现在我创建了一个组件来存储它们以供打印,我可以将其视为虚拟页面,以便我可以布置要打印的东西。

这看起来像这样:

现在到目前为止一切顺利,然后我将我的小印刷品是 vbox 组件:

这很好用,它增加了一个很好的工作空间。

现在我希望能够做这样的事情:

那部分失败了。

所以我的问题是如何通过动态名称从舞台添加元素。这样我就可以打印它们。

请并感谢您提供的任何帮助。

克雷格

0 投票
2 回答
2258 浏览

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

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

那么有没有办法在 x86_64 中使用绝对寻址或另一种方法来获取变量的地址而不是指令指针相对?

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

0 投票
2 回答
1119 浏览

macos - 解决黑客问题:剥削的艺术

我最近买了这本书,书名是:黑客:剥削的艺术(第 2 版),它最近一直困扰着我。无论如何,使用其中一个示例 firstprog.c :

它让你用 gcc 编译它(显然 :3 ),然后使用 objdump (为此,我只使用了 gobjdump,找不到 OS X 的 objdump )将输出通过 main.: 管道输出到 grep.: 作为正则表达式并显示前 20线。然后用 gdb 调试并在 main 处中断。这是我的主要问题:所有内存地址都不同!比如书中的eip是:0x804837a。但是对于我的电脑,它是:0x100000ee8我认为这只是因为我使用的是 64 位操作系统,但是当我使用 32 位版本的 Darwin 启动时,我得到了相同的结果。如果有人知道这个问题是什么,我将不胜感激。如果这真的很愚蠢,让我休息一下,我刚满 14 岁 :)

0 投票
2 回答
8605 浏览

assembly - 8086 程序集:将字符串的一部分移动到变量中

假设我有一串 ascii 字符,例如“652+346*779=”,并且我想将一些字符从这个变量移动到另一个变量......

缓冲区是字符串(在本例中为“652+346*779=”),lengthofnum 是相关数字的长度(在本例中,346 的长度为 3) A_ascii 是我试图将字符串传输到的变量“ 346"。

我有一个根本不起作用的循环,我无法弄清楚我应该使用什么寻址模式。emu8086 讨厌我迄今为止尝试过的一切,并给我关于 MOV 指令的语法错误

我收到以下错误代码:

0 投票
1 回答
49 浏览

flex4 - 在运行时创建的 Flex 4 目标组件

我有一些在运行时创建的组件,我想在某些父事件期间在这些组件中执行功能。

问题是这只适用于我在运行前创建的组件。

EG 我可以去 this[SomeComponent].BorderShow(); 如果 SomeComponent 已经在代码中。

如果我在舞台上动态添加新组件,我不能去

this[SomeNewComponent].BorderShow()

有人可以建议我如何将组件名称作为字符串传递给函数,然后让该函数执行组件中的函数或方法。

请,谢谢你 C

0 投票
1 回答
617 浏览

c - Simpletron 机器和间接寻址

我最近完成了 Deitel 和 Deitel 教科书中的 Simpletron 作业。

Simpletron 机器语言只有一种寻址模式,即直接寻址。
(也就是说,您必须在指令的操作数部分指定要访问的地址。)

所以我认为没有办法在运行时计算地址并访问它。

所以做这样的事情:

需要一些自我修改代码或扩展循环,对吗?
所以我的问题是:

教科书将 Simpletron 描述为与早期计算机非常相似。

后续架构中是否引入了间接寻址模式(如寄存器寻址)以简化编程?