- 博客(176)
- 收藏
- 关注
原创 汇编器 数据段 代码段生成代码
由LOAD指令读取lable地址问题求助deepsee看代码新增少猜是原来是代码段指令于是复制粘贴代码段意外发现数据段指令解析实现汇编编译文件运行虚拟机”0000000是自动生成的,应当以第一个指令为起始地址。汇编 input.txt。相关视频详情鄙人b站视频。
2025-06-13 23:52:09
284
原创 使用C语言写汇编器 实现JMP 跳转到指定lable 区域
偏移计算是目标地址减去当前地址-4,减4是 4是指令长度,但是减少4字节,从第一个指令跳转到另一个指令0到4应该是如此,读取起点是0字节,读完是3号字节,下一次读是4号字节,自然从0+4到开始读取的地方,原来如此,读完指令了,整好就到4号字节了,还得回到指令开始字节进行偏移。然后让deepsee写一个标签识别,对着思路看代码原来真是这样,直接记录当前行号,当读到标签时就可以了,因为地址只受指令增加而影响,其他不改变地址。躺在床上想,标签记录的是哪里,有了指令,但是地址怎么计算?原来符号表是这样安排的,
2025-06-02 16:02:57
279
原创 手写汇编器,在DEEPSEEK 部分代码下手动补充,SUB 改立即数 和寄存器俩指令存储
【代码】手写汇编器,在DEEPSEEK 部分代码下手动补充,SUB 改立即数 和寄存器俩指令存储。
2025-06-02 12:30:23
248
原创 备份 汇编器 使用枚举类型的 代码
本文摘要:这是一个简易汇编器的C语言实现,主要包含词法分析和语法分析功能。程序通过枚举类型定义汇编指令和寄存器,使用结构体存储指令信息。核心功能包括:初始化指令表、分词处理、指令类型转换和递归下降分析。分词模块能够处理空格、逗号、制表符等多种分隔符;翻译模块将单词转换为内部表示;指令解析模块采用函数指针实现不同指令的处理。程序还包含寄存器匹配、立即数处理等辅助功能,最终输出识别出的指令和操作数。代码中体现了通过批量生成重复代码提高开发效率的思路,以及处理汇编指令翻译的基本框架。
2025-06-01 10:21:32
234
原创 NFA 通过子集法化成DFA
舍弃了 3,4,5,6 原因是形成新的集合后,没有可以到达的路径,本质是5号终态融合进了CDE状态中,只不过这些状态是5和其他状态叠加的,既是走到5状态,又是走到其他状态,但是只要是停留在5状态,就一定可以符合规定。
2025-04-08 19:38:12
166
原创 PL0 语法分析器 状态机 最后\0 单独检测发现可合并代码
手动解决由于从 fscanf 切换到fgets 读取多个空格导致空格加入到分割的词语中而不是过滤掉的问题。这样只有statu=1时,读入空白字符,statu=1,会继续清空旧数据。为减少代码量,修改函数发现不能合并情况,好奇怎么回事,于是又回到通关版本进行合并。因为退出状态一定是 statu=1,但是不知道之前有没有空格。但是statu=1时,新的数字要从0开始填充,于是num复位。对check 函数进行了修改。代码一样,只是增加了注释,以及复位statu =1。实际完善后的完整代码。
2025-03-21 11:50:33
579
原创 编译原理 pl0 词法解析器 使用状态机与状态矩阵,和查找上一步得到分析
大体思路是先区分数字,标识符,然后标识符再区分保留字这样。随后根据PL0 字符改状态机。状态矩阵,一行一行写。
2025-03-20 21:54:24
596
原创 希冀 利用fscanf 吸收回车特性 替换fgets 的回车保留实现四位数识别 状态机
有回车干扰,且消除 ‘\n'代码在希冀里不识别。fsacnf 读取回车时会替换为 ’\0'fgets 读取回车时会‘\'n。原来起点是1,终点是ERROR。
2025-03-17 20:10:01
216
原创 希冀代码本地运行成功,但上传不通过解决办法,原因是fgets函数读取回车,在if 比较中不能读取到‘\n‘ 字符量,但是能参与运算,会出现 -35情况。
修改后把回车符号去掉,就是在一开始fgets 读取一行后,直接把倒数第二个字符改成 '\0'怀疑了代码问题,结果打印执行序列,发现翻译正常,直接把网上的代码直接打印,说明这部分代码退出失效。否则应该退出循环,不再继续执行写入字符指令。传了一个PL0虚拟机代码,结果不输出,这个是测试代码,发现p写入回车到文件。
2025-03-03 19:16:13
322
原创 流体代码分析
一点散度,梯度,在推导过程,建议和 https://zhuanlan.zhihu.com/p/339092102 对比看。流体模拟算法,可和梦开始的地方对比,发现矩阵加速计算了。N-S 纳维-斯托克斯方程推导。拉格朗日,欧拉视角,半拉格朗日。高斯赛德尔迭代法代码C语言。从雅可比到高斯赛德尔迭代法。
2024-10-11 11:53:46
155
原创 raylib实现生产者消费者模型增加缓冲提高帧率
后来学了生产者消费者模型,尝试追加缓冲池,剥离主函数查找需要更新的数据。中间工程主要是探索数据结构体怎么安排。原来增加了四叉树导致帧率下降。帧率上升稳定到60帧。
2024-09-27 19:39:26
569
原创 多线程 二维数组 需要装箱
然后打印列表地址,发现除了数组越界 /500 %499 而不是 /500 %500 /499 %499。做游戏测试写入数组发现数据错误,捯饬半天,想起来二维数组的指针列表故事,尝试重新复制列表。然后测试不同结构体嵌套,直接 int* map 发现都可以。
2024-09-15 09:27:17
362
原创 Ubuntu 22.04 make menuconfig 失败原因
然后make munuconfig 即可。make menuconfig 又报错。然后 cd 到指定源代码。需要在内核文件目录下编译。
2024-09-07 12:19:59
547
b站搬运 “这是怎么搓出来的?”从10行代码到400行代码的小工程,无中生有的各版本备份-EasyxDevC++开发绘图板
2023-12-23
EasyxDevC++开发地图编辑和游戏编辑代码工程文件附注释
2023-12-16
DevC++ 内置easyx之后,可以编译图形界面的,基于socket服务器demo
2023-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