我可以用汇编程序(NASM)编写哪种程序有技术限制吗? 现在我只看起来有些程序会进行算术运算,比如添加两个数字。
是否可以编写复杂的汇编程序,提供GUI,访问文件系统,播放声音等等?
我知道我不会写这样的程序,但我很好奇,如果我可以用汇编程序编写什么样的程序有技术限制。
答案 0 :(得分:14)
如果对目标系统有足够的了解,可以通过ASM做任何你想做的事情。但是,还有其他一些因素使得难以管理。但我已经看到许多在ASM中完成的GUI。他们看起来并不是特别好看,但他们确实如此。我见过一个人在纯粹的ASM中写了一个视频游戏(那个带有小行星的游戏,你在屏幕中间有一个小船,用于射击机枪或激光)。他想测试自己,之前已经做过一些ASM。所以是的,无论你想要什么,都可以做到。
我需要提醒你,ASM只是伪机器指令,所有其他代码最终都必须减少到这些指令吗?
答案 1 :(得分:4)
没有这样的限制。用C或C ++编写的程序在编译期间作为汇编程序源代码传递一个阶段,因此根据定义,您可以从完整的操作系统(如Windows)到AutoCAD中的汇编程序(如AutoCAD)编写任何内容。然而,它不会特别有趣或富有成效,并且错误的数量可能很大。
答案 2 :(得分:3)
不,对汇编程序可以做什么没有限制。在汇编程序中编写GUI,访问文件系统,播放声音等是否切实可行是另一回事。
答案 3 :(得分:2)
在当天,我认为许多计算机游戏都是用汇编程序编写的。我特别想到的是1978年为TRS-80推出的“空中交通管制员”游戏。它在“实时”游戏中有一个基于角色的用户界面,哔哔声和相当多的游戏逻辑运行在4k RAM中的模拟。这里是指向该网站的链接以及该游戏的一些信息,以及屏幕截图:http://atc.fastie.com/index.htm