我想在记事本中键入几个1和0,保存为something.exe,并获得一个程序。显然,它不会很复杂。即使只是打招呼也行。如何输出文字?如何暂停它以使其不立即关闭?是否存在任何人所拥有的资源?
答案 0 :(得分:1)
我认为如果您使用文本编辑器,在文本文件中键入二进制(1和0)或十六进制,然后编写一个读取该ascii文件并将其保存为二进制位或您想要的字节数。基本上是制作机器代码汇编程序。
在进一步说明之前,您应该指定您感兴趣的处理器和操作系统。您不仅需要知道指令集的操作码/机器代码,还需要知道操作系统的二进制文件格式(coff,elf,exe等),并且需要手动编写所有这些信息(更适合如果需要,让您的机器代码汇编程序为您创建该标题。)
作为示例,使用我创建的模拟器和工具获取http://github.com/dwelch67/lsasim教育指令集。 “二进制文件格式”是一个ascii文件,机器代码以可读的十六进制表示。模拟器读取并执行它,如果需要(这是我最初测试它的方式),您可以手动编写机器代码而不是汇编语言。我没有操作系统等,读取机器代码文件的解析器将其转换为二进制1和0的缓冲区,这是处理器的模拟内存。
在dos和windows的旧时代,调试命令行程序使这种事情变得简单,手动代码可以是汇编或机器代码字节,当你保存时可以轻松保存到.com可执行文件。我确信我不是唯一一个使用调试学习x86汇编语言的人,因为我买不起像masm这样的软件工具,并且没有调制解调器可以获得任何流行的免费汇编程序asm86或者其他类似东西(直到多年后的时候)我能买得起其中一个)。如果调试仍然是Windows命令行的一部分,那么今天你仍然可以使用该工具执行此操作。
答案 1 :(得分:0)
您需要首先确定它将运行的特定处理器,以及环境(原始CPU,某些操作系统,其他)。从环境中,您需要确定正确的二进制格式。从CPU中,您需要确定实际的机器语言。您还需要确定其他一些事项。
您的问题也可能是“生活从何而来?” - 是的,可以通过一个简单的Q& A论坛回答,但不能得到任何有用的结果。如果您想进一步追求这一点,您可以考虑参加计算机组织的课程(或只是阅读一本书),专注于汇编语言的详细信息。从那里开始学习将程序集转换为机器代码并不是一件容易的事(虽然仍然需要学习很多东西)。