Size: a a a

Ассемблер

2021 September 04

D

Den in Ассемблер
Ок ну спасиб большое!, :) счас с этой загадкой разберусь и буду writenum дальше ковырять, всю программу приходится каждый раз переписывать но зато, познавательно :)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
у тя только 2а перехода или 8 будет?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
@disba1ancer можно оптимизировать это дело для конвеера. убрать условные переходы и сделать переход по таблице
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
что то похожее на это
источник

D

Den in Ассемблер
Уважаемый Disba1ancer, ты был абсолютно прав!!! Это магическая мистика, заменил neg на not в edx и заработало, поясни пж еще раз за пляску во спасение вселенной а то не совсем понятно что происходит! На 10 символах работает с neg,  там в edx уже есть контент так сказать! UP соррян, не работает с 10-ю символами, сейчас присмотрелся там тож была ошибка
источник

D

Den in Ассемблер
получается, not на основном регистре единичку не доставляет и ее надо вручную доставлять а во втором верхнем, это то что надо, мож это как то связано с переходом через ноль? 🤔
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
источник

d

disba1ancer in Ассемблер
ты про условия в начале, я уже писал об этом
источник

d

disba1ancer in Ассемблер
это связанно с представлением в дополнительном коде
источник

d

disba1ancer in Ассемблер
двоичное n-значное число может закодировать числа от 0 до (2**n - 1), они получаются все положительные, а для кодирования отрицательных придумали взять верхнюю половину диапазона и использовать для кодирования отрицательных чисел, и получалось что самое большое число без знака соответствовало -1, при этом при сложении получалось что они оба уменьшают любое число к которому их прибавляют на -1, и аналогично с прочими отрицательными числами
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
вот этого прикола так и не понял
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
или через одно место прочитал
источник

d

disba1ancer in Ассемблер
а что именно не понятно? я мог плохо объяснить...
источник

d

disba1ancer in Ассемблер
я сейчас вот так сделал:
 sub     esi, edi

 or      esi, -4
 bsf     esi, esi
 jmp     [calltbl + esi * 4]

calltbl:
 .4byte  .Lmemcpy1, .Lmemcpy2, .Lmemcpy4
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
прикольно вообще со знаковыми сделали
источник

D

Den in Ассемблер
Не WriteNum непричем, все решилось в этой подпрограмме доп проверками и и ивертированиями! Правда еще со сложением (-1)+(-1) проблемы пока с любым колличеством.
источник

E

Entusiast in Ассемблер
Ну и хорошо
источник

d

disba1ancer in Ассемблер
явно не хватает каких-то базовых знаний чтобы разобраться...
источник

D

Den in Ассемблер
А сложно, как все ну ладно, буду действовать по ситуации потому что у меня этот дополнительный код то не используется получается
источник

d

disba1ancer in Ассемблер
используется, на x86 все отрицательные числа в дополнительном коде
источник