Основы Ассемблера, часть #04. Подключение ассемблерного файла в проект
Самые лучшие бесплатные курсы по C++, Ассемблеру и Unreal Engine 5!
Подключение ассемблерного файла в проект (Основы Ассемблера, часть #04)
00:00 - Подключение ассемблерного файла в проект
01:21 - Разрешаем в проекте компиляцию Ассемблера
04:50 - Добавим новый ассемблерный файл
06:30 - Вызываем ассемблерную функцию Make_Sum
10:06 - Добавим ассемблерный код в Make_Sum
11:55 - Передача параметров в функцию
14:47 - Сохраним ассемблерный исходник в формате Unicode
18:40 - Отладка ассемблерного исходника
21:51 - Как создавать "срез" проекта
26:54 - Как сравнить "срез" с вашим проектом
31:25 - Asm_04.zip: пишем код
Asm_04.zip - drive.google.com/file/d/1h6SL...
Пікірлер: 47
Не перестаю удивляться Вашему умению преподать...
вы очень толковый преподаватель. благодарю вас, Александр. натуральные знания, обязательно поддержу вас монетой с зарплаты.
Спасибо за прекрасный урок. Всё очень грамотно и толково объяснено.
Александр, вы очень точно сказали в первом уроке что учить что то без понимания того зачем это тебе может пригодится это очень большая трата времени. Я книгу Зубкова начал читать, так там первые 20 - 30 страниц было описание комманд, так вот читать их все было так скучно. А тут изучил применил на практике, спасибо вам за курс.
С вечера думал, какой комментарий оставить) добавить нечего, кроме как когда уже следующая часть)
@AlexanderSemenko
2 жыл бұрын
Совсем скоро!
Все понятно и легко заходит , спасибо за урок ,много нового узнаю с каждым уроком да еще и понимать начинаю все сказанное .
Все четко!!! Прям очень четко! Супер. То что я давно искал!
А я дисциплинированно по плюсам курс буду дальше грызть). Всё лето гараж строил. А сейчас напарник на работе заболел. Один за двоих работаю. Так что у меня ещё надолго этот марафон. Тем более Александр приучил к перфекционизму. Хотелось бы весь курс быть в состоянии не подглядывая воспроизводить.
@volodymyrgutsu7011
2 жыл бұрын
Согласен
@AlexanderSemenko
2 жыл бұрын
@@volodymyrgutsu7011 Я не возражаю! Если что - сложные места можно проходить ускоренно, главное - делать руками всю архитектуру и рефакторинг самому.
@volodymyrgutsu7011
2 жыл бұрын
@@AlexanderSemenko С вашими уроками, я еще больше стал понимать, и вникать. Мне очень нужен наставник. Вы очень хорошо объясняете. Пропустить что б вернуться и закрепить
спасибо. очень профессионально.
спасибо за урок.
Начал изучение ассемблера с туториала другого канала, там где было всё сразу про masm 16 включая установку ms-dos'a на virtual box, & компилятор ассемблера к нему... чайник засвистел, отходил полтора дня, понял почти ничего, сейчас вся инфа расправляется, и гладко ложится... огромное спасибо, предельно простое & доступное изложение с возможностью повторить без ошибок
@AlexanderSemenko
9 ай бұрын
Рекомендуйте этот канал своим друзьям!
@Buarpa
9 ай бұрын
вынужден отказать, скорей я на этом канале с кем-то познакомлюсь по интересам, чем заинтересую темами канала кого-то из моего круга общения, увы :( интересуюсь UE4(так как 5-ый ноут тянет с лагами), и являюсь главным героем очередной истории "как я не стал программистом", надеюсь у неё будет поворотный момент.
@user-ih9xw5kr2e
8 ай бұрын
канал Alek OS?)
@Buarpa
8 ай бұрын
@@user-ih9xw5kr2e та да, тема редкая, скрывать нечего : /
С UTF8 с подписью оказия вышла, но оперативно :)
extern "C", это про отсутствие декорирования имени, а не про соглашение вызова).
Спасибо! Если мы используем регистры в ассемблерной вставке, то мы должны знать, как их будет использовать СИ программа, или компилятор сам всё как-то разрешит?
@AlexanderSemenko
Жыл бұрын
Конечно должны! Нам следует ОЧЕНЬ аккуратно обращаться с регистрами, т.к. программа на С++ рассчитывает на них тоже )) Самый лучший способ безопасно обращаться с регистрами - сохранять их в стек в начале вашей ассемблерной функции и восстанавливать в конце.
Александр, подскажите, пожалуйста. У меня , как и у вас в видеоуроке , стоит visual studio 2019. На 4 минуте в видео вы открываете Build Customization. Но у меня его нет. Есть ли какое-то решение чтобы он появился?
@AlexanderSemenko
Ай бұрын
Нужно, чтобы в Solution Explorer был выбрал проект, а не отдельный файл, тогда этот пункт появится в меню. Я где-то об этом говорю...
@Tobi-vq4ni
Ай бұрын
@@AlexanderSemenko Спасибо!!!
Здравствуйте, объясните пожалуйста если вас не затруднит: почему именно 4 параметра из функции сишной помещается в регистры, а остальные в оперативную память? Ведь есть еще регистры с R10 по R15, не все но в несколько можно же было бы поместить параметры чтобы до 6 хотя бы? И в двух словах если не сложно то для чего эти регистры тогда используются?
@AlexanderSemenko
8 ай бұрын
Так мало регистров используется потому, что такой подход начали применять ещё десятки лет назад, когда регистров было мало. Регистры Rxx - это Регистры Общего Назначения, они используются для всего и только некоторые - в особых ситуациях особо. Смотрите мой курс, где я обо всём этом и многом другом подробно рассказываю.
@user-do3tv
8 ай бұрын
@@AlexanderSemenko Ок понял! Конечно буду смотреть ваш курс, тут без вариантов))
Александр, не смог найти в VS, что делает клавиша F7. Вы сами установили какое-то действие на эту клавишу?
@AlexanderSemenko
5 ай бұрын
Эта клавиша запускает процесс компиляции. VS поддерживает несколько схем клавиш, и та, в которой F7 - это одна из самых древних и популярных.
@IgorDev21
5 ай бұрын
@@AlexanderSemenko, разобрался. В VS 2022 F7 назначено на - "Перейти к коду", а на "Собрать решение" стоит не F7, а Ctrl+Shift+B.
@AlexanderSemenko
5 ай бұрын
@@IgorDev21 У меня в меню Tools / Options / Environment / Keyboard - Visual C++ 6. Рекомендую. 1 клавиша - это меньше, чем 3 ))
А почему вы изначально когда говорили что не могу запихнуть в eax rcx не запихнули rcx в rax) ну я предполагаю что эти операции были бы сложнее, но почему тогда более маленькие части не взять сразу же оттуда и оттуда? Например использовать ax и cx?
@AlexanderSemenko
11 ай бұрын
Какой тайм-код?
@doctor_livsi_pod_phonk
11 ай бұрын
@@AlexanderSemenko13.50 около того
@AlexanderSemenko
11 ай бұрын
@@doctor_livsi_pod_phonk Мы вполне могли бы это сделать - и с 8-байтными регистрами, и с 2-х байтными. Вы, как программист, решаете, как вам интерпретировать значения и какой использовать размер. Но я, по привычке, стараюсь использовать наименьший размер, подходящий для решения задачи. Т.к. в функцию передаются значения типа int, то я и использую 4-х байтные регистры.
Здравствуйте! Спасибо большое за урок, однако я не знаю как решить проблему. У меня во вкладке Регистры пишет: Нет данных.
@lisoveliy523
11 ай бұрын
Уже разобрался, нужно нажать ПКМ и выбрать пункт ЦП. Может кому будет полезно.
@mechanic107
Ай бұрын
Отличный совет@@lisoveliy523
Наверное лучше выкладывать на github исходники, так удобнее было бы
@AlexanderSemenko
2 жыл бұрын
Не все умеют работать с гитхабом, это лишний здесь уровень сложности.
если вдруг кто-то поменяет язык в MVC 22 с уже созданным проектом, то будет ошибка при запуске, надо пересоздать проект
Александр скажите у меня куда то исчез Build Customization после того как я выполнил настройки
@AlexanderSemenko
Жыл бұрын
Этот пункт меню недавно переехал выше в этом же меню, в пункт Build Dependencies
@davidshapirofitnessmotivat8994
Жыл бұрын
@@AlexanderSemenko благодарю, но у меня версия 2019 года, как тогда сделать?
@davidshapirofitnessmotivat8994
Жыл бұрын
@@AlexanderSemenko а все понял, еще раз благодарю