我正在关注一个在线教程,其中一个人正在使用带有扁平汇编程序的程序集从头开始创建操作系统。他展示了它是如何完成的,当我跟着他时,我意识到当他用他的十六进制编辑器检查他的程序集时,它表明他的程序集“db 1”在他的十六进制编辑器中看起来像“01”,它只占用一个字节;但当我尝试得到“64 62 20 31”,其中64 =“d”,62 =“b”,20 =空格,31 =一个。
我在Windows Vista上运行,他看起来在Linux上运行但从未说过,所以我想知道这是否与它有关,我是否有可能通过程序集在我的机器上创建一个字节他做的一样吗?如果有不同的方法,那么额外的字节对我来说似乎非常浪费。
答案 0 :(得分:0)
你可能指的是装配,在这种情况下,指令是 db 1
。
但是,该指令的实际组合可能只产生01
。
答案 1 :(得分:0)
.asm
文件是一个文本源文件,用作名为assembler的程序的输入。汇编程序的示例包括gas
和nasm
。
汇编程序生成一个输出文件,其中包含与.asm
文件中指定的程序和数据相对应的所有机器代码字节。当处理器加载到内存中的正确位置时,处理器可以直接执行该文件中的代码。
您正在查看程序的源代码,而不是生成的输出文件。