кто-нибудь может оценить данную работу? я просто уже в безвыходном положении, еще сопроцессоры сам как-то потянул, а вот это задание вообще не имею понятия и знаний как сделать..
Сначала записываем очередные 64 байта исходной строки в массив в порядке, нарисованном на схеме слева, потом читаем в порядке, нарисованном на схеме справа и добавляем в строку результата. Так?
Тогда, если если решать просто "лобовым путем", сначала по смещению в буфере очередного символа (I) находим его координаты X и Y в массиве. На втором этапе по координатам X и Y находим смещение (J) в выходном буфере. В первом случае используем целочисленное деление, во втором - умножение. Надо только не забыть принять во внимание, что четные и нечетные строки (столбцы на втором этапе) обрабатываются по-разному.
Спасибо за объяснение, но я дело в том, что просто из-за не знания синтаксиса и как обращаться с регистрами для сохранения и шагания по рядкам/столбцам двухмерного массива :(
А ну еще туда прибавить не знание работы циклов в ассемблере, в высокоуровневых языках то все простенько, указал перменные-итераторы и шагаешь с нужным шагом, тут же, явно не вижу в коде чужого человека, когда цикл закончитсья ..
Записываем в ax смещение. Записываем в bl размер строки. Делим. Получаем в al - номер строки, в ah - смещение в этой строке. Для нечетных строк для получения обратного порядка символов вычитаем ah из размера строки.