Size: a a a

Ассемблер

2020 May 02

sl

skavy lastname in Ассемблер
楽園松本
Я считаю, это самое правильное решение.
Самое правильное для новичков? Я пытаюсь"раскурить" Masm32... но идет очень туго самообучение...
источник

楽園松本 in Ассемблер
skavy lastname
Самое правильное для новичков? Я пытаюсь"раскурить" Masm32... но идет очень туго самообучение...
Самое правильное решение для того, кто хочет изучить ассемблер. Ассемблер сам по себе невероятно прост, изучение самого языка занимает не более двух недель. И после этого возникает главный вопрос: что делать с ним дальше? И тут выясняется, что ассемблер нужен для всяких трюков с операционной системой И ЖЕЛЕЗОМ (дополнил). И вот как раз изучение связки ассемблер + ОС + ЖЕЛЕЗО лучше всего происходит на основе ДОС: очень хорошо документированной, исследованной вдоль и поперёк, разрешающей с собой делать что угодно системой.
источник

sl

skavy lastname in Ассемблер
楽園松本
Самое правильное решение для того, кто хочет изучить ассемблер. Ассемблер сам по себе невероятно прост, изучение самого языка занимает не более двух недель. И после этого возникает главный вопрос: что делать с ним дальше? И тут выясняется, что ассемблер нужен для всяких трюков с операционной системой И ЖЕЛЕЗОМ (дополнил). И вот как раз изучение связки ассемблер + ОС + ЖЕЛЕЗО лучше всего происходит на основе ДОС: очень хорошо документированной, исследованной вдоль и поперёк, разрешающей с собой делать что угодно системой.
Спасибо за детальный ответ, для начинающих очень полезно такое услышать. После изучения DOS, будет легче перейти на ассемблер который сейчас актуален? тот же masm fasm ?
источник

楽園松本 in Ассемблер
skavy lastname
Спасибо за детальный ответ, для начинающих очень полезно такое услышать. После изучения DOS, будет легче перейти на ассемблер который сейчас актуален? тот же masm fasm ?
Пожалуйста, разведи в своём сознании такие вещи, как:
1) ОС;
2) процессор;
3) прочее железо;
4) диалекты ассемблера.

Это весьма разные вещи. ДОС даст представление как работают операционные системы.

Процессор выполняет инструкции, которые совсем не зависят от операционной системы.

Прочее железо в своём древнем виде это устройства, с которыми ты работаешь через порты ввода-вывода. В современном виде это самостоятельны компьютер с процессором и со своей внутренней программой, которую также можно писать, не связанный с ОС на компьютере.

Диалекты ассемблера - MASM, FASM, NASM и прочие -- делают все одно и то же. У них немного отличается синтаксис и отличаются внутренние команды для генерирования исполняемой программы. Но все они на выходе дают один и тот же результат. Иногда даже байт в байт тот же.

Я предлагаю путь ДОС потому, что это простой и эффективный старт в правильном направлении.
источник

楽園松本 in Ассемблер
А что такое правильно направление в случае асма? Это НЕ программирование под ОС с помощью вызова системных функций.
источник

sl

skavy lastname in Ассемблер
Спасибо, буду изучать DOS, про диалекты разных асмов я знаю, и большую часть вопросов про ОС процессор тоже.
источник

楽園松本 in Ассемблер
Идеальная ассемблерная программа, на мой взгляд, это программа, которая запускается без ОС.
источник

sl

skavy lastname in Ассемблер
Просто столкнулся с проблемой что не могу написать то что хочу)
источник

楽園松本 in Ассемблер
skavy lastname
Спасибо, буду изучать DOS, про диалекты разных асмов я знаю, и большую часть вопросов про ОС процессор тоже.
Лучше поставить задачу не так: буду изучать аппаратное устройство компьютера и устройство операционных систем - сначала с простой ДОС. Потом по мере движения я пойму, что мне более интересно: писать программы под операционные системы, писать отдельные участки программ, работать с железом, делать независимые от ОС программы, взламывать (патчить) программы.
источник

楽園松本 in Ассемблер
skavy lastname
Просто столкнулся с проблемой что не могу написать то что хочу)
В чём суть проблемы?
источник

sl

skavy lastname in Ассемблер
楽園松本
Лучше поставить задачу не так: буду изучать аппаратное устройство компьютера и устройство операционных систем - сначала с простой ДОС. Потом по мере движения я пойму, что мне более интересно: писать программы под операционные системы, писать отдельные участки программ, работать с железом, делать независимые от ОС программы, взламывать (патчить) программы.
Так и буду действовать, с наскока асм не взять. Без фундаментальных знаний, а точнее понимания работы компьютера, процессора и ОС (хотя по ОС понятно что это просто программа)
источник

sl

skavy lastname in Ассемблер
Как мне кажется, проблема в том, что я ставлю, задачу которую не могу решить с уровнем тех знаний что есть сейчас. Я только начал изучения (можно так сказать)
источник

sl

skavy lastname in Ассемблер
Благо знаю ЯП высокого уровня, и эти выводи я делаю, на основе того как изучал его. Там тоже были схожие проблемы. Что хотел написать что то, но бывал не мог выдавить не строчки кода. Со временем конечно это все ушло. Каждый программист думаю с этим сталкивался
источник

楽園松本 in Ассемблер
skavy lastname
Так и буду действовать, с наскока асм не взять. Без фундаментальных знаний, а точнее понимания работы компьютера, процессора и ОС (хотя по ОС понятно что это просто программа)
Имей в виду ещё вот что. Когда мы программируем на языках высокого уровня, мы начинаем наш путь с вывода на экран "hello world". Фокус в том, что в ассемблере это уже вершина работы. Вывод на устройства, если мы говорим о чистом ассемблере, это результат тысяч действий.

Да, мы можем использовать функцию ОС "вывести в консоль". Но если у нас нет ОС? Тогда используем функцию BIOS "вывести символ". Но что если мы как раз программируем BIOS? Тогда мы должны выводить как-то, засовывая нечто в порты видеокарты. А если мы программируем видеокарту, что делать? Тогда мы пишем свой знакогенератор на уровне контроллера видеокарты.
источник

VR

Vartan RedMan in Ассемблер
То есть самый низ это программировать микроконтроллеры?
источник

楽園松本 in Ассемблер
Vartan RedMan
То есть самый низ это программировать микроконтроллеры?
Это программировать микропрограммы в процессорах :)
источник

sl

skavy lastname in Ассемблер
楽園松本
Имей в виду ещё вот что. Когда мы программируем на языках высокого уровня, мы начинаем наш путь с вывода на экран "hello world". Фокус в том, что в ассемблере это уже вершина работы. Вывод на устройства, если мы говорим о чистом ассемблере, это результат тысяч действий.

Да, мы можем использовать функцию ОС "вывести в консоль". Но если у нас нет ОС? Тогда используем функцию BIOS "вывести символ". Но что если мы как раз программируем BIOS? Тогда мы должны выводить как-то, засовывая нечто в порты видеокарты. А если мы программируем видеокарту, что делать? Тогда мы пишем свой знакогенератор на уровне контроллера видеокарты.
Да я пока смог вывести "Hello world" занимаясь по видео, тоже прифигел если так можно выразиться, на сколько это не легко! Но это очень круто... чувство было лучше чем от обычного echo или print в языках высокого уровня.
источник

楽園松本 in Ассемблер
skavy lastname
Да я пока смог вывести "Hello world" занимаясь по видео, тоже прифигел если так можно выразиться, на сколько это не легко! Но это очень круто... чувство было лучше чем от обычного echo или print в языках высокого уровня.
Вот к примеру возьмём Досовую функцию вывода строки до знака доллар. Разве не интересно, что она делает?
источник

sl

skavy lastname in Ассемблер
楽園松本
Вот к примеру возьмём Досовую функцию вывода строки до знака доллар. Разве не интересно, что она делает?
Интересно. надо разбираться)
источник

楽園松本 in Ассемблер
Логика подсказывает, что она последовательно вызывает несколько раз функцию BIOS "вывести символ" и "сдвинуть курсор".
источник