问题标签 [16-bit]
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.
assembly - 从 CD 加载扇区
我是操作系统设计的新手,到目前为止已经设计了一个“操作系统”(实际上只是一个引导扇区),并决定尝试制作一个独特的引导加载程序和“内核”(仍然非常简单)。我的问题很简单,但通过谷歌搜索和搜索这个网站设法避开了我(好吧,我确实找到了一个类似的问题,但答案是模糊/高级让我能够使用它)。
我看过 int 0x13 AH=02,但它使用了轨道,我认为 CD 没有用。我在某处看到我应该使用扩展读取扇区 (AH=0x42),但我不知道如何使用它,因为我看不到我可以指定读取哪个扇区以及该扇区应该在 RAM 中的哪个位置.
这是一个问题:如何从使用 El Torito 无仿真的 CD 加载扇区。如果您能以“最简单的形式”给出答案,并尝试提供一些代码,我将不胜感激,因为我对此并不陌生。提前致谢!
编辑:
我不知道你是否需要它,但我使用的是 NASM 语法,所以如果你能在 NASM 中给我答案,那就太好了。
c - 在 C 中定义 16 位整数
我需要在 C 中声明一个 16 位大小的整数。
我知道 short 和 int 大小取决于机器。
我尝试使用"stdint.h",
,但似乎他们只是这样做
所以我的问题是:
我是否遗漏了什么并且短类型保证 16 位长度?
如果没有,是否有替代方案可以保证?
encryption - 为 16 位系统编写 RC4
我正在为 DCPU-16 编写 RC4,但是在开始之前我有一些问题。
RC4算法:
由于我正在使用 16 位字,因此每个元素的S[]
范围都可以是 0-65535,而不是预期的 0-255。K 需要为 0-65535,处理这个问题的最佳方法是什么?
我看到的选项(及其问题)是:
- 仍然
Mod 255
在任何地方使用并用连接的两轮填充输出(运行时间更长,我想保持我的CPB尽可能低) - 调整 RC4 所以
K
将是一个 16 位的数字,同时仍然使用长度为 255 的数组S[]
(我想做正确的加密,所以我担心在修补 RC4 时会出错。)
我最好的选择是什么?我觉得我可能必须做#1,但我希望这里的人们能给我灌输信心去做#3。
c++ - 如何减少或消除通过从 16 位 PCM 更改样本的“音量”而产生的噪音
我目前正在做一个小项目,我正在加载采样率为 44100Hz 的 16 位波形文件。在正常播放中,音频看起来不错,但是一旦我开始播放诸如振幅大小之类的东西来改变音量,它就会开始发出一点点静态噪音。
我正在做的是在这个 16 位类型的情况下从缓冲区中获取一个样本短,将其转换为 -1 到 1 范围内的浮点数以开始进行混合和其他效果。在这我也改变了音量,当我只是将它乘以 1 给出相同的输出时,它很好,但是一旦我开始改变音量,我就会听到静态噪音。当超过 1.0 和低于 1.0 时会发生这种情况。规模越大或越小,情况就会变得更糟。
有人知道如何减少或消除噪音吗?
visual-c++ - 16 位 obj 文件 VC++
如何将我的 VC++ 项目编译为 16 位平面目标文件,以便在我正在处理的引导加载程序中使用?
据我了解,目标文件在技术上已经是“平面”的,链接器将其转换为目标可执行格式。我希望它能够获取该目标文件并通过链接器传递该目标文件和我的汇编代码(以 obj 格式)以创建平面引导加载程序。
[指南][1] 对文件的位置不是很具体,只是说您使用cl.exe
、link.exe
和ml.exe
(MASM)。
该指南使用 MASM,但我知道如何使用 NASM 输出目标文件。我的主要问题是 VC++ 的事情。
c - 使用 GCC 编译的 16 位 C 代码
如何使用 GCC 编译 16 位 C 代码?我正在尝试编写一个只写“Hello World!”的平面引导加载程序。到计算机并停止。
windows - 旧的 16 位应用程序在 WIN87EM.DLL 中导致 GPF,间歇性地
我有一个旧的 16 位应用程序,它是为 Windows 3.1 开发的。它执行一些计算,并且是更复杂系统的一部分。系统为程序设置输入,并收集输出结果。
不幸的是,16 位程序在此期间仍然存在,因此我们必须解决它在现代操作系统上造成的挫败感。
该系统在 Windows XP 上运行,并且在物理 Windows XP 机器上运行良好。我遇到问题的机器是在 Debian 盒子上的 VirtualBox(版本 4.1.12)上运行的 Windows XP 实例。物理计算机是 HP Proliant 服务器,采用 Quad Core Xeon 3.4 Ghz。我正在使用远程桌面从我的 Windows 7 机器访问计算机。
我得到的错误是,“程序在地址:0001:02C9 的 WIN87EM.DLL 中导致了一般保护错误”。烦人的事情是,有时它有效,有时则无效,这使得故障排除变得更加令人沮丧。
通过搜索互联网,我遇到了一些提到同样问题的网站。他们似乎都没有提供真正的解决方案,只是说 WIN87EM.DLL 提供浮点例程,并且某些打印机存在一些问题。
我已经卸载了虚拟机上的所有打印机,我还尝试安装 PDF 编写器并将其设置为默认打印机 - 以便机器上有一台打印机。我已禁用与远程桌面连接的资源共享。我已经更新了机器上的虚拟机来宾驱动程序。我还尝试在可执行文件的属性中设置与 Windows 95 的兼容性。
解决此问题的任何指示,或我可以尝试使其正常工作的方法?
assembly - 与 CMPSB 指令混淆
我一直在看这段代码,我对rep cmpsb行感到困惑。
我知道它重复 cmpsb cx 次,但这如何比较两个字符串?比如说比较“Hey\0”和“hey\0”,这个循环比较4个字符串。第一个字符不同,并且 EFlags 寄存器将被相应地设置。但是,cmpsb指令会重复,并且下一个字符将是相同的。我可能误解了cmpsb 的工作原理,但看起来这个循环没有正确比较两个字符串。这个循环真的有效吗?
java - Android:如何获取单通道 16 位 PNG 位图的像素
我有一个使用 python PIL 创建的 png 文件,其中包含一个高度图(正值)。
格式为:16 位的单通道(灰度),因此每像素 16 位。
我阅读了android上的文件BitmapFactory.decodeStream(<...data input stream...>);
getWidth()
我通过和正确获得了图像的大小getHeight()
。
但是,当我循环调用调用的像素时,getPixel(i,j)
我获得了负值,例如:-16776192 -16250872 -16250872 -16250872 -16250872 -16249848 ....
相反,我期望一个介于 0 和 65535 之间的正值。
我发现二进制中的值 -16250872 是 1111111111111111111111111111111111111111000010000000100000001000
这表明信息依赖于前 16 个最低有效位。
我尝试了getPixel(i,j)&0xffff
并获得了一个合理的值,但是我不确定字节序:我应该翻转 2 个提取的字节吗?
有没有办法以更优雅和便携的方式进行这种转换?
注意:该文件不是彩色 (RGBA) PNG,而是灰度 PNG 图像,每个像素都有一个 16 位值。
assembly - push in 16bit 的用法 - tasm
当我使用 push 指令时,我是推送 SUM 的引用还是值?调用 func 后 SUM 会发生变化吗?