问题标签 [8-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.

0 投票
2 回答
11721 浏览

colors - 将 8 位颜色转换为 RGB 值

我正在使用“反射阴影贴图”在我的游戏引擎中实现全局照明。RSM 具有 ia 颜色纹理。为了节省内存。我将 24 位值打包成 8 位值。行。我知道怎么打包。但是我该如何解压呢?我想用 8 位调色板创建一个 1D 纹理,有 255 种不同的颜色。我的 8 位颜色将是该纹理中像素的索引。我不确定如何生成这种纹理。是否有任何数学方法可以将 8 位值转换为 rgb?

@edit 颜色采用这种格式:
RRR GGG BB

@edit2:我正在像这样包装我的颜色:

@edit3:
好吧,我想我找到了一种方法。告诉我是不是错了。

@edit4 错了……

0 投票
2 回答
303 浏览

c - 可移植的 32 位整数编码以与 8 位设备通信

我需要与没有 nthol 功能的 8 位设备通信。也不可能使用协议缓冲区库。

无论运行什么架构(不同的字节序,不同的位数),以下 C 函数都会产生相同的输出字符串:

以下函数将正确读取此类编码字符串并在所有架构上产生相同的结果:

是否有可能在 8 位处理器上 32 位整数由于某种原因无法正确处理?

0 投票
1 回答
423 浏览

java - RBG 24bit 到 RGB 8bit 位移

如何使用java中的位移将3个数字存储在一个字节中,即前3位用于R,接下来的3位用于G,最后2位用于B。我想我知道如何从字节,但是编码和解码的例子会很棒。

谢谢杰克

编辑:

R 和 G 的值范围是 0-7 和 B 的 0-3。

0 投票
2 回答
2869 浏览

performance - 快速 8x8 位乘法程序集 pic18

我试图将两个 8 位数字相乘并将它们存储在 16 位位置以获得大于 255 的结果。完成此操作的最快方法是通过移位,我试图通过 rrcf 函数实现它并使用 bcf 清除不需要的进位。

这就是我想出的。我试图评论所有代码,以便您能够看到我的思考过程。总的来说,我对 PIC18 和 ASM 编程都很陌生。在(希望)提供帮助时请记住这一点。我需要放在一个比现在更好的位置,当我运行 MPLAB SIM 时,我得到的只是计数器递减......?

我认为这是由于乘法器的最后一位被反复测试,这将是零,因此每次都跳过我的加法指令。你能帮我创建一个循环以从 0-7 位逐步移动 BTFSC 吗?我认为这是问题所在,但我无法弄清楚代码。我基本上可以写 main 8 次,但我试图节省代码空间

0 投票
0 回答
153 浏览

memory - 将十进制值分隔为最低和最高有效字节

我正在处理一些 65802 代码(不要问:P),我需要将一个 16 位值分成两个 8 位字节以将其存储在内存中。我该怎么办?

编辑:

另外,我将如何获取两个相似的字节并将它们组合成一个 16 位值?

编辑:

澄清一下,我使用的编程语言(MS-BASIC 的一个版本)无法使用 Internet 上提供的许多解决方案。我不能取模,也不能左移或右移。我发现我可以通过将高字节乘以 256 并将其添加到低字节来将两个字节放在一起,但是我将如何反转这个过程呢?

0 投票
1 回答
173 浏览

optimization - 是否有用于生成自修改代码的简单处理器上的高级语言的现代编译器?

在缓存和分支预测之前的日子里,如果不鼓励为某些类型的优化制作自修改代码,那是相对普遍的。在 8 位到早期 32 位(例如 Amiga)的时代,它可能最常见于用汇编程序编写的游戏和演示中。

我不确定当时是否有任何编译器发出自修改汇编程序或机器代码。

我想知道是否有任何当前/现代编译器可以做到。显然,在具有高速缓存的强大处理器上,这将是无用的或太难了。

但是对于嵌入式系统中使用的非常多的简单处理器呢?对于任何简单/8位/嵌入式处理器,任何现代编译器都认为自我修改代码是一种可行的优化策略吗?


有一个类似标题的问题,“周围有任何自我改进的编译器吗? ”,但请注意,它不是同一个主题:

请注意,我说的是一个自我改进的编译器——而不是一个改进它编译的代码的编译器。

0 投票
1 回答
1641 浏览

opengl - OpenGL - Animate/cycle/rotate palette

I was trying to create a OpenGL version of an old plasma 8bit effect animation in DOS but I am stuck. Since almost every OpenGL program has included something to generate a palette for Win32 I thought it would not be that hard to apply palette animation on my old program.

My purpose is to generate a texture with color indices that does not change and a palette that is rotating. After digging into the web this weekend I am still not able to fix it. I cannot even display a texture with one color index so in that stage something is wrong (if it would work I can create the palette cycling mechanism).

I can force into palette mode by using PFD_TYPE_COLORINDEX and draw some random pixels using glIndexi. I read that glDrawPixels and glReadPixels are slow and the latter is not that accurate when getting pixels back from the framebuffer (due to inaccurate positioning as a result from rounding errors or something).

I tried the GL_COLOR_INDEX keyword. I also tried: glPixelTransferi(GL_MAP_COLOR, true); glPixelMapfv( GL_PIXEL_MAP_I_TO_R, ...); glTexImage2D... Some of the code I tried so far (latest changes):

init part:

update/draw:

Or should I use glColorTableEXT in combination with GL_COLOR_INDEX8_EXT? I read somewhere that textured palettes are not supported? I found a link which mentions Paletted Texture Extension: http://www.cs.rit.edu/~ncs/Courses/570/UserGuide/OpenGLonWin-20.html

This is what I want (but then in OpenGL):

http://www.codeforge.com/read/174459/PalAnimDemo.h__html

I am not looking for ES/Shader implementations (I am just a beginner ;)) and DirectDraw might be easier I think but I want to try OpenGL.

0 投票
0 回答
1470 浏览

logic - 8位加法器设计?链接两个 4 位加法器?

我创建了一个 4 位加法器设计,但我需要一个 8 位。我可以创建两个 4bit 并通过 AND 门将输出链接在一起吗?

我的 4 位加法器: https ://www.dropbox.com/s/ao60s6dgtrnhal3/4bit%20adder.PNG

0 投票
4 回答
3027 浏览

assembly - 8 位和 16 位处理器如何通过两个寄存器访问更多 RAM?

一直让我感到困惑的是 8 位计算机如何访问超过 256 字节的 RAM。我知道它必须使用两个寄存器,但是任何人都可以向我展示一个在汇编代码中会是什么样子的例子吗?

像:

0 投票
2 回答
15797 浏览

tiff - 转换 16 位图像的选项

当我打开 tiff 格式的 16 位图像时,它打开为黑色图像。16 位 tiff 图像仅在程序 ImageJ 中打开;但是,它不会在预览中打开。我想知道我现在的选择是什么,以一种不降低分辨率的更简单的方式查看格式,而不是打开 ImageJ 来查看它。我应该将其转换为 8 位格式,但是当格式从 16 位减少到 8 位时,我不会丢失数据吗?另外,我正在考虑将 tiff 图像转换为 jpeg,但这会导致分辨率降低吗?