查看原文
其他

雷军1994年写的诗一样的代码,我把它运行起来了!

脚本之家 2021-06-29

The following article is from 程序员入门进阶 Author 浪迹在

 关注“脚本之家”,与百万开发者在一起

粉丝福利:小编会从今天留言的小伙伴中抽3名赠送网盘超级会员(可兑现),另外再抽5名赠送8.88元现金红包,以后每恰饭一次我们也都会给大家掏出一些发福利,感谢大家一直以来的支持!

作者 | 浪迹在

来源 | 程序员入门进阶(ID:code_gg_home)

这是一段古董代码了,因为在1994年,当时我的一个老师也是做汇编项目,他跟我聊过的故事是,当时是他跟一个前辈一起去现场给客户看故障,调试,用的ARM汇编,当时前辈是赚了2w,他赚到了6k的样子。

在94年能够精通汇编,虽然不被大众认可,认为这个电脑还是比较飘幻,因为那时候还没有进入寻常百姓家,我接触电脑在初中,那时候也02-03年了,而且那时候要记指令,也没多少画面,印象不深。记得学校有个校园网剧音频版,就是《让青春继续》,讲述的牵扯到了四小龙以及当时的包分配最终走向自营的过程,刚好也是这个时间段,主人公百脑也是系统子弟,叛逆的去学了编程,最终走出自己的传奇人生。他们都是出生在这个时代,这个时代造就的人才,科技人才,能够接触到信息技术,那么很容易就能够出彩。像马化腾,张小龙,还有雷军,李彦宏,都是做过技术开发的,有了程序员思维,同时又在商业中寻求生存,试错的机会以及风口卷动,最终扶摇而出。之前看到有朋友发雷军写的代码,因为现在都不直接用汇编去写代码,但是如果用汇编写过代码的话,其实对于硬件接触的多会对编码有更深的理解,具体就是能够将实现具体拆下去成颗粒状的指令,这个跟我们一般意义的C语言还是有区别的。当写汇编的时候,会晓得一点,就是能够感知到指令周期,以及时钟运转的流程,指令是计算机中表征最小颗粒,再往下的微指令一般都不深究,到这里就足够将计算机系统搭建完成。那么回过头来,我们看下雷军当时写的代码,因为是汇编语言,看了下大致就是MASM,于是我上网找出MASM32plus工具,但是编译的结果是报错,爆出很多不识别的指令。这个也没细究,我之前用MASM的时候,也已经是有API的,就是汇编的API,已经不是纯粹汇编写法了,大致是这种写法了。那么我再继续查找,这段代码跟我之前写的C51的写法差不多,我找了相关的一个编译工具,emu8086,这个工具是识别这段汇编的,但是有个报错是,重定义。这里主要就是代码中多处的@@2这类标签,在这个emu8086里面会认为这个是多重定义,但是按理说不应该,所以工具是没选对的。也就是emu8086会把标签认定成是全局的,但是实际上这个是函数内部的标签。
那么我继续去找ASM的编译工具,找的关键字都是8086ASM,最终试了多个都是失败了,也是比较挫折的。今天又想着不能放弃,再找找看看有没有线索,于是便继续检索,找到了一本书,这本书给出了答案。
这本书的作者是雷军,对就是写这个的,求伯君和雷军,写出的金山软件。书名是《深入DOS编程》,因为这段代码就是DOS下的清理软件,而且时间点也是匹配的,所以这个书里面应该有答案的。
我要找的是什么?就是编写代码,以及书里面怎么编译的。简单验证了下汇编写法一致,那么就剩下找到书里的编译工具,幸运的是,找到了,具体是:
TASM 3.0。引用下百度的介绍:
下一步便是找到工具,从csdn找到的开发包缺少tlink工具,于是又百度找了下,最终找全了。在win7 ,win10上面,运行不了这个工具了,因为缺少DOS环境了,那么我们就应该找到 XP 系统,这个里面是包含着DOS系统的,我们去看windows的PE结构,就知道里面前面的一部分是表征的DOS结构。
那么我们装一个虚拟机,我这里用的Vbox,我电脑装VM12装xp系统就会卡死,于是我用了Vbox安装了雨林木风的GHOST,最终把工具放到里面,运行成功。以下是运行的效果,编译过程。
具体是:tasm 汇编成obj,然后使用tlink进行链接,最终生成COM可执行程序。
最后分享个学习方法,在使用一个工具的时候,可以去看看它的官方文档,以及工具中的文件夹,幸运的是,TASM安装包有EXAMPLES,打开可以去看看一些实例,学习,编译。同时还能快速的确认出来,跟雷军的代码使用的伪指令,汇编代码差不多,也就是这个工具就对了。
当然这个工具真正要跑应用,是在DOS的实模式运行,我们的XP是模拟的DOS环境,所以也不是完全一致,这块如果要真正测验,需要一个DOS的模拟器,完全一致下,测试效果就出来了。

最后分享一张雷军还是码农的时候照片,有时候在想,是不是因为要时常辅导女同事,然后最终把自己的技术炼道成仙了呢?

所以,我们写不好代码,有可能是因为没有这么漂亮的女同事吧?不管咋,这个理由可以有。

后台回复【老代码】查看
雷军1994年写的诗一样的代码







今日福利  

在《架构师修炼之道——思维、方法与实践》中,作者结合多年的架构学习和项目开发经验,总结出一套架构学习的体系,从技术方法、思维意识、工具等方面讲解做好互联网后端架构设计的相关知识。通过相关知识的学习,读者能够掌握设计稳定、易维护、易扩展的软件架构的方法,也能够提升日常维护已有项目的能力。书中讲解的技术方法具有通用性,在其他非互联网行业的软件开发中,也具有借鉴意义。


  留言赠书参与方法 

分享一下你想要这本书的理由?或者一些其他的工作学习经验,活动截止时会选出5名小锦鲤,中奖者可以获得上面的任意一本书籍,包邮到家。

截止时间:2020 年 11 月 13 日 16:00 整

  推荐阅读:

什么?拼命栽培员工,让他强大到足以离开

如何优雅地给妹子优化电脑(Windows)?

新款 iPad 真香,包邮送一个!(福利)

IDEA开发常用快捷键,双手奉上

30 岁码农人生:人生至暗时,你依然能窥见光明

你也许连删库跑路都不会

计算机优秀书籍每周销售排行榜

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存