问题标签 [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.
multithreading - LWARX 和 STWCX 的 x86 等效项
我正在寻找 LWARX 和 STWCX 的等价物(在 PowerPC 处理器上找到)或在 x86 平台上实现类似功能的方法。此外,哪里是了解此类事情的最佳地点(即,用于锁定/无等待编程的好文章/网站/论坛)。
编辑
我想我可能需要提供更多细节,因为假设我只是在寻找 CAS(比较和交换)操作。我想要做的是实现一个无锁引用计数系统,它带有可以被多个线程访问和更改的智能指针。我基本上需要一种在 x86 处理器上实现以下功能的方法。
我真的需要一些能够相当准确地模仿 LWARX 和 STWCX 的东西来实现这一点(我想不出一种方法来使用 CompareExchange、交换或添加我迄今为止为 x86 找到的函数)。
谢谢
javascript - 为什么 JavaScript 有时被视为低级语言?
受到这个问题的启发。
我经常看到人们将 JavaScript 称为低级语言,尤其是在 GWT 和类似工具包的用户中。
我的问题是:为什么?如果您使用其中一种工具包,那么您将摆脱一些使 JavaScript 非常适合编程的特性:作为对象的函数、动态类型等。尤其是与流行的框架之一(如 jQuery 或 Prototype)结合使用时.
这就像调用 C++ 低级,因为标准库比 Java API 小。我不是 C++ 程序员,但我非常怀疑每个 C++ 程序员都会编写自己的 GUI 和网络库。
operating-system - 什么是 INT 21 小时?
受这个问题的启发
我想知道 INT 21h 作为一个概念。现在,我对内部结构有了一些非常生疏的知识,但没有那么多细节。我记得在 C64 中有常规中断和不可屏蔽中断,但我的知识到此为止。你能给我一些线索吗?它是与DOS相关的策略吗?
bluetooth - 蓝牙 UUID 发现
有谁知道蓝牙设备如何在范围内获取可发现设备的设备 ID?
理想情况下,我正在寻找涉及蓝牙协议最小实现的最简单解决方案。
一个起点会很好,我只想创建一个设备,它可以存储附近蓝牙设备的所有设备 ID,并且功耗最小,最好只使用无线电频率而不是 SDP 和其他任何东西。
如果你不能帮助我,请你帮我找到低级蓝牙(逐步)通信的好读物。在线阅读水平如此之高,以至于我无法计算出实际发送的内容,时间。
memory - 如何在 WinMobile6 上启用 ARMv6 非对齐访问?
ARMv6 引入了一个很棒的特性——未对齐的内存访问,这使得代码中的一些事情变得更加简单和快速。但是微软只在winCE6中为其提供API。现在大多数 PDA 基于 WinMobile6(在 CE 5.x 上)。默认情况下禁用未对齐访问:(
我尝试在 CP15 寄存器中设置未对齐标志,但这不起作用 - 我在读取未对齐数据时崩溃了。
是否可以在 WinMobile6 上启用非对齐访问?
编辑:我找到了可以启用非对齐访问的工具,但我想从我的代码中打开/关闭它。它是nueAdvancedProcessor。
windows - 关于 Ruby 和链接到库的非常低级的问题
我碰巧在沙盒 Ruby 环境中工作,并且一直在尝试向其中添加库,结果好坏参半。然而,它提出了一些关于 Ruby 如何工作的有趣问题。我希望了解 Ruby 如何链接库以及它如何决定在启动时加载什么。
当我做一个
我以前需要 .rb 文件,但行为与库不同。如果它看起来需要像 in 这样的目录,它是如何工作的
它如何知道要加载哪些文件以及名称“DL”是如何在解释器中注册的?
PS:我现在必须使用的唯一暴露的 Ruby 部分是“msvcrt-ruby18.dll”
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
c++ - 用于访问无符号整数的字节/字的 C++ 类
这个联合允许我访问无符号整数字节或逐字。但是,代码看起来相当难看:
有没有一种方法可以让我编写这样的代码:
更新:
这实际上是关于编写简短/漂亮的代码,如上例所示。联合解决方案本身确实有效,我只是不想每次访问 lowWord 或 lowByte 时都写 .words 或 .bytes。
c - 帮助理解 C 栈
我试图了解 C 中的低级内存管理器,尤其是 Stack。有人告诉我,当调用函数时,返回地址被压入堆栈。然后局部变量位于之后。
所以我写了一个小程序来调查这个。这是我的程序:
基本上,它会调查 x4 所在位置之前和之后的所有内存。这应该很好地涵盖了退货地址的位置。
但我似乎根本找不到任何类似于返回地址的字节。
这是我的结果:
我在这里想念什么?有人可以解释一下。
无论如何,我在 Ubuntu 9.10 上。
提前致谢。:-D
low-level - 内存映射设备如何防止 RAM 响应读取操作?
假设我们有一个内存映射设备占用某个地址空间。CPU 尝试从设备中读取某些内容,因此它会尝试读取该地址空间中的某个字。真的会发生什么?当内存控制器响应时,将导致总线争用,因为 RAM 和设备都试图响应相同的请求。