プログラミングニュースペーパーパズル

このパズルは私の地元紙に現れましたが、私はそれを解決することができませんでした –
多分あなたたちはそれに亀裂をかけることができます。

Page 1 Part 1

Page 2 Part 2

かなり高い解像度でスキャンされていたので、ズームインするとより見やすくなります。

任意のタグを提案してください。

更新: 小さな欠席があった、これはページの下線部の太字です:

MzJoYWnrZXI1NTdbambaSvbm1vqo

詳しい情報(これが関係しているかどうかはわかりません)。

Paper: Morgen Avisen Jyllands-Posten

公開日:2017年3月3日金曜日

更新:

ページのBMPファイル@MikeThammer
強い>

2013年12月3日更新: この投稿の投稿によると
これはデンマークのサイバー防衛からのものです(ただし、情報源はありません)。

ベストアンサー

これは、すべてのものを転記するためのコミュニティwiki無回答です。

プログラムの転写

Language: Intel 80×86 Assembly Language

%define REG(r) [REGS + r * 4]
%define PTR(p) [MEM + p]

U5_LE:
    mov ecx, 0x200
    mov edi, MEM
    mov esi, DISK                   ; DISK = page 2 text?
    rep movsb                       ; copy 1st 512 bytes from DISK to MEM
SPIN:
    mov edx, REG(63)                ; fetch instruction  ( REG(63) = program counter )
    mov edx, PTR(edx)               ; edx = 32-bit instruction
    add WORD REG(63), 4
    mov WORD REG(0), 0

    mov ebp, edx
    shr ebp, 21
    and ebp, 77o                    ; ebp = bits 26-21 of inst'n = destination register #
    mov esi, edx
    shr esi, 15
    and esi, 77o                    ; esi = bits 20-15 of instruction
    mov edi, edx
    shr edi, 9
    and edi, 77o                    ; edi = bits 14-9 of instruction

    mov eax, edx
    shr eax, 27                     ; eax = bits 31-27 of instruction = op code
    mov eax, [OP_TABLE + eax * 4]
    jmp eax                         ; execute instruction

OP_TABLE:
    dd OP_LOAD_B, OP_LOAD_H, OP_LOAD_W, 0, OP_STORE_B, OP_STORE_H, OP_STORE_W, 
    0, OP_ADD, OP_MUL, OP_DIV, OP_NOR, 0, 0, 0, 0, OP_MOVI, 0, OP_CMOV, 0, 0,  
    0, 0, 0, OP_IN, OP_OUT, OP_READ, OP_WRITE, 0, 0, 0, OP_HALT

OP_LOAD_W:
    mov eax, REG(esi)
    add eax, REG(edi)
    mov eax, PTR(eax)
    mov REG(ebp), eax
    jmp SPIN

OP_MUL:
    mov eax, REG(esi)
    mul DWORD REG(edi)
    mov REG(ebp), eax
    jmp SPIN

OP_MOVI:                 ; -- MOVe Immediate (constant) value to register # ebp
    mov eax, edx         ; (edx = 32-bit instruction)
    mov ecx, edx
    shr eax, 5
    and eax, 0xffff      ;  eax =  bits 20-5  of instruction
    and ecx, 37o         ;  ecs =  bits  4-0  of instruction
    shl eax, cl          ;  eax = (bits 20-5) * 2^(bits 4-0)
    mov REG(ebp), eax    ; (ebp =  bits 26-21 of instruction)
    jmp SPIN

OP_CMOV:                 ; -- Conditional MOVe
    mov eax, REG(edi)    ;                      (edi = bits 14-9 of instruction)
    test eax, eax        ; IF  register # edi is not 0
    jz .F
    mov eax, REG(esi)    ;                     (esi = bits 20-15 of instruction)
    mov REG(ebp), eax    ; THEN move value from register # esi to register # ebp
.F:
    jmp SPIN

OP_OUT:
    push DWORD REG(ebp)
    call putchar
    add esp, 4
    jmp SPIN

OP_READ:
    mov ecx, 0x200
    mov esi, REG(esi)    ; (esi = bits 20-15 of instruction)
    shl esi, 9
    lea esi, [DISK + esi]
    mov edi, REG(ebp)
    lea edi, PTR(edi)
    rep movsb            ; read 512-byte DISK block whose number is in register # esi
    jmp SPIN

このプログラムはアセンブリ言語エミュレータのようですが、テーブルの多くのエントリが有効なジャンプターゲットではないため、不完全であるように見えます。私はプログラムを完了することが課題の一部だと思います。


テキストの転写

努力を調整して転写をダブルチェックすることを容易にするために、ブロックをテキストに転写し、以下にイメージブロックとテキスト転写の両方を加えてください。重要であるかどうかわからないので、新しい行とハイフンを保持してください。次の2つの理由から、標準の4つのスペース識別子の代わりに

 
  1. スペースを節約します(回答に30Kの制限がありますが、私はそれを打つのは怖いです)。

  2.   

    アンダースコアテキストには を使用してください。

