1
Bootloader高尔夫:Brainf ***
创建一个执行给定Brainfuck程序的引导程序。这是code-golf,因此具有最少字节数的程序将获胜。作为引导加载程序,程序的大小在已编译的代码中以非零字节计。 脑干 30000个8位溢出单元。指针结束。 有关操作的一些注意事项: 必须以正确支持所有可打印ASCII字符的方式读取输入。其他击键可能会插入一个任意字符,或者什么也不做。 读取用户输入必须使用字符缓冲,而不是行缓冲。 读取用户输入必须回显插入的字符。 输出必须遵循代码页437或内置的VGA适配器默认代码页。 引导程序 这是一个x86引导程序。引导加载程序以传统55 AA顺序结束。您的代码必须在VirtualBox,Qemu或其他知名的x86模拟器上运行。 磁碟 可执行的Brainfuck位于第二个磁盘扇区,紧随您的引导加载程序之后,该引导加载程序通常位于MBR部分中的磁盘的第一个扇区中。附加代码(超过510字节的任何代码)可以位于其他磁盘扇区。您的存储设备必须是硬盘驱动器或软盘。 STDIO 当然,引导加载程序无法访问操作系统的IO功能。因此,BIOS功能代替了打印文本和读取用户输入的功能。 模板 首先,这是一个用Nasm(intel语法)程序集编写的简单模板: [BITS 16] [ORG 0x7c00] ; first sector: boot: ; initialize segment registers xor ax, ax mov ds, ax mov es, ax mov ss, ax ; initialize stack mov sp, 0x7bfe ; load brainfuck …