2025-11-03 08:38:15 +03:00
|
|
|
|
with open("привет5.квс", "w", encoding="utf-8") as f:
|
2025-11-03 08:14:04 +03:00
|
|
|
|
f.write(".текст\n.глобал _start\n\n")
|
2025-11-03 08:38:15 +03:00
|
|
|
|
|
|
|
|
|
|
# Мусор в .text
|
2025-11-03 08:14:04 +03:00
|
|
|
|
for i in range(4410):
|
|
|
|
|
|
f.write(f"наполнитель_{i}: переместить_имм раикс, 0x{i % 256:02x}{i % 256:02x}{i % 256:02x}{i % 256:02x}{i % 256:02x}{i % 256:02x}{i % 256:02x}{i % 256:02x}\n")
|
2025-11-03 08:38:15 +03:00
|
|
|
|
|
2025-11-03 08:14:04 +03:00
|
|
|
|
# Основной код
|
|
|
|
|
|
f.write("\n_start:\n")
|
|
|
|
|
|
f.write(" переместить_имм раикс, 1\n")
|
|
|
|
|
|
f.write(" переместить_имм рдиай, 1\n")
|
|
|
|
|
|
f.write(" переместить_имм рсиай, msg0\n")
|
|
|
|
|
|
f.write(" переместить_имм рдикс, 21\n")
|
|
|
|
|
|
f.write(" вызов_системы\n\n")
|
|
|
|
|
|
f.write(" переместить_имм раикс, 1\n")
|
|
|
|
|
|
f.write(" переместить_имм рдиай, 1\n")
|
|
|
|
|
|
f.write(" переместить_имм рсиай, msg1\n")
|
|
|
|
|
|
f.write(" переместить_имм рдикс, 21\n")
|
|
|
|
|
|
f.write(" вызов_системы\n\n")
|
|
|
|
|
|
f.write(" переместить_имм раикс, 60\n")
|
|
|
|
|
|
f.write(" переместить_имм рдиай, 0\n")
|
|
|
|
|
|
f.write(" вызов_системы\n\n")
|
2025-11-03 08:38:15 +03:00
|
|
|
|
|
2025-11-03 08:14:04 +03:00
|
|
|
|
f.write(".данные\n")
|
2025-11-03 08:38:15 +03:00
|
|
|
|
|
|
|
|
|
|
# Мусорные строки для переполнения страницы
|
|
|
|
|
|
# Каждая строка ~25 байт, нужно ~410 строк для 10250 байт (2.5+ страницы)
|
|
|
|
|
|
for i in range(410):
|
|
|
|
|
|
f.write(f'garbage_msg{i}: .строка "МУСОРНЫЕ_ДАННЫЕ_{i:04d}"\n')
|
|
|
|
|
|
|
|
|
|
|
|
# Целевые строки (должны быть на следующей странице)
|
2025-11-03 08:14:04 +03:00
|
|
|
|
f.write('msg0: .строка "Привет мир!\\n"\n')
|
|
|
|
|
|
f.write('msg1: .строка "Поди прочь!\\n"\n')
|