Куча говна / Говнокод #18469 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
/*

Исходный код бутлоадера непонятными букафками
vk.com/wctstudio

*/

Lp BP hm	// В регистр SI помещаем адрес сообщения
Pi AL aa	// Вызываем функцию печати строки
Pl OP		// Вечный цикл для корректной работы программы

/* Процедура печати символа (процедура 1) */

Le AP		// Помещаем в регистр AH число AP (15). Объясняем БИОС-у то, 
		// что нам нужно вывести один символ на экран. В регистре AL
		// хранится ASCII значение нашего сообщения
Lh AA		// В регистр BH - 0, соответственно, это и есть номер страницы
Ld AH		// Ну а в регистр BL - 7, это значит, что у нас будет выводиться
		// светло-серый текст на черном фоне

Mn BA		// Как только видим Mn - сразу вспоминаем, что это прерывание
		// На данный момент это прерывание 16 (десятичная система)
		// а в hex - знакомое нам прерывание 0x10.
		// Это прерывание BIOS - видео сервис

Md		// Выходим из процедуры

/* Процедура вывода строки на экран (процедура 2) */

// вывод символа (процедура 3)

Ik AE		// Помещаем в регистр AL значение из SI
Eg		// Инкренмент (увеличение на единицу) регистра SI

Ai MA		// Если значение регистра AL - 0 (т.е. строка закончилась), то
He AF		// заканчиваем выполнение программы (выполнение процедуры 4)
		// - 5 байт вперед на команду Md (выход из программы)

Pi PN oo	// Если же строка не закончилась, то выполняем процедуру 1
		// т.е. выводим символ, который находится в AL

Pl OE           // Берем следующий символ из строки (выполнение процедуры 3)

Md		// Все, закругляемся и выходим из программы

FH GD HE CA	// ASCII: Wct (пробел)
GO GP GF CA 	// 	  one (пробел)
GM GO HG GF	//	  love
Aa		// Конец строки обязан заканчиваться нулем, т.е. Aa :)

/* У нас осталось свободное место, до 512 байт нам нужно написать недостающие Aa (0) */

Aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
aa aa aa aa aa aa aa

// До 512 байт нам не хватает всего двух байтов..

Ff KK		// FF KK - подпись загрузчика, чтобы компьютер понял,
		// что это загрузчик, и его необходимо загрузить в
		// память. В windows есть подписи "MZ" & "PE", а тут
		// такое вот дело.

Не многие поймут этот код. Вернее, не многие лишь поймут код сей. Зачем это? Отвечаю: для того, чтобы помять моск.
github.com/Mihip/Wct

Запостил: Mihip Mihip, (Updated )

Комментарии (3) RSS

  • Вот любитель хардкора то... Ассемблер уже не возбуждает, приходится кодить прямо хекс кодами?
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8