Questions tagged «machine-code»


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 …

4
仅在机器代码中使用可打印的可见ASCII字符在x86 / x86-64中进行不同的分支
任务很简单:编写一个程序,仅使用机器代码中的可打印可见ASCII字符0x21 ... 0x7e(不允许使用空格和del)在x86(32位)和x86-64(64位)中分支不同。 不允许有条件的汇编。 不允许使用API​​调用。 不允许使用内核模式(0环)代码。 在Linux或某些其他保护模式的OS中,代码必须在不引起IA-32和x86-64异常的情况下运行。 功能不得依赖于命令行参数。 所有指令必须仅使用0x21 ... 0x7e(十进制33 ... 126)范围内的ASCII字符以机器代码编码。因此,例如。cpuid超出限制(是0f a2),除非您使用自我修改的代码。 相同的二进制代码必须在x86和x86-64中运行,但是由于文件头(ELF / ELF64 / etc。)可能不同,因此您可能需要重新组装并链接它。但是,二进制代码不得更改。 解决方案应该可以在i386 ... Core i7之间的所有处理器上工作,但是我也对更有限的解决方案感兴趣。 该代码必须在32位x86中分支,但不能在x86-64中分支,反之亦然,但不是必须使用条件跳转(也可以接受间接跳转或调用)。分支目标地址必须有一定的空间,可以容纳一些代码,至少2个字节的空间可插入短跳转(jmp rel8)。 胜出的答案是在机器代码中使用最少字节的答案。文件头中的字节(例如ELF / ELF64)不计算在内,分支(出于测试目的等)之后的任何代码字节也不计算在内。 请以ASCII,十六进制字节和注释代码的形式显示您的答案。 我的解决方案,39个字节: ASCII: fhotfhatfhitfhutfhotfhatfhitfhut_H3<$t! 十六进制:66 68 6F 74 66 68 61 74 66 68 69 74 66 68 75 74 66 68 …

13
斐波那契产品
您可以将大于0的数字分解为正Fibonacci数字的唯一和。在这个问题中,我们通过重复减去最大可能的正斐波那契数来做到这一点。例如: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 现在,我将斐波那契乘积称为与上面相同的列表,但加法运算被乘积代替。例如,f(100) = 89 * 8 * 3 = 2136。 编写一个给定正整数n的程序或函数,该函数将返回该数字的斐波那契乘积。 测试用例: 1: 1 2: 2 3: 3 4: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.