Aiwan \ (•◡•) / _bot
mov edx,dword[minimum]
mov ebx,dword[eax+edx*4]
Aiwan \ (•◡•) / _bot
или
shl dword[minimum],2
mov ebx,dword[eax+minimum]
Ilyxa
Вот это чудо получается так же делать?
Ilyxa
Aiwan \ (•◡•) / _bot
Ilyxa
А задача сделать сортировку вставками на asm
Ilyxa
Eugene
Aiwan \ (•◡•) / _bot
Eugene
Вообще, надо более полный код приводить и объяснять что должно происходить. Потому что по 2м строчкам дать ответ, гадая, что чел задумал... сомнительное занятие.
Aiwan \ (•◡•) / _bot
Ilyxa
Еще такой вопрос
Ilyxa
Почему neg ломает ecx, а не отрицает его
Ilyxa
Просто выводит 65286
Eugene
Потому что strLength-1 - это адрес, а не значение.
Aiwan \ (•◡•) / _bot
Почему neg ломает ecx, а не отрицает его
все логично, после rep ecx=0, в этом случае neg ничего не делает. потом из 0 ты вычитаешь длину строки-1. но ты наверное проверяешь не ecx, a cx, там отрицательное число будет -249 вроде.
250 это длина буффера для пути в винде вроде
Ilyxa
Ilyxa
Если верить дебагеру
Ilyxa
Aiwan \ (•◡•) / _bot
Ilyxa
Ищет 0 в строке
Eugene
Хм, понял
strLength - это же переменная?
Показывай сразу объявления вместе с кодом.
Saenro
Почему neg ломает ecx, а не отрицает его
Видимо ты хочешь следующее:
mov edi, string
mov ecx, [length]
xor al, al
repnz scasb
sub ecx, [length]
neg ecx ;или not ecx
mov eax, ecx
ret
разница между not/neg
NOT ECX — укажет на символ перед нулём.
NEG ECX — укажет на ноль.
Ilyxa
После отрицания, надо единицу прибавлять?
Saenro
В зависимости от задач, если просто перевести минус в плюс или наоборот, то да, через NEG. Это всё равно что NOT+INC.
Aiwan \ (•◡•) / _bot
я наверное что то не там выше сказал, не учел что из цикла выход досрочный
Aiwan \ (•◡•) / _bot
Ищет 0 в строке
ты по сути ищешь длину строки в буффере? @TouristPlay
Ilyxa
Ilyxa
Разность буфера и ecx дадут длину строки
Aiwan \ (•◡•) / _bot
тыкаю чтоб удалить, а не удаляется (оказывается я здесь не админ). и сюда добрались гурманы асма по хардкору.
@IvUyr
nano
Они даже не фильтруют. Вкатываются во все подряд. Авось повезёт
λ
Интересно, на что ТУТ шмароботы надеются...
На мужчин. В телеграм-чатах, посвящённых программированию, 95% — мужчины, это уж точно. Может, из тысячи найдётся такой, у кого есть с этим проблемы... А вообще капчу можно поставить, чтобы у разработчиков таких ботов возникли такие проблемы
Вот ещё одно.
Хотя, похоже, нет.
Eugene
На мужчин. В телеграм-чатах, посвящённых программированию, 95% — мужчины, это уж точно. Может, из тысячи найдётся такой, у кого есть с этим проблемы... А вообще капчу можно поставить, чтобы у разработчиков таких ботов возникли такие проблемы
У нас есть капча в одном из чатов. Т.е. нужно перейти по кнопке и ответить на вопрос (который, по правде говоря, одинаковый для всех). Тем не менее, они проходят. Но они ничего не постят, а пытаются привлечь именем.
λ
Писали сюда бота... на ассемблере...
Co(n)stantine👨🔬
Eugene
Сейчас как минимум ссылка в описании и клубнички по краям. У всех.
Ну и да, ключевые слова и учётом замены букв-цифр-раскладки.
λ
Eugene
Делается асм-вставка в сишный код:
.intel_syntax noprefix
бла-бла-бла
Как вернуть обратно тот синтаксис, который был до этого?
Т.е. если был AT&T, то вернуть его, если Intel, то его.
Eugene
И вопрос по спецификаторам.
Если я использую fld / fstp, какой спецификатор использовать в clobbers?
asm(
...
"fld ..."
"fld ..."
...
"fstp ..."
"fstp ..."
...
: // outputs
: // inputs
: // clobbers
);
Eugene
Не могу въехать в объяснение в мане...
Aiwan \ (•◡•) / _bot
Eugene
Aiwan \ (•◡•) / _bot
ты про размер каторый надо выводить из стека или про что? что за спецификаторы?
disba1ancer
disba1ancer
disba1ancer
Eugene
Eugene
Для регистров идёт перечисление регистров ("%eax", напрмер), для памяти "memory", для флагов "cc".
А если нужно указать, что я сдвигаю стек на 2 позиции? Если писать "st(1)", получается, что я просто затираю st(1), а я ничего не затираю, только сдвигаю FPU-стек (и оптимизатор, как я понимаю, должен сделать так, чтобы st(6) и st(7) не были заняты, иначе будет переполнение стека).
Aiwan \ (•◡•) / _bot
ааа, это ты с айтити разбираешься
disba1ancer
disba1ancer
Maksim R.
Добрый вечер, есть кто может помочь студенту с простой задачей?
Спрашивай. Кто захочет - поможет.
Maksim R.
Суть задачи:
Задан одномерный массив. Сортировать элементы массива в обратном порядке.
Yura
Eugene
Maksim R.
Все что я сделал это задал массив из чисел
Maksim R.
Не понимаю как дальше двигаться, уже сколько смотрю информации
Maksim R.
Преподаватели мало информации дали
Eugene
Поделюсь лайфхаком. Открываешь Яндекс, вбиваешь "сортировка ассемблер", и самая первая ссылка твоя. Куча примеров, на любой вкус. От пузырьковой и вставками и до быстрой и комбинированных.
Eugene
Соединяешь с тем, что сделал и... бинго. Ну или не бинго... тогда уже спрашиваешь конкретно, что не получается. С кодом (в виде ссылки на gist, например... или если кусок небольшой, прям сюда кидаешь, обрамив тройным тегами ` с двух сторон).
Maksim R.
Спасибо. Благодарен
Anonymous