また、混乱させやすい文字についても注意してください。

  • l11 にはテールがあり、
    l には含まれていないので、それらを区別することができます。

  • oO0 0
    は長方形で、 O は菱形です。 o は小さくて丸い。

  • qg g は降下線で少し回転しています。
    g 降下行と混同される可能性のある横方向の上向き線を持つ別の文字のすぐ上にある q
    には特に注意してください。

  • 6b 6 は非常に正方形です。
    b は四捨五入されています。

  • 8B B は左に真っ直ぐで、
    8 はそうではありません。

また、転記にミスがないことを確実にするために、転記者以外の少なくとも1人が各部分を見直すことが重要です。
2人以上のレビューアが優れています。

最初の部分

[Victor Stafusaによる表記、ハムによるレビュー、 2回目の歓迎]

最初の部分

h+ABgKIA4IfCjYkhh+ACo4micpng-
CiCHAAAgzyEHIIcAACDP4A0ghwAA-
IM/hBICHAAAgz+AMIIcA-
ACDPJQAghwAAIM+gDCCHAAAg-
z+EGIIcAACDPIgMghwAAIM8gD-
SCHAAAgzyAMIIcAACDP4QYghwAA
IM/hBiCHAAAgz6AMIIcAACD-
PYA4ghwAAIM9gDiCHAAAgzyAEII-
cAACDPoQAghwAAIM8AAAD4goAA-
ZoKgCmKCwAvhIAsAANAAAABH6oAA-
hyACIs8gAACHIA0gzyAAAIcgDmD-
PIAAAhyANYM8gAACHIAAl-
zyAAAIcgByHPIAAAhyAMoM8gAA-
CHIAwgzyAAAIcgAyLPIAAAhyAAJc-
8gAACHIAygzyAAAIcgByHP-
IAAAhyAHIc8gAACHIA3gzyAAAIcg-
ByHPIAAAhyAEIM8gAACHIA-
ChzyAAAPgAAABHv4AAhyAAIl88-
8gBHvvIAhyAAIEe+8gCHwAA0g-
sAAYYKAACCCoAApXyooAELrcgC-
HIAAgQuvyAIcgAGJHP/IAl/yu-
AIcgDaJH/IAA0qoAAIcgACBCinIA-
hyAAKUKq8gCHIAuiR/yAAFqA-
AABSgCgAhyADpEc8gACX/KgA-
hyAUYkf8gACHIAggzyAAAIcgAm-
LPIAAAhyAKoM8gAACHIAAlzyAAA-
IcgDaDPIAAAhyAMIM8gAACH-
IANizyAAAIcgBmHPIAAAhy-
AOoM8gAACHIAbhzyAAAIcgDGD-
PIAAAhyADos8gAACHIA0gzyAAAIcg-
DeDPIAAAhyAG4c8gAA-
CHIAAlzyAAAIcgAKPPIAAAhyACIs-
8gAACHIAkgzyAAAIcgBWHPIAAAhy-
AF-

第2部

TO DO Please transcribe it.

三分の一

TO DO Please transcribe it.

ここに多くの部品を追加…

最後の部分

[Silenusによる表記、Victor Stafusaによるレビュー、
2回目の歓迎]

最後の部分

NWdNu+qgtKoyqoHspnuURTOjUVw-
Gy75nE7fcM0doZWLOI-
u50d+mbS46Z1+AqfXaA6/-
rT9AqdvNt4-
iA0yYRQwidXoRtqSzankRtG71Nn-
6vikbXTKSvk8ZrbdjYCxVoCDVpx-
pXRxT2hGC8OPhLk9537gU4-
rUoirNDzkuytvIQF+sH-
belshtabXTuWap0g2V+ZhA2w-
g1vZi78Fld/uP9VsDPNzgkD-
3jtXPPe0Xi-
l1AzDJN/7VWSKI9AfUXKrEx2Rl-
R3IR+18B7wsoRwCn9qbExo3meD-
vCER2NVcM81GNXcZV5JORUnE-
rVEtQJqwU4Rr1doiibD/JWu8n-
zLiYMG25C0QDQCGAx1FuhXGmqEA-
3Dy6fbgr6D+aUc2bUCviBv69-
UiHl+l7N7kkkdWKl5vwok8suTh/-
zgYXJNvQuFf19WtE6VIdabzOBc-
c1PwR3u0k/0eoglxqYqcD5L-
INh2iTzrMbW0SMGm5lhYoPXelf-
wsFbLQFBmR8Oz8Fwe0h/UbAw1w-
9JddVlDmHr0NDd+fbPL/N6Qe-
DPMxp3W2x-
FnKOPagBnmpxjOyeECNor/-
UhfbC5HCS0ojdS+ShclM/-
Y9rPb0bUC7zj7wdSG3BusbNa-
chJorOjDP9RBnGmBmPr9kxFKQqg-
dQfSvlGu+Z3H5HO/5OEKbDJps-
lPQzB5cWbFacYkKqNrvyCZQi-
LsM+omRCI3gM

また、

2ページの文字の一部に下線が引かれています(こちらを参照)。下線が引かれた文字は(少なくとも)
MzJYWNrZXI1NT6amt6a5vbm1vqo
です。おそらく、これらは唯一の重要な文字であり、残りの文字列は無視することができます。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です