Ask
;)
Ask
я поначалу их тож путал))
Aiwan \ (•◡•) / _bot
то что доктор прописал, вроде заработало
Aiwan \ (•◡•) / _bot
#book Зубков, dos windows unix
Aiwan \ (•◡•) / _bot
такой вид записи правильный??? lea di,[dh*80+dl*2]
Aiwan \ (•◡•) / _bot
пишет ошибку: processed: lea di,[dh*80+dl*2] error: reserved word used as symbol.
Aiwan \ (•◡•) / _bot
как правильно это записать?
Aiwan \ (•◡•) / _bot
даже вот так ошибку выдает lea di,[dx*80]
Anonymous
Aiwan \ (•◡•) / _bot
дак как это нет?
s54820
Dx*2, Dx*4, Dx*2+dx
Неа. Даже так нельзя, у него 16-битный режим.
Aiwan \ (•◡•) / _bot
а можно тогда lea вообще использовать в этом режиме, х16?
Anonymous
Dx вначале помножь на 80
Aiwan \ (•◡•) / _bot
s54820
даже вот так ошибку выдает lea di,[dx*80]
Если будут 32-битные регистры, тогда сможешь EDX в эффективном адресе использовать, но умножать, как тебе уже сказали, только на степени двойки, восемь максимум.
s54820
а можно тогда lea вообще использовать в этом режиме, х16?
Можно. Считать эффективный адрес со сложением. Относительно BP, BX.
Aiwan \ (•◡•) / _bot
processed: lea di,[dx*2] error: reserved word used as symbol.
Anonymous
Можно di, si, bx (я давно 16 бит писал)
Anonymous
*80 = 16+64. Shl сделай
Aiwan \ (•◡•) / _bot
;lea di,[dh*80+dl*2] lea di,[dh*8+10+dl*2]
Aiwan \ (•◡•) / _bot
не катит
s54820
;lea di,[dh*80+dl*2] lea di,[dh*8+10+dl*2]
И да, кстати, тебе не на 80 умножать нужно, а на 160.
Anonymous
;lea di,[dh*80+dl*2] lea di,[dh*8+10+dl*2]
Так нельзя. Регистр - 16бит или 32
Aiwan \ (•◡•) / _bot
И да, кстати, тебе не на 80 умножать нужно, а на 160.
; add di,dx ;mov di,40*2*dh+2*dl у мя такая формула
Anonymous
*160=(16+64)*2
s54820
А, у тебя режим с 40 символами? Да, затупил, извини.
Aiwan \ (•◡•) / _bot
40х25
Aiwan \ (•◡•) / _bot
от портянки shl add imul хочу избавиться
s54820
от портянки shl add imul хочу избавиться
Не избавишься. imul самое короткое, что можно изобрести.
Aiwan \ (•◡•) / _bot
полный код процедуры вот такой write_read: push di ;на входе bl = READ or WRITE (0 or 1) xor di,di ; ax = атрибуты/ символ push dx ; dx = координаты push dx shr dx,8 imul dx,80 mov di,dx pop dx xor dh,dh shl dl,1 add di,dx ;mov di,40*2*dh+2*dl ; push bx ; xor bx,bx ; mov bl,dl ; xor dl,dl ; lea di,[dh*80+dl*2] ; lea di,[si*8+10+si*2] cmp bl, READ jnz @f mov word ax,[es:di] ;READ jmp .exit @@: mov word [es:di],ax ;WRITE .exit: pop dx pop di ret
Anonymous
Imul - очень долгая операция, замени на shl
Anonymous
И push можно выкинуть в push dx/shr dx,8
Aiwan \ (•◡•) / _bot
Почему-то мне кажется, что если считать лишь адрес и возвращать его в di, а чтение/запись делать инлайном, то будет короче.
write_read: встречается 6 раз cmp bl, READ jnz @f mov word ax,[es:di] ;READ jmp .exit этим кодом экономлю 13 байт, но и 6 раз вызывается запись/чтение
s54820
Imul - очень долгая операция, замени на shl
У него ограничение по размеру, а скорость там никакой роли не играет.
Aiwan \ (•◡•) / _bot
И push можно выкинуть в push dx/shr dx,8
низя, dh-x, dl-y,второй пуш сохраняю чтоб можно было снова востановить для операции с другой координатой
s54820
write_read: встречается 6 раз cmp bl, READ jnz @f mov word ax,[es:di] ;READ jmp .exit этим кодом экономлю 13 байт, но и 6 раз вызывается запись/чтение
Может быть, стоит еще подумать о хранении отдельно координат головы, а все остальные координаты можно хранить уже пересчитанными в офсеты видеопамяти. Там же коллизии чтением символа проверяются?
Aiwan \ (•◡•) / _bot
так какие идеи есть чтоб lea использовать
Aiwan \ (•◡•) / _bot
Там же коллизии чтением символа проверяются?//// да
s54820
Или даже все вообще хранить посчитанным, усложнятся коллизии с границами экрана, а для управления можно просто прибавлять/вычитать 2 или 80.
Aiwan \ (•◡•) / _bot
эта процедура используется везде где есть проверка символа или его вывод на экран
Aiwan \ (•◡•) / _bot
поэтому и для хвоста и для какашек
s54820
так какие идеи есть чтоб lea использовать
Либо шифты, либо умножение. От умножения в том или ином виде ты никуда не денешься.
Aiwan \ (•◡•) / _bot
Либо шифты, либо умножение. От умножения в том или ином виде ты никуда не денешься.
что за "шифты". так в lea ведь можно умножение использовать, вот на этом и выиграть в объеме хочу
Aiwan \ (•◡•) / _bot
вопрос можно ли lea вообще использовать в х16?
Aiwan \ (•◡•) / _bot
вопрос можно ли lea вообще использовать в х16?
и вот что то мне подсказывает что нет. и в литературе об этом не слова
s54820
Тебе уже ответили. Можно. lea reg,[bx+si] (bx/bp + si/di) и плюс варианты с immediate. Без умножения. И можно потерять байт на оверрайде размеров операндов и использовать 32-битные регистры, и заодно уможнение на степень двойки.
s54820
и вот что то мне подсказывает что нет. и в литературе об этом не слова
Напиши в гугле Intel SDM. Во втором томе есть глава Instruction Format, там всё описано. Или почитай на васме цикл статей «Заклинание кода», тогда идеи о lea reg,[reg*imm+reg*imm] перестанут приходить тебе в голову.
s54820
Aiwan \ (•◡•) / _bot
тогда ах пушить надо, для записи там атрибут/символ
Anonymous
И да, использовать вместо mov ax,dx xchg ax,dx (1 байт)
Anonymous
Кодеры вы задрипанные, хакиры доморощенные. Вам бы стены в сортирах расписывать, а не за асм тут спорить, трепла бездарные.
Anonymous
а. это не флуд чат . сорь
Anonymous
а ты сама одаренность?
нет я просто проездом тут оказался. я даже код писать не умею
Anonymous
мою любимый язык программирования хтмл
Aiwan \ (•◡•) / _bot
на оскарбления переходишь, или тролишь?
Anonymous
я хз
Aiwan \ (•◡•) / _bot
выбор за мной значит?
Anonymous
выбор за мной, я голосую за Путина
Anonymous
а теперь я пойду есть суп. всем пока
Aiwan \ (•◡•) / _bot
Кодеры вы задрипанные, хакиры доморощенные. Вам бы стены в сортирах расписывать, а не за асм тут спорить, трепла бездарные.
ах тыж пиздаблятское мудоебище, хуибало ибаное, чтоб тебе ночью черти в жопу драли. чтоб тебе картошка поперек горла встала и постучать по спине некому было.
Aiwan \ (•◡•) / _bot
значит троль
Aiwan \ (•◡•) / _bot
эт проверка тролинга, выше мне тож неприятно было, сообщение исправлю
­
Чо так мягко его?
Anonymous
ля я тут подумал надо практиковаться в реверсинге и крякать всякие пасты ксгей читов
Anonymous
Anonymous
типо такого xD
Anonymous
бля ребят вопрос Допустим есть какая нить очередная ayyware paste которую продают по цене школьного обеда. лоадер проводит авторизацию, чек хвида, и если все ок, то качает дллку с сервера и мануалмапает ее в игру. Крякнуть такое по идее не займет более 30 минут, но что если создатель запидорил лоадер кучей протекторов, пакеров, итп? будет ли это значительно сложнее риверснуть, или не важно сколько долбоеб влил в лицензию VMProkekt, если он долбоеб, это ему не поможет и его хуйню все равно на изи крякнуть??
JeisonWi
ля я тут подумал надо практиковаться в реверсинге и крякать всякие пасты ксгей читов
Основное направление чата, темы связанные с "Reverse Engineering". Channel: @R0_Crew. Join this channel
bilka00
При грамотно построеной защите + вмп крякнуть иногда очень и очень сложно
Anonymous
При грамотно построеной защите + вмп крякнуть иногда очень и очень сложно
Если софт может быть запущен - он может быть сломан. Иногда софт дешевле купить, чем ковырять