Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ассемблер

Елизавета Данилова Профи (521), на голосовании 11 лет назад
Подскажите как исправить код.
Я показываю лишь кусочек, что исправляю. Запускаем exe-файл через командную строку с параметром %SystemRoot% и код надо подправить так, что бы при вводе %SystemRoot% выводились данные как при %SystemRoot%\*.*
в этом кусочке я и пыталась это сделать. Введенная строка с клавиатуры в командной строке хранится в Buffer. Я пыталась найти конец строки, проверить предыдущий символ на "%" и если так оно и есть то добавить после него "/*.*".
В итоге не работает.
;начало кода
xor eax,eax
lea esi, Buffer
@@:lodsb
.if al==0h
dec esi
dec esi
cmp byte ptr [esi], '%'
jne next111
inc esi
mov byte ptr [esi],'\'
inc esi
mov dword ptr [esi], 002A2E2Ah; *.*
.else
jmp @B
.endif
next111:
;продолжение кода
Голосование за лучший ответ
Андрей Синицын Мастер (2160) 11 лет назад
lea esi, Buffer+1
@@:
lodsb
cmp al,'%'
jnz @1
mov byte ptr [esi],'\'
mov dword ptr [esi+1],'*.*'
@1:
test al,al
jnz @b
Похожие вопросы