Программа edi
Автор Оля Писковец задал вопрос в разделе Другие языки и технологии
Нужна помощь в программе на ASSEMBLERE и получил лучший ответ
Ответ от Ѓдачник[гуру]
Ошибка вот здесь: xor edi,edi результат просто обнуляется регистр edi потом делаю так : xor [edi],[edi] Дело в том, что запись [edi], то есть регистр в квадратных скобках - это косвенное обращение к ячейке памяти, адрес которой записан в регистре edi. Ты обнулила регистр, а теперь пытаешься обнулить 0 ячейку памяти, а она наверняка служебная, и компилятор тебя туда просто не пускает. Но тебе ведь нужно очистить не регистр edi, а буфер buf? Не проще ли написать: xor buf, buf Может так нормально будет? PS. Если совет не поможет, то прошу не пинать. Ассемблер изучал 20 лет назад, сейчас уже подзабыл.
" CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ;--------------------------------------; В этом примере область данных BYTE_BLOCK ; заполняется значением 01H ;-------------------------------------- LEA DI, BYTE_BLOCK ; D