12345678910111213141516171819202122232425262728293031323334353637383940 |
- bits 16
- org 100h
-
- jmp start
-
- shuffle_start:
- push 0xB800
- pop es
- mov cx, 80*24*2
- mov ax, 'AA'
- xor di, di
- rep stosw
- .lbl: jmp .lbl
- shuffle_end:
- nop
- shuffle_len equ (shuffle_end - shuffle_start + 1)
-
- start:
- ; calculate physical address of shuffled part
- xor eax, eax
- push ds
- pop ax
- shl eax, 4
- add ax, shuffle_start
- mov dword [source], eax
-
- mov ax, 0012h
- mov di, shuffle_descriptors
- mov cx, num_shuffle_descriptors
- mov ebp, 0x7c00
- int 22h
- int3
-
- shuffle_descriptors:
- dd 0x7C00
- source: dd 0
- dd shuffle_len
-
- num_shuffle_descriptors equ 1
|