ассемблер цепочечные команды



Автор [::ХОЧУ машину...::] задал вопрос в разделе Другие языки и технологии

(Assembler) Нужно вывести массив в обратном порядке))))....при помощи цепочечных команд и std и получил лучший ответ

Ответ от Кирилл Сабитов[гуру]
Бедная девочка. Мне Вас жалко 🙂 lea esi, arr lea edi, arp rep movs arp, arr - вот тут вы копируете массив. 1) зачем? ! 2) в arp места не хватит для копирования. она всего 4 байта. затрете кусок чужой памяти. len EQU ($-arr)/4 - не надо делить на 4. получите в байтах длину. перед циклом сделайте: lea edi, arp mov ecx, len add edi,ecx-4 (есть команда такая? или разбейте так, чтоб оно сработало) в edi у вас будет указатель на последний элемент массива. .WHILE ecx>0 INVOKE HEX2ASCII, [edi] - а в какой участок памяти пишет ASCII? я не знаю макроса но надо проверить чтоб не мимо. WRITE_CONSOLE ebx, eax WRITE_SPACE dec ecx add edi, 4 sub ecx,4 sub edi,4 .ENDW вот так как-то.

Ответ от Stiven Dedal[новичек]
у цепочечных команд нет явных операндов есть только неявные: адрес источника в регистре ЕСИ адрес назначения в регистре ЕДИ

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: (Assembler) Нужно вывести массив в обратном порядке))))....при помощи цепочечных команд и std
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*