Quake3 ну смотри сам:
Ну вот как бы постарался обьяснить... у меня кстати такая же лаба в универе в качестве курсухи была 
Код:
data
sour db "test123",0;строка с данными...
dest db 32 dup(0) ;тут и так ясно...
.code
start:
std;установили флаг управления в 1-теперь строки будут читаться справа-налево...
mov ecx,3;занесли в есх 3...
mov esi,offset sour;загрузили в esi строку с данными
ADD ESI, SIZEOF sour-3; прибавляем в (к) esi строку с конца на -3 символа справа...
mov edi,offset dest;загрузили в edi ту же строку (скопировали...)
rep movsb;а тут повторяеться строка с данными,причем справа-налево...
invoke MessageBox,0,addr dest,0,0;месадж