Сформировать новый битовый массив, удалив из исходного каждый второй бит

Условие:

Написать подпрограмму, формирующую из заданной битовой строки новую путем удаления каждого второго бита (т.е. строка становится в два раза короче). Результат помещается на место исходной строки. Адрес строки задан парой GS:SI, длина (в битах) - регистром DX.

ps. Мне не нужна программа, мне нужен алгоритм. Как это реализовать?