The Bird of Hermes
Ну вот стек в столбик идет, из чего состоит столбик?
Тут тебе столбик отладчик показывает
The Bird of Hermes
Ему так удобно
The Bird of Hermes
Это не имеет специальной терминологии
The Bird of Hermes
В реальности это тупо память и все
The Bird of Hermes
В неё можно писать, из неё можно читать как из любой другой
Alexey
В неё можно писать, из неё можно читать как из любой другой
Я могу собрать патерн на «строчку стека»?
The Bird of Hermes
Я могу собрать патерн на «строчку стека»?
Ммм нет. Потому что в стек можно положить 2 или 4 байта одной инструкцией(а на х64 8 байт можно положить)
The Bird of Hermes
Часто бывает принято выравнивать стек
Alexey
Все дуэды пушат, а на х64 вообще фастоклят
The Bird of Hermes
Ну блин так никто не делает
Все так делают в 16-битном коде
Oleg
Oleg
Да
Но там же и минимум четыре байта, как можно два положить?
Alexey
Но там же и минимум четыре байта, как можно два положить?
А почему в 4 байта нельзя запихнуть 2 раза по 2 байта?
Oleg
Там не одна
Ммм нет. Потому что в стек можно положить 2 или 4 байта одной инструкцией(а на х64 8 байт можно положить)
Oleg
Почему
Вопрос к автору
Oleg
А один байт я не могу положить?
Одной инструкцией? Нет
Oleg
Хотя стоп, так и несколькими не можешь
Oleg
Да и два тоже
Oleg
Могу
Как?
Alexey
Как здесь только вместо word будет byte
Oleg
Как здесь только вместо word будет byte
Так ведь можно минимум четыре байта
Oleg
Я спать
Не,не,не
Oleg
Выпей чаю и взбодрись, это ещё не конец
The Bird of Hermes
Стоооп, а разве в стеке не максимум 4 байта на 'ячейку'?
Стек это такая же память. Ты можешь туда хоть 1 байт положить, правда придется не использовать push и pop, хоть 1000 байт, правда придется использовать много этих инструкций(или rep movsb скорее)
­
Ничо такая
Alexey
@isa_dot_bz, ну здравствуйте
『𝔻𝕠𝕟
mawert🦈
Всем привет
mawert🦈
помогите пожалуйста с практикой в вузе
Alexey
помогите пожалуйста с практикой в вузе
Привет, доплата за время, которое потрачено на формулирование задания будет?
Oleg
помогите пожалуйста с практикой в вузе
Какой компилятор? Какая задача? Конкретнее пиши
mawert🦈
masm32
Alexey
masm32
Уже 5 минут, время деньги !
Oleg
Уже 5 минут, время деньги !
Ты ж масм все равно не знаешь)
mawert🦈
Написать программу на ассемблере MASM-32 для преобразования координат в сферическую систему из прямоугольной или цилиндрической. Пользователь вначале выбирает вид преобразования, затем уже должен вводить координаты (задаются тремя вещественными числами). Требования к программе: Вычисление (преобразование) значений координат выполнить в подпрограммах (всего две подпрограммы: ПР->СФ, ЦЛ->СФ). Данные в подпрограммы (и результат) передавать по соглашению stdcall. Аргумент и результат подпрограмм должен являться вектором (три значения). Для подпрограмм преобразования запрещено использовать формальное описание (proto/invoke). Загрузка из памяти в стек сопроцессора только один раз для каждой переменной. Использовать минимально возможное количество команд FXCH, FLD ST.. (чем меньше, тем выше оценка). Вычисления выполнять так, чтобы в конце стек сопроцессора был чист! Вывод данных на экран выполнить с точностью до 6 знаков после зяпятой. Система команд сопроцессора FPU Для ввода вещественных чисел рекомендуется использовать подпрограмму из встроенных библиотек ASMVisual: FpuAtoFL. Это преобразование обратное к тому, которое использовали при выводе данных (см. примеры программ в конце практического курса). Подробное описание использования можно найти во встроенной справке для MASM (FPU). В качестве результата работы загрузить код программы (*.txt или *.asm) и два скриншота стека из отдадчика для обоих вариантов преобразований (формат *.png или *.jpg).
Oleg
С фига
Ну, ты ж фасмер
『𝔻𝕠𝕟
『𝔻𝕠𝕟
Ну, ты ж фасмер
Кстати, а как тогда иерархия выглядит? И на какой ступени насмеры? ☺️
mawert🦈
сколько это примерно стоить будет?
Alexey
Userfriendly
Задание тяжелое очень
Я бы сначала на си написал бы
Userfriendly
А потом через godbolt конвертнул в асм
mawert🦈
я сначала на python написал
mawert🦈
что такое godbolt?
『𝔻𝕠𝕟
Userfriendly
что такое godbolt?
Сайт, который показывает как твой код будет преобразован в низком уровне
『𝔻𝕠𝕟
Прикольная тулза ☺️
Userfriendly
Например, можно посмотреть что у тебя будет в V8, в виртуальной машине, или ассемблер python
Userfriendly
Ну и конечно же как будет сишный код будет исполняться в опкодах и сам ассемблерный листинг
Userfriendly
Можно флаги компиляции выставить, чтобы знать в каком месте можно было бы пооптимальнее написать
mawert🦈
какие еще варики есть
mawert🦈
что может мне помочь
Alexey
какие еще варики есть
А есть пример похожей работы?
mawert🦈
нет
mawert🦈
препод эту задал на кр, до этого вообще таким не занимались
Sergey
лол, ну значит без прямых ссылок, а то не дают постить :)
Sergey
godbolt. org/z/1rG31KdPj
Sergey
результаты из чатгпт, ничего не проверлялось
Userfriendly
что может мне помочь
Тесты, наверное
Userfriendly
Чтобы правильно выполнить вычисления
Alexey
Тесты, наверное
Вычисление то фигня, там ТЗ непонятное