Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: dbush Newsgroups: comp.theory Subject: Re: DD emulated by HHH cannot possibly terminate normally --- x86 code Date: Fri, 28 Feb 2025 21:07:28 -0500 Organization: A noiseless patient Spider Lines: 59 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 01 Mar 2025 03:07:29 +0100 (CET) Injection-Info: dont-email.me; posting-host="346f6112cd21f9da9d3dd26c385a1227"; logging-data="4113164"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18t8F0sW1ecEGYiCYBb4WnK" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:aElnclrsGq0SzRACUyKOdujOV6k= In-Reply-To: Content-Language: en-US Bytes: 3794 On 2/28/2025 9:05 PM, olcott wrote: > On 2/28/2025 7:00 PM, dbush wrote: >> On 2/28/2025 7:47 PM, olcott wrote: >>> _DD() >>> [00002133] 55         push ebp      ; housekeeping >>> [00002134] 8bec       mov ebp,esp   ; housekeeping >>> [00002136] 51         push ecx      ; make space for local >>> [00002137] 6833210000 push 00002133 ; push DD >>> [0000213c] e882f4ffff call 000015c3 ; call HHH(DD) >>> [00002141] 83c404     add esp,+04 >>> [00002144] 8945fc     mov [ebp-04],eax >>> [00002147] 837dfc00   cmp dword [ebp-04],+00 >>> [0000214b] 7402       jz 0000214f >>> [0000214d] ebfe       jmp 0000214d >>> [0000214f] 8b45fc     mov eax,[ebp-04] >>> [00002152] 8be5       mov esp,ebp >>> [00002154] 5d         pop ebp >>> [00002155] c3         ret >>> Size in bytes:(0035) [00002155] >>> >>> When we hypothesize that the code at machine address >>> 0000213c is an x86 emulator then we know that DD >>> remains stuck in recursive emulation and cannot possibly >>> reach its own "ret" instruction and terminate normally. >>> >>> When we add the additional complexity that HHH also >>> aborts this sequence at some point then every level >>> of recursive emulation immediately stops. This does >>> not enable any DD to ever reach its "ret" instruction. >>> >> >> Likewise: >> >> 0000000000400534 : >>    400534:    55                       push   rbp >>    400535:    48 89 e5                 mov    rbp,rsp >>    400538:    b8 34 05 40 00           mov    eax,0x400534 ; push >> no_numbers_greater_than_10 >>    40053d:    48 89 c7                 mov    rdi,rax >>    400540:    e8 a8 ff ff ff           call   4004ed    ; call F >>    400545:    5d                       pop    rbp >>    400546:    c3                       ret >> >> When we hypothesize that the code at machine address >> 4004ed is an x86 emulator then we know that no_numbers_greater_than_10 >> remains stuck in recursive emulation and cannot possibly >> reach its own "ret" instruction and terminate normally. >> >> When we add the additional complexity that F also >> aborts this sequence at some point then every level >> of recursive emulation immediately stops. This does >> not enable any no_numbers_greater_than_10 to ever reach its "ret" >> instruction. >> > > So you and your code agrees with me. > And likewise, you agree that there is no natural number greater than 10.