2010-05-28 33 views
3

我可以用汇编(NASM)编写什么样的程序有技术限制吗?
现在我只看到一些程序做算术运算,比如加两个数字。汇编器的局限性是什么? (NASM)

是否有可能编写复杂的汇编程序,提供一个图形用户界面,访问文件系统,播放声音等等?

我知道我不会写这样的程序,但我很好奇,如果有什么样的程序,我可以用汇编写的技术限制。

回答

14

考虑到目标系统有足够的认识,有可能做任何你想通过ASM。但是,还有其他一些因素使得难以管理。但是我见过很多在ASM中完成的GUI。他们看起来不是特别好,但他们确实如此。我见过一个人在纯粹的ASM上写了一个视频游戏(与小行星的游戏以及在屏幕中央有一艘发射机枪或激光的小船)。他想测试自己,并且之前已经完成了一些ASM。所以是的,无论你喜欢什么,都可以做到。

我需要提醒你的是ASM仅仅是伪机器指令,这是所有其他代码最终必须减少?

+1

“?需要我提醒你,ASM仅仅是伪机器指令,这是所有其他代码最终必须减少” <=是的,你必须=) – citronas 2010-05-28 17:45:39

+0

@citronas〜只要你记得ASM并不意味着机器指令。 ASM通常类似于机器指令,但通常机器指令采用特定的HEX编码形式,而ASM通常采用字母数字形式。程序不会首先“编译到ASM”,尽管曾经发生过。 #JustSayin – jcolebrand 2010-05-28 18:15:35

4

这样没有限制。用C或C++编写的程序在编译过程中作为汇编源代码穿过舞台,因此根据定义,您可以将任何内容从完整的操作系统(如Windows)写入像汇编程序中的AutoCAD之类的应用程序。尽管如此,它并不会特别有趣或者富有成效,并且错误的数量可能会很大。

3

不,不限制汇编程序能做什么。在汇编器中编写GUI,访问文件系统,播放声音等是否实际是另一回事。

2

早在一天,我想到了一些电脑游戏在汇编中编程。我特别想到1978年为TRS-80推出的“空中交通控制器”游戏。它具有基于角色的用户界面,哔声以及所有游戏逻辑都在“实时”游戏中模拟运行在4k的RAM中。这里是链接到网站上的那场比赛的一些信息,以及截图:http://atc.fastie.com/index.htm

+0

正如我在评论中提到的那样,我见过的在ASM上写视频游戏的人是两年前完成的。声音,视频,光标,键盘输入,以及比我见过别人跑得快得多的helluva。他没有让它跑到窗口,所以他直接抓住了显示器。意味着游戏结束后重新启动,但是他在XP上做的事情非常漂亮。 – jcolebrand 2010-05-28 17:27:48