Пока наш новый автор resu_t, пишет свои объемные статьи, я решил немного развлечь вас, этой статьей, перепечатанной из одного демомейкерского журнала десятилетней давности. Надеюсь вам эта статья доставит не меньше удовольствия чем мне…

Было время, когда многие ассемблерщики, сидя в изрядно прокуренных НИИ, за своими XT, постоянно соревновались друг с другом, на тему уровня своего программирования. Интересное было время - социализм. Кстати программиста узнать можно было сразу, этакий бородато - лохматый тип, с окурком беломора и пьяными глазами. Взгляд на жизнь наплевательский, жена бросила, пьет и курит неумеренно. Обычно, соревнование заключалось в написании жутко коварного вируса, в оптимизации общеизвестного алгоритма на скорость или размер. Иногда, задача заключалась просто в выводе на монитор содержимого регистра AX в девятеричной системе, или просто строки “Петров - мудила“, причем сделать это было надо хоть на байт, но меньше чем коллега из соседнего отдела.

Если бы начальник знал, почему программа завершена с опозданием в месяц… просто то время, которое надо было тратить на заказ, тратилось на обдумывание очередного замороченного алгоритма, направленного на утирание носа своему собутыльнику, а вовсе не связана с чрезмерной сложностью заказа. Но что он понимает… болван.

Бывали и короткие но кровавые поединки, типа этого:

Задача: Вписать код выводящую на экран строку “Неllo”, в минимальный размер, язык Turbo Assembler =). Поехали.

Программист 1:

.model tiny
.code
org 100h
start:
	mov ax, 09h
	mov dx, offset Mess
	int 21h
	mov ah, 4Ch
	int 21h
Mess db "Hello",10,13,"$"
end start

После компиляции 19 байт.

Видели бы вы, сколько торжества было на лице второго, когда он принес следующее:

Программист 2:

.model tiny
.code
org 100h
start:
	mov ah, 09h
	mov dx, offset Mess
	int 21h
	int 20h		;!!! Выиграли mov ah, 4Ch
Mess db "Hello",10,13,"$"
end start

После компиляции 17 байт.

А это притащил первый, и сказал что все, меньше уже никто не сделает, а кто сделает, тому он лично подарит бутылку водки. - Только это невозможно, меньше уже нельзя, - сказал он, с довольной улыбкой.

Программист 1:

.model tiny
.code
org 100h
start:
	mov ah, 09h
	mov dx, offset Mess
	int 21h
	retn  ;Выиграли, int 20h займет 2 байта, а ближний ret всего 1
Mess db "Hello",10,13,"$"
end start

После компиляции 16 байт.

Вся штука в том, что был еще третий программист, который был одержим страстью к компьютерам и алкоголю, и услышав что можно нахаляву срубить бутылку водки написал следующее:

Программист 3:

.model tiny
.code
org 256
begin:
db 65h, 63h, 68h, 6Fh, 20h, "Hello"
end begin

Всего 10 байт!

Всего 5 байт без учета текста. Правда после компиляции над файлом надо немного поработать, но это связано с чрезмерной самоуверенностью разработчиков TLINK.

dR.Shizer/HRG
перепечатка из H.A.R.Magazine #2 (Май 1997)