|
|
1.1 ! root 1: bits 16 ! 2: org 100h ! 3: ! 4: jmp start ! 5: ! 6: shuffle_start: ! 7: push 0xB800 ! 8: pop es ! 9: mov cx, 80*24*2 ! 10: mov ax, 'AA' ! 11: xor di, di ! 12: rep stosw ! 13: .lbl: jmp .lbl ! 14: shuffle_end: ! 15: nop ! 16: shuffle_len equ (shuffle_end - shuffle_start + 1) ! 17: ! 18: start: ! 19: ; calculate physical address of shuffled part ! 20: xor eax, eax ! 21: push ds ! 22: pop ax ! 23: shl eax, 4 ! 24: add ax, shuffle_start ! 25: mov dword [source], eax ! 26: ! 27: mov ax, 0012h ! 28: mov di, shuffle_descriptors ! 29: mov cx, num_shuffle_descriptors ! 30: mov ebp, 0x7c00 ! 31: int 22h ! 32: int3 ! 33: ! 34: shuffle_descriptors: ! 35: dd 0x7C00 ! 36: source: dd 0 ! 37: dd shuffle_len ! 38: ! 39: num_shuffle_descriptors equ 1 ! 40:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.