Посл.ответ |
Сообщение |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 23 ноября 2009 19:18 · Личное сообщение · #1
???
| Сообщение посчитали полезным: |
|
 Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 23 ноября 2009 19:57 · Личное сообщение · #2
ты можешь сначала присвоить значение регистру, а потом использовать двухбайтную команду
т.к. при размере операнда в дворд, код будет таким:
----- EnJoy! | Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 23 ноября 2009 20:24 · Личное сообщение · #3
выглядит как
длина 4
----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
Ранг: 114.8 (ветеран), 41thx Активность: 0.1↘0 Статус: Участник
|
Создано: 23 ноября 2009 20:30 · Поправил: _ruzmaz_ · Личное сообщение · #4
если это просто для условного перехода, то можно использовать
edi не сохраняется (хотя можно и восстановить через rcl), но зато 2 байта
| Сообщение посчитали полезным: |
Ранг: 0.5 (гость) Активность: 0=0 Статус: Участник
|
Создано: 24 ноября 2009 17:17 · Личное сообщение · #5 | Сообщение посчитали полезным: |
 Ранг: 533.6 (!), 232thx Активность: 0.45↘0 Статус: Uploader retired
|
Создано: 24 ноября 2009 17:46 · Личное сообщение · #6
byteResearcher, тогда регистр EDI поменяется
----- Лучше быть одиноким, но свободным © $me | Сообщение посчитали полезным: |
Ранг: 38.7 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 24 ноября 2009 18:01 · Личное сообщение · #7
Судя по документации, варианта с единицей нет.
| Сообщение посчитали полезным: |
Ранг: 0.5 (гость) Активность: 0=0 Статус: Участник
|
Создано: 24 ноября 2009 19:36 · Личное сообщение · #8
BoRoV ну так нужно(если конечно есть нужда) учитывать это, на прямую не противоречит условию топикстартера, а нужен ему этот Edi после использования или нет - неизвестно, запихнуть в стек
По-необходимости, за-частую (на моем опыте проверено), что после проверки Edi ненужен, так-что, Вывод: Если Edi не нужен то можно и не сохранять стек или иначе
| Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 24 ноября 2009 20:34 · Поправил: Isaev · Личное сообщение · #9
что-то я не понял что вы тут дружно решаете?  может просто
и на нуль проверять? зато 1 byte!
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
Ранг: 101.0 (ветеран), 344thx Активность: 1.15↘0 Статус: Участник
|
Создано: 24 ноября 2009 20:53 · Личное сообщение · #10
Isaev+10 а если требуется не менять EDI, можно на каждой ветке поставить INC EDI. Вот и будет решение в три байта.
| Сообщение посчитали полезным: |
Ранг: 114.8 (ветеран), 41thx Активность: 0.1↘0 Статус: Участник
|
Создано: 24 ноября 2009 21:00 · Личное сообщение · #11
Isaev пишет: dec EDI дык бит 0 надо проверить, если edi != 1 тогда неполучицца) ... и кстати mak пишет: BT edi,00000001h надо BT edi,0
| Сообщение посчитали полезным: |
 Ранг: 67.4 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 24 ноября 2009 21:05 · Поправил: Sunzer · Личное сообщение · #12
2 0xy а что дальше будешь делать? переход куда то или что? А так Isaev все сказал  DEC EDI JNZ \ JE
| Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 24 ноября 2009 21:51 · Поправил: Isaev · Личное сообщение · #13
_ruzmaz_ пишет: дык бит 0 надо проверить, хз что надо! 0xy надо ждать, его идею не совсем просекли! если надо бит 0, то ты уже написал
2 байта если результат важено сохранить значение регистра, то у makа наверное самый короткий вариант PS: нет, можно сохранить значение регистра и проверить бит 0 в 2 byte!  изврат, но работает!
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
Ранг: 101.0 (ветеран), 344thx Активность: 1.15↘0 Статус: Участник
|
Создано: 24 ноября 2009 22:01 · Личное сообщение · #14
Что надо по-моему очевидно. Явно не компилятор пишет. Видимо надо сделать патч чтобы был переход или ещё что-то, но существуют ограничения на патч кода по кол-ву байт. Тут зависит от конкретной ситуации, так что пока надо ждать топикстартера - пусть опишет саму проблему.
| Сообщение посчитали полезным: |
 Ранг: 67.4 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 24 ноября 2009 22:02 · Поправил: Sunzer · Личное сообщение · #15
Да нет же, самый короткий вариант, если результат важен, если нет тогда отбросьте инкремент:
Хотя может флаги разные будут возведены... Смотря какие флаги важны ТС
| Сообщение посчитали полезным: |
 Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 24 ноября 2009 22:05 · Личное сообщение · #16
и проверяй флаг переноса!
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
 Ранг: 67.4 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 24 ноября 2009 22:11 · Личное сообщение · #17
Isaev пишет: Code: 004445C5 57 PUSH EDI004445C6 9D POPFD
и проверяй флаг переноса! +1, надо на заметку такой способ взять)
| Сообщение посчитали полезным: |
Ранг: 114.8 (ветеран), 41thx Активность: 0.1↘0 Статус: Участник
|
Создано: 24 ноября 2009 22:37 · Личное сообщение · #18
Isaev пишет: 004445C5 57 PUSH EDI 004445C6 9D POPFD +20 ... но со строковыми операциями надо будет по-осторожней)
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 24 ноября 2009 22:46 · Личное сообщение · #19
И запороть флаг destination и хз, что ещё. Который потом отомстит на копировании строк. Казнить! DEC EDI JNZ \ JE loop не эквивалетно test edi,1. Ибо последнее-проверка 1 бита, а не всего числа на 1. Если ничего не портить, в 3 байта не уместится, я считаю.
| Сообщение посчитали полезным: |