display - 字母数字显示 - 在内存中的位置
问题描述
我有一个 32 行 x 80 字符/行的字母数字显示器。字符第 8 行第 40 列在内存中的位置和物理地址是什么?
解决方案
我将使用一个(x,y)
符号,其中x
在1
and之间80
,并且在andy
之间:1
32
努力前进。假设左上角的单元格(1,1)
位于物理内存地址0x0000
(非常不可能!),那么左上角的单元格位于 address 0x0000
。它旁边的那个(2,1)
是 at 0x0001
,依此类推,直到最后一个单元格(80,1)
是 at 0x004F
。
下一行从(1,2)
, 在 address开始0x0050
。这意味着每一行0x0050
的开始都比前一行的开始更远。我会快进到第8行...
第八行从(1,8)
地址开始7 * 0x0050
。为什么是7?第 1 行是 0,所以第 8 行是 7。
第 40 列是(40,8)
,因此您需要0x0027
在地址中添加 39 ( )。为什么是39?第 1 列是 0,所以第 40 列是 39。
所以,一般来说,物理地址是<start> + (y - 1) * 0x0050 + (x - 1)
.
因为(40,8)
, 那将是0x0000+(8-1)*0x0050+(40-1)
, 或0x0257
推荐阅读
- r - 如何使用 lm() 检索 3D 拟合方程?
- python - 如何为 Seaborn 混淆矩阵添加正确的标签
- c++ - 如何“删除”函数返回的 char * 变量?
- webpack - Webpack:什么是没有加载器的模块?如何优化它们?
- ios - 当使用 view.window?.rootViewController 根据 if 语句更改视图时,嵌入式控制器未激活
- numpy - Pytorch 内存模型:“torch.from_numpy()”如何工作?
- postgresql - Postgres 复制数据目录后某些表无法正常工作
- javascript - 获取 api 和代理
- django - django中使用三个js的3d模型路径
- javascript - 如何使用 JavaScript 替换表单操作的基本 url?