当前位置:首页 > 公众号精选 > strongerHuang
[导读]今天分享一个朋友的文章,关于DOS、汇编的内容,以及雷军的故事。这是一段古董代码了,因为在1994年,当时我的一个老师也是做汇编项目,他跟我聊过的故事是,当时是他跟一个前辈一起去现场给客户看故障,调试,用的ARM汇编,当时前辈是赚了2w,他赚到了6k的样子。


编排 | strongerHuang 微信公众号 | strongerHuang

今天分享一个朋友的文章,关于DOS、汇编的内容,以及雷军的故事。


这是一段古董代码了,因为在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的模拟器,完全一致下,测试效果就出来了。


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



------------ END ------------

推荐阅读:

什么是自由软件?

C语言实现面向对象的原理

无MMU抢占式操作系统的抢占工作原理


关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注


点击“ 阅读原文 ”查看更多分享,欢迎点分享、收藏、点赞、在看。

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存
关闭
关闭