10万行汇编代码
博客专区 > tsl0922 的博客 > 博客详情
10万行汇编代码
tsl0922 发表于6年前
10万行汇编代码
  • 发表于 6年前
  • 阅读 8236
  • 收藏 18
  • 点赞 1
  • 评论 16

腾讯云 技术升级10大核心产品年终让利>>>   

偶尔会有人问我有关编写超级任天堂游戏的问题,那些人是怎么管理成千上万行16位汇编语言代码组成的项目的?答案是:它并不像你想象中那么艰难。

SNES硬件的手册有几百页,我不记得具体是多少了,最多400页吧。加入一个详细的65816汇编语言教材并结合我们现在说的最多800或900页,这只是我认为要完全理解一个OSX计算机的所需页数11,000的百分之八十。当然,你在C语言里的汇编代码也会出现很多无形的错误。比如,这是一些老的x86代码:

mov ax, 20
mov bx, -1
int XX

这些代码设置了一些参数并调用中断。它看起来是正确的,也可以正常运行,并且可能在一个商业化的产品中使用,但是在新版的MS-DOS中它崩溃了。为什么?因为第二个参数应该传到dx寄存器,而不是bx。它只有在前面有代码发生了中断并返回-1到dx的情况下才能正常运行,但这是很罕见的,所以上面代码中的第二行并没有做任何有用的事。

完全使用汇编语言工作的秘密是:做到有组织,写代码前先思考并保代码持清洁和易懂。这和写好的Javascript和C++代码是有很多相似之处的。Steve McConnell编写的Code Complete是真正的超级任天堂游戏开发者指南。

但是这些谈论的编程语言和硬件是落后的。Jordan Mechner设计和编写了Apple II上的Prince of Persia,游戏和展示所有关卡的编辑器是用8位6502汇编语言编写的,他用日记记录了写这个游戏的过程。你可能期望这个日记里都是 编程 参考和6502编程诀窍,但是里面一点关于那个的内容也没有。当然,他在幕后做高难度的技术工作,但是那不是他要记录的。他记录的是一个设计师和导演的经历:一个人在大学毕业后居住在离家很远的地方,为自己的梦想走了很多弯路(别被吓倒了,那是很迷人的故事)。

他可能有另外一些编程的记录,但是我想应该没有。尽管如此,他远不止在想技术问题:一个小说家的个人日记的内容不会全是讲语法和句子结构的~

(如果你喜欢这篇文章,你可能还会喜欢The Pure Tech Side is the Dark Side

原文链接/OsChina.NET编译

标签: 汇编语言
共有 人打赏支持
tsl0922
粉丝 260
博文 26
码字总数 11714
作品 1
评论 (16)
极品渣子
想起了在看雪的日子。
mingshun
其实自己对汇编还是情有独钟。大学读机电的,最常使用的就是汇编和C。只是现在没有什么机会玩了。
“做到有组织,写代码前先思考并保代码持清洁和易懂。”这个原则,我觉得用任何语言来写都应该要遵循的。
苗哥
怀念当年疯狂学汇编的日子,记忆了各种各样的JMP指令以及各种标志位的含义,以及汇编的调试工具中从A到Z的调试命令的使用方法。
水牛叔叔
也想起大二学驱动的日子,但是最后没继续学,倒是把汇编学会了,
最后重新拿起大一学了一半的java
maikkk
最近很少上看雪,不过汇编一直没忘的
nhafeng

引用来自“ztd”的评论

想起了在看雪的日子。

牛哦
极品渣子

引用来自“张敏峰”的评论

引用来自“ztd”的评论

想起了在看雪的日子。

牛哦

我可不是牛人,只是喜欢自已写写游戏外挂浪费青春,看雪的牛人都是深不可测的,改个程序那是小儿科,高级的是那些加密解密和算法。
tsl0922

引用来自“ztd”的评论

引用来自“张敏峰”的评论

引用来自“ztd”的评论

想起了在看雪的日子。

牛哦

我可不是牛人,只是喜欢自已写写游戏外挂浪费青春,看雪的牛人都是深不可测的,改个程序那是小儿科,高级的是那些加密解密和算法。

是啊,看雪很多牛人。收藏着《看雪学院十周年纪念收藏版》,经典啊!到现在还时不时的翻出来看看,获益良多~~
codeeer
太牛了,受不鸟
诸葛非卿
老实说,当初学习的汇编如今已经记不得多少,但是经过这么多年,对它的兴趣依然不减。
黎云

引用来自“ztd”的评论

引用来自“张敏峰”的评论

引用来自“ztd”的评论

想起了在看雪的日子。

牛哦

我可不是牛人,只是喜欢自已写写游戏外挂浪费青春,看雪的牛人都是深不可测的,改个程序那是小儿科,高级的是那些加密解密和算法。

么么,大神,不知道何时可以自己写个外挂玩玩。哎,期待自己了。
小临
楼主会坐游戏外挂?
张进程
汇编我们只是接触了点皮毛。
waly
不错!
wisedonkey
大哥,下次能说得言简意赅点吗
boyfood
真心感谢为计算机技术外文翻译做出贡献的人,我也要好好学习英语翻译
×
tsl0922
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: