逆向- 0) 进制 - 0x00 概念

本文深入解析了从机器语言到高级语言的演变过程,包括机器语言的直接性、汇编语言的符号化、C语言的抽象化及C++的增强特性。阐述了不同语言如何通过编译器转化为机器语言,揭示了程序语言层级之间的内在联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x0 机器语言
    机器语言是机器能直接识别的程序语言或指令代码,不同的计算机都有各自的机器语言,即指令系统/指令集.
    假设 1110 0000 使机器完成加法操作, 1110 0000 就是机器可以识别的指令即机器语言,计算机可以看懂的语言. 
    
0x1 汇编语言
    汇编语言也称为符号语言,用一些容易理解和记忆的字母、单词来代替一个特定的指令,便于人类理解.
    在不同的设备中,汇编语言对应着不同的机器语言指令集,因为不同的计算机有着各自的指令集. 
    计算机不识别汇编语言,通过编译器将汇编语言转成机器语言,使机器识别.
    
0x2    C语言
    面向过程的、抽象化的通用程序设计语言.
    不同于汇编、机器语言,C语言更贴近人类的思维方式.
    计算机不识别C语言,通过编译器将C语言转成机器语言,使机器识别.
    
0x3    C++
    C++是C语言的继承,C++比C完成更多的操作,是因为编译器可以做更多的事情.
    
    
总结:
    a. 低级语言以机器的思考方式来对待,高级语言以人类的思考方式来对待.
    b. 通过编译器将程序语言转为机器语言,编译器的增强简化了程序语言.
    c. 不用的程序语言由计算机执行,都需要一个过程将其转换为机器语言,其转换过程导致了语言的差异性以及语言特点.
    d. 研究高级语言站在编译器的角度来思考,编译器将高级语言转换为何种机器语言.再以机器的角度来看待机器语言,思考其执行过程.
       将机器执行高级语言这一过程串起来,看透高级语言执行时隐藏的细节.

### 16x16点阵字体字模代码从列行式逆向输出换为湿模式输出的方法 #### 背景介绍 湿模式是一种特殊的显示方式,它通常用于某些特定的液晶屏或其他类型的显示屏上。在这种模式下,数据传输可能需要额外的处理步骤或者不同的排列顺序来适配硬件特性。基于已知的信息,“湿模式”的概念并未被明确定义在标准文档中[^1],但从上下文中推测,这可能是指一种与常规显示方式有所差异的数据映射机制。 #### 数据结构分析 原始的16x16点阵字体采用了列行式逆向输出格式。这意味着: - 原始数据是以列为单位存储。 - 行序是从底部向上排列(即逆向)。 例如,给定的一组初始数据如下所示[^2]: ```c {0x02,0x00,0x01,0x00,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,0x00,0x40,0x00,0x80}, {0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00}, ``` 这些十六进制数值代表了字符图形化的像素分布信息。 #### 换策略 为了将上述数据化为适用于“湿模式”输出的形式,需执行以下几个关键操作: 1. **重新定义行序列**:恢复正常的自顶向下顺序而非当前倒置状态; 2. **调整位掩码应用规则**:依据目标设备的具体要求改变哪些比特参与点亮决策; 3. **考虑潜在校验或填充字段**:一些特殊显示技术可能会引入冗余信息作为同步信号的一部分; 下面提供了一个简单的伪代码框架用来演示这一过程的核心思路: ```cpp // 定义一个新的数组用于存放化后的结果 uint8_t wetModeData[32]; for(int col=0;col<16;col++){ // 遍历所有的列 uint8_t highByte = originalData[col*2]; // 获取本列对应的高字节 uint8_t lowByte = originalData[col*2 +1]; // 获取本列对应的低字节 for(int row=0;row<8;row++){ bool pixelStateHigh = (highByte >> (7-row)) & 1; // 提取高位字节中的某一位的状态 bool pixelStateLow = (lowByte >> (7-row)) & 1; // 提取低位字节中的某一位的状态 // 应用必要的变换逻辑至wetModeData... // 这里假设简单地交换高低字节的位置即可满足条件 if(row <8){ wetModeData[(15-col)*2 ] |= (pixelStateLow <<(7-(7-row))); wetModeData[(15-col)*2+1]|= (pixelStateHigh<<(7-(7-row))); }else{ continue;// 或者其他适当的操作取决于实际需求 } } } ``` 这段代码片段主要完成了以下几项工作: - 按照原来的列索引逐一访问源数据集内的各元素; - 解析出每个像素的实际开关状况并通过布尔变量暂存起来; - 根据新的布局方案更新目标容器里的相应位置值[^2]。 需要注意的是,这里仅给出了一种可能性较高的实现路径示意,具体细节还需参照所对接硬件的技术手册进一步确认和完善。 --- #### 结论总结 综上所述,通过合理设计算法流程可以有效地把现有的16×16点阵字体字模代码由传统的列行式逆向输出形式变为所谓的“湿模式”。然而值得注意的是,由于缺乏关于后者确切含义的第一手资料,以上讨论均建立在一定假设前提之上。如有更多背景补充则有助于得出更加精确可靠的结论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值