Alex
Можно задать ?
Aiwan \ (•◡•) / _bot
ну? Не томи
Alex
ну? Не томи
🌗🌗🌗 @Torchik_Ru 🌗🌗🌗
Assembler #1 Пишем свою первую программу
Alex
Стоит ли читать ?
Alex
Или лажа?
Aiwan \ (•◡•) / _bot
Что читать?
Eugene
Ссылку на сообщение приведи.
Eugene
Правая кнопка - копировать ссылку
Alex
Изучать цикл статей по ассемблеру на данном канале
Aiwan \ (•◡•) / _bot
Alex
🌗🌗🌗 @Torchik_Ru 🌗🌗🌗
Assembler #1 Пишем свою первую программу
Aiwan \ (•◡•) / _bot
На первый взгляд вроде норм
Alex
Vyacheslav
Как декомпилировать *.res обратно в текст + картинки/иконки?
Ask
restorator мб
Vyacheslav
Хотелось консольную, конечно. Видимо, придётся его использовать.
Aiwan \ (•◡•) / _bot
Eugene
Ща
JeisonWi
Исходники самого фасм - лучшее руководство
Aiwan \ (•◡•) / _bot
asmworld.ru
Aiwan \ (•◡•) / _bot
А в архитектуре х86 что то поменялось?
Aiwan \ (•◡•) / _bot
Особо не поменялось, только вроде добавляется
Eugene
Eugene
Это 1.71 вроде как
Вот тут ещё 1.71: http://www.cyberforum.ru/fasm/thread1240599.html
Eugene
А так 1.64 гуляет по инету, но он постарее будет
Eugene
resd только.
ОС какая?
Eugene
Linux?
Eugene
И подключена ли сишная либа?
Aiwan \ (•◡•) / _bot
В винде заполняю буфер через сишную функцию, wsprintf вроде, и дальше сам
Eugene
Это не ОС.
Eugene
А в каком виде всё это записывается вообще?
Eugene
Aiwan \ (•◡•) / _bot
Либо сделать hex to dec
Anonymous
syscall может быть ?
Eugene
Судя по всему, array - это массив.
Если там resd, значит числа 32-битные.
Можно (если совсем по-простому и медленно) по 1 цифре выводить, т.е. цикл преобразования числа в строку.
Исходное число в eax. Делим число на 10 (не забыв обнулисть edx), делаем push edx (остатка) и повторяем пока в результате eax не будет = 0.
Кол-во итераций цикла сохраняем в ecx, потом делаем pop eax добавляем '0' и выводим 1 цифру (сохранив во временную переменную). И так ecx раз.
Anonymous
ну тогда вроде бы все верно
Anonymous
если array указывает на начало буфера
Eugene
Какого буфера?
Размер array - это не массив чисел, которые нужно выводить?
Eugene
Тьфу, блин, я думал, это автор :)
Anonymous
4 sys_write
Anonymous
не 3
Anonymous
на 32
Anonymous
https://www.cs.utexas.edu/~bismith/test/syscalls/syscalls32.html
Anonymous
так ведь тебе вроде нужно вывести в стдаут
Anonymous
зачем читать
Anonymous
ax/bl = al, ah
Anonymous
в al Результат в ah остаток, запиши его и выведи
Anonymous
так вроде
Anonymous
bss она не инициализированная пока ты не записал в нее ввод с клавиатуры
Anonymous
насколько я понимаю, нет вообше никакой разницы откуда выводить, лиж бы были права чтения на сегмент
Anonymous
или на страницу
Aiwan \ (•◡•) / _bot
Anonymous
память в .bss не инициализирована в самом файле, когда ось начинает выполнять процесс, она уже инициализирована нулями, и разницы уже нет между .data и .bss
Anonymous
вроде так )
Anonymous
.bss только для того, что бы не занимать место в исполняемом файле и ускорить работу загрузчика, в самом файле до загрузки после компоновщика там содержится только число (количество переменных)
если ошибаюсь гуру поправьте
Dolphin
Dolphin
для x86 можно в два раза сократить
Eugene
Я тут делал как-то include'ы для работы с системными вызовами, с консолью в том числе.
Там всё очень просто и удобно. См. тут.
Вообще всем рекомендую качнуть себе для удобства работы.
Eugene
Eugene
Если надо, могу ссыль на свою статью дать по syscall'ам и этим макросам (в архивах которые).
Eugene
readme там, правда, нет...
Eugene
но по example'ам можно сообразить.
Eugene
В примерах с суффиксами nomacro как раз варианты без макросов.
Правда, там нет перевода строки в числа.
Eugene
Eugene
Вот тут можно глянуть вывод числа, только тут GAS и 64 бита, но сообразить можно.
Eugene
И там быстрое деление есть заодно
Eugene
Eugene
Вот NASM x86 вывод числа
Eugene
Без замороча
Dolphin
Dolphin
AVR 8-ми битный
Dolphin
он простой очень
Dolphin
pop dx
mov [edi], dx
inc edi
loop lp2
pop ax
stosw
loop lp2
Dolphin
нах вобще через стек? пиши сразу в память
Dolphin
потому что stosw сохраняет только ax
Dolphin
Если мы говорим про твой вариант, то там уже ничего не будет
Dolphin
потому что у тебя test ax,ax, должен вернуть 0
Dolphin
и это тоже неправильно, ты работаешь с байтами, а сохраняешь слова