· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Адресация

Посл.отвђт Сообщенiе


Дата: Мар 20, 2003 09:52:42

Люди, столкнулся с проблемой. Пишу такой кусок кода:

.data
mas dd 8 dup (23h)
.code
mov eax,mas[1]

В результате в аккумуляторе бред. Меняю последную строку на

mov esi,offset mas
mov eax,[esi+4]

начинает работать. В чем моя ошибка?


Дата: Мар 20, 2003 10:31:12

Afaik Asm так просто не понимает, что индекс надо умножать на sizeof(type). Такой трюк проходит только с byte.

Можно написать так:
[code]
.data
mas label dword
dd 8 dup(23h)

.code
mov eax,mas[1 * sizeof mas]
[/code]


Дата: Мар 20, 2003 15:18:51

Лучше так:

.data
mas dd 8 dup (23h)

.code
mov eax, mas[1 * type mas]


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.046