我知道这是一个非常模糊的问题,对于程序员来说可能不是一个好问题,因为这确实是一个与硬件相关的事情,但我想一些适合这个站点的汇编/机器代码开始发挥作用。
所以我想知道的是;想象一下 6502 处理器。它有一些寄存器、一个指令集和对一定数量内存的访问。然后想象你有一些具有任意分辨率的 LCD 屏幕。如何确定此屏幕上显示的内容?它是如何确定哪个位置的哪个像素被赋予什么颜色的?例如,屏幕是否总是显示一个像素,其值在 6502 的累加器中,x 位置存储在寄存器 x 中,y 位置存储在 y 中?还是每台机器对它的解释不同?
有人编写了一个 JavaScript 6502 模拟器,该设备在某个内存位置显示一个像素,其值从 200 美元开始。例如:
LDA #$08
STA $200
将在位置 x:0, y:0 处显示粉红色像素。
LDA #$01
STA $205
将在位置 x:5, y:0 处显示一个白色像素。
但是,如果您查看 NES,它有一个专用的 PPU,可以在屏幕上的某个区域显示具有特定值的特定像素。
那么它是怎样工作的?每台机器(即Apple II、C64、NES)对它的解释是否不同,或者它的解释方式是否存在某种一致性?
事实上,如果为 Apple II 编译的程序以某种方式在 C64 上执行会发生什么?机器应该能看懂说明书吧?