· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Как сделать, чтобы Tasm съел такое выражение

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


Дата: Янв 20, 2003 16:33:49

Нужен каунтер для пресылки movsd, полученный делением конца тела программы на 4. (и +1 слово)
org 0
start:
....
mov ecx, dword(offset end_body)/4+1
...
end_body:

tasm ругается. Как бы это обойти? :)


Дата: Янв 20, 2003 17:14:11

Если трахаешь КОЗУ, то спроси у нее сначала от чего она получает оргазм!

ПЕРЕВОД : "Не лезь в чужой монастырь со своим уставом !"

ДЛЯ САМЫХ УМНЫХ : ..... сначала .... + ... потом ...... нет проблем!


Дата: Янв 20, 2003 17:22:29

Тут не только tasm, а и любой другой ассемблер ругаться будет.

mov ecx, (offset end_body - offset start_body)/4 + 1


Дата: Янв 21, 2003 02:58:07

offset start_body=0. org 0 видел?
мож и будет , но получается (end_body - 0)/4 +1 :) Офигенно! ДЛЯ САМЫХ умных - Все равно нихрена. Вы б сначала проверили, советчики :)
Я ж тож не самый тупой, но сам в шоке. Пример:
mov ecx,(offset segm_prefix+1)/4

mov ecx,offset segm_prefix/4
mov ecx,(offset segm_prefix)/4+1
mov ecx,(offset segm_prefix) shr 4+1
со сложением или без и спереди и сзади, все равно выдает:
Relative quantity illegal.
tasm 5.0 Че за ботва? Мля, вроде всегда раньше такие выражения сжирала. Лет так 5 назад :)


Дата: Янв 21, 2003 09:58:12 · Поправил: Four-F

[ andy: offset start_body=0. org 0 видел? ]

Нет. Не заметил, но это ничего не меняет.
offset возвращает относительное смещение своего операнда.
Само по себе его нельзя делить или умножать.
В доке об этом, вроде, написано прямо.
В твоем случае есть метка start: вот к ней и привязывайся.

mov ecx, (offset end_body - offset start)/4 + 1

[ andy: Мля, вроде всегда раньше такие выражения сжирала. Лет так 5 назад :) ]

Думаю ты че-то попутал.

ЗЫ: И неча так волноваться.


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