Массив в память
От: Buggy  
Дата: 11.01.03 16:34
Оценка:
Добро всем читающим, здрасте.
У меня тут такая маханькая проблема с копИрованием одного массива в другой.
Так вот.
У меня есть регистр es, это по сути это у меня выделенный блок памяти и также
у меня есть переменная name db 'Hello world!$'.
Я хочу сделать чтобы побайтово переменная name копировалась также в es.
Я сделал вот так.

xor di,di
mov cx,12
bbb:
mov byte ptr es:[di],name[di]
inc di
loop bbb
Выдает ошибку.
Подскажите, что мне надо сделать?
Большое спасибо.
Re: Массив в память
От: karol  
Дата: 11.01.03 17:22
Оценка:
Здравствуйте, Buggy, Вы писали:

B>xor di,di

B>mov cx,12
B>bbb:
B> mov byte ptr es:[di],name[di]

^^^ операция память-память

B> inc di

B>loop bbb
B>Выдает ошибку.
B>Подскажите, что мне надо сделать?
B>Большое спасибо.

Пентиум не умеет пересылать память-память
нужно делать так:

mov al, name[di]
mov byte ptr es:[di], al

или так
mov si, di
add di, offset name
rep movsd

но лучше выравнивать на границы двойных слов и пересылать двойные слова
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.