问题标签 [low-level]

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 投票
6 回答
5031 浏览

multithreading - LWARX 和 STWCX 的 x86 等效项

我正在寻找 LWARX 和 STWCX 的等价物(在 PowerPC 处理器上找到)或在 x86 平台上实现类似功能的方法。此外,哪里是了解此类事情的最佳地点(即,用于锁定/无等待编程的好文章/网站/论坛)。


编辑
我想我可能需要提供更多细节,因为假设我只是在寻找 CAS(比较和交换)操作。我想要做的是实现一个无锁引用计数系统,它带有可以被多个线程访问和更改的智能指针。我基本上需要一种在 x86 处理器上实现以下功能的方法。

我真的需要一些能够相当准确地模仿 LWARX 和 STWCX 的东西来实现这一点(我想不出一种方法来使用 CompareExchange、交换或添加我迄今为止为 x86 找到的函数)。

谢谢

0 投票
8 回答
7592 浏览

javascript - 为什么 JavaScript 有时被视为低级语言?

受到这个问题的启发。

我经常看到人们将 JavaScript 称为低级语言,尤其是在 GWT 和类似工具包的用户中。

我的问题是:为什么?如果您使用其中一种工具包,那么您将摆脱一些使 JavaScript 非常适合编程的特性:作为对象的函数、动态类型等。尤其是与流行的框架之一(如 jQuery 或 Prototype)结合使用时.

这就像调用 C++ 低级,因为标准库比 Java API 小。我不是 C++ 程序员,但我非常怀疑每个 C++ 程序员都会编写自己的 GUI 和网络库。

0 投票
9 回答
28391 浏览

operating-system - 什么是 INT 21 小时?

受这个问题的启发

如何强制 GDB 反汇编?

我想知道 INT 21h 作为一个概念。现在,我对内部结构有了一些非常生疏的知识,但没有那么多细节。我记得在 C64 中有常规中断和不可屏蔽中断,但我的知识到此为止。你能给我一些线索吗?它是与DOS相关的策略吗?

0 投票
2 回答
3139 浏览

bluetooth - 蓝牙 UUID 发现

有谁知道蓝牙设备如何在范围内获取可发现设备的设备 ID?

理想情况下,我正在寻找涉及蓝牙协议最小实现的最简单解决方案。

一个起点会很好,我只想创建一个设备,它可以存储附近蓝牙设备的所有设备 ID,并且功耗最小,最好只使用无线电频率而不是 SDP 和其他任何东西。

如果你不能帮助我,请你帮我找到低级蓝牙(逐步)通信的好读物。在线阅读水平如此之高,以至于我无法计算出实际发送的内容,时间。

0 投票
2 回答
793 浏览

memory - 如何在 WinMobile6 上启用 ARMv6 非对齐访问?

ARMv6 引入了一个很棒的特性——未对齐的内存访问,这使得代码中的一些事情变得更加简单和快速。但是微软只在winCE6中为其提供API。现在大多数 PDA 基于 WinMobile6(在 CE 5.x 上)。默认情况下禁用未对齐访问:(

我尝试在 CP15 寄存器中设置未对齐标志,但这不起作用 - 我在读取未对齐数据时崩溃了。

是否可以在 WinMobile6 上启用非对齐访问?


编辑:我找到了可以启用非对齐访问的工具,但我想从我的代码中打开/关闭它。它是nueAdvancedProcessor

0 投票
2 回答
375 浏览

windows - 关于 Ruby 和链接到库的非常低级的问题

我碰巧在沙盒 Ruby 环境中工作,并且一直在尝试向其中添加库,结果好坏参半。然而,它提出了一些关于 Ruby 如何工作的有趣问题。我希望了解 Ruby 如何链接库以及它如何决定在启动时加载什么。

当我做一个

我以前需要 .rb 文件,但行为与库不同。如果它看起来需要像 in 这样的目录,它是如何工作的

它如何知道要加载哪些文件以及名称“DL”是如何在解释器中注册的?

PS:我现在必须使用的唯一暴露的 Ruby 部分是“msvcrt-ruby18.dll”

0 投票
1 回答
1856 浏览

c++ - GNU LD 脚本来捕获 C++ 组 / dynsym 部分

我正在维护一个可以将 ELF32 可重定位文件转换为 RDOFF2 格式的工具。
为了使这个过程正常工作,我需要预先链接当前使用 ld 脚本的输入文件,如下所示:

目标是将输入文件减少为仅包含、.text.data.bss.strtab部分。 .symtab.shstrtab

虽然当前版本适用于 C 代码,但它在 C++ 中中断,因为g++/ld似乎生成了SHT_DYNSYM以我的一些 C++ 符号命名的类型部分。

我的问题:如何修改提供的链接描述文件来捕捉那些杂散符号?

这是我的示例来源:

objdump -h(仅有趣的部分)的输出:

同一个文件readelf -S

0 投票
5 回答
3699 浏览

c++ - 用于访问无符号整数的字节/字的 C++ 类

这个联合允许我访问无符号整数字节或逐字。但是,代码看起来相当难看:

有没有一种方法可以让我编写这样的代码:

更新:
这实际上是关于编写简短/漂亮的代码,如上例所示。联合解决方案本身确实有效,我只是不想每次访问 lowWord 或 lowByte 时都写 .words 或 .bytes。

0 投票
3 回答
419 浏览

c - 帮助理解 C 栈

我试图了解 C 中的低级内存管理器,尤其是 Stack。有人告诉我,当调用函数时,返回地址被压入堆栈。然后局部变量位于之后。

所以我写了一个小程序来调查这个。这是我的程序:

基本上,它会调查 x4 所在位置之前和之后的所有内存。这应该很好地涵盖了退货地址的位置。

但我似乎根本找不到任何类似于返回地址的字节。

这是我的结果:

我在这里想念什么?有人可以解释一下。

无论如何,我在 Ubuntu 9.10 上。

提前致谢。:-D

0 投票
4 回答
696 浏览

low-level - 内存映射设备如何防止 RAM 响应读取操作?

假设我们有一个内存映射设备占用某个地址空间。CPU 尝试从设备中读取某些内容,因此它会尝试读取该地址空间中的某个字。真的会发生什么?当内存控制器响应时,将导致总线争用,因为 RAM 和设备都试图响应相同的请求。