You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

shuffle-simple.asm 556B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. bits 16
  2. org 100h
  3. jmp start
  4. shuffle_start:
  5. push 0xB800
  6. pop es
  7. mov cx, 80*24*2
  8. mov ax, 'AA'
  9. xor di, di
  10. rep stosw
  11. .lbl: jmp .lbl
  12. shuffle_end:
  13. nop
  14. shuffle_len equ (shuffle_end - shuffle_start + 1)
  15. start:
  16. ; calculate physical address of shuffled part
  17. xor eax, eax
  18. push ds
  19. pop ax
  20. shl eax, 4
  21. add ax, shuffle_start
  22. mov dword [source], eax
  23. mov ax, 0012h
  24. mov di, shuffle_descriptors
  25. mov cx, num_shuffle_descriptors
  26. mov ebp, 0x7c00
  27. int 22h
  28. int3
  29. shuffle_descriptors:
  30. dd 0x7C00
  31. source: dd 0
  32. dd shuffle_len
  33. num_shuffle_descriptors equ 1