ASM ASM ASM / ASM (ASM Comics,ASM Комиксы) :: anon

ASM anon 

ASM ASM ASM

Я учу ассемблер по книге "Ассемблер это просто. Учимся программировать" Калашникова (ТАСМ и МАСМ) , но вот никак не могу компилировать код из книги, походу нужен МС-ДОС. И вот вопрос- нужно ли мне изучать эту книгу, есть ли перспектива? Если нет, то посоветуйте литературу и инструмент.

Вот пример

(01) CSEG segment
(02) org 100h
(03)
(04) Begin:
(05)
(06) mov ah,9
(07) mov dx,offset Message
(08) int 21h
(09)
(10) int 20h
(11)
(12) Message db 'Hello, world!$'
(13) CSEG ends
(14) end Begin

Подробнее
ASM,ASM Comics,ASM Комиксы,anon
Еще на тему
Развернуть
Зависит от цели, которую хочешь достичь. Если просто чтобы ориентироваться в языке - читай Iczelion's Win32 Assembly Tutorials.
anon anon 07.08.201520:50 ответить ссылка -0.1
Я хочу на нем программировать
anon anon 07.08.201521:00 ответить ссылка 0.0
Малоперспективное занятие. Ставь виртуалку, устанавливай МС-ДОС и компилятор. Можно в досбоксе. Но программы для 16-битного ассемблера можно будет запустить только под аналогичной виртуалкой.
Программирование для 32/64-битного ассемблера принципиально отличается тем, что ты фактически для всего будешь использовать средства WinAPI, а их по большому счету, все равно откуда вызывать.
anon anon 07.08.201521:14 ответить ссылка 0.1
Но я смогу на нем создать загрузчик ОС ?
anon anon 07.08.201521:23 ответить ссылка 0.0
Пока да, но не уверен, что это будет возможно уже в ближайшем будущем. Загрузка ОСей будет реализована модулями UEFI или чем-то подобным, которые пишутся на высокоуровневых языках.
Разработку собственной ОСи лучше вести на Си, а загрузчиком пользоваться стандартным - посмотри статьи на хабре,
anon anon 07.08.201521:35 ответить ссылка 0.1
Все относительно, вот как часто приходилось работать в досе ? Нечасто, правда ? С ассемблером похожая ситуация, он вроде как есть, его в какой-то мере используют все программы, но вот программирование на нем, если не нужны специфические функции, по сути бессмысленно. На сегодня, асм может пригодится разве что в штучных либо в особо специфических ситуациях. Если хоцца что-то поучить из программирования, то лучше смотри в сторону С-подобных языков, они более перспективны.
anon anon 07.08.201521:06 ответить ссылка 0.0
Не думаю что загрузчик ОС можно создать на С++ который я знаю.
anon anon 07.08.201521:12 ответить ссылка 0.0
Загрузчик как раз и есть штучный случай, после запуска оси пользователь становится максимально далеким от процессора и чем свежее система тем дальше. Все преимущества прямых команд процу кои использует асм пропадают, так как все они вынуждены идти через ядро операционки и прочие интерпретаторы.
anon anon 07.08.201521:25 ответить ссылка 0.0
По-твоему ОС создают без ассемблера?
anon anon 07.08.201521:28 ответить ссылка 0.0
Опять же это то-же самое, штучный случай, если сравнить количество существующих операционок и программ под них, то операционки составят сущий мизер. Хотя, если ты намерен создать свою операционку с нуля, то могу только искренне пожелать удачи.
anon anon 07.08.201521:51 ответить ссылка 0.0
да, Linux, Windows, *BSD написаны на C/C++. Асма там практически нет.
anon anon 07.08.201522:54 ответить ссылка 0.0
Это как дом и кирпичи. Если тебе нужен дом (программа) ты можешь взять кирпичей (язык программирования высокого уровня) и построить из них дом, но ты будешь ограничен формой/размером/прочностью и тд этих кирпичей, либо же ты можешь делать кирпичи сам (ассемблер), ты ограничен только своей фантазией и кривизной рук, но каждый кирпичик надо делать отдельно, начиная с поисков глины и прочих составляющих и до придания формы и обжига (печку тоже сам строишь, ага).
anon anon 07.08.201521:19 ответить ссылка 0.0
При этом самопальные кирпичи с большой вероятностью будут полным говном по сравнение с обычными.
anon anon 07.08.201522:55 ответить ссылка 0.0
Отвечу сразу на все коменты: рано топик-стартеру в asm. Ведь ассемблер - это не язык программирования, это язык ассемблера - сборщика машинных кодов. Учить в самом языке нечего (если не считать высокоуровневой шелухи макросов) - это всего лишь набор команд для аппаратуры, среды. С этим у топик-стартера явно туго - он не знает, как запустить дос в эмуляторе, чем отличается C++ от C, собирается писать свою операционную систему, начиная с загрузчика. Это всё пройдет, либо совсем, либо появится опыт и знания (правда, писать свою операционку желание отпадёт в любом случае).
Что касается существующих ОС, то нет, они не на ассемблере, и даже их загрузчик не на ассемблере, и чаще всего это даже не их загрузчик, а один из множества стандартных. Ассемблера в загрузчике первые пару байт, где нужно подогнать всё под фиксированные смещения. Дальше идёт прыжок на скомпилированный C-код. С UEFI и этого не надо.
Если есть желание погонять туда-сюда байтики по регистрам - проще всего делать ассемблерные вставки в готовый высокоуровневый код. Нужно понимать при этом, что на современных суперскалярных процессорах быстрее такой код не будет (как минимум у новичка) - современные компиляторы выворачивают код на изнанку именно так, как нужно для оптимально быстрого выполнения.
Если хочется окунуться в мир, где экономили каждый байтик и регистр - http://store.steampowered.com/app/370360 .
Если есть желание развиваться в этом направлении - надо забыть про "литературу" и идти читать тысячи страниц документации от производителей оборудования, того же Intel, к примеру.
Хочется пожевать "говно мамонта" - виртуалку и старый добрый Intlist Ральфа Баруна в зубы.
Ещё стоит "почитать" код в отладчике/дисассемблере - IDA там, HIEW или что другое - в этом и сила знания ассемблера.
Для особых маньяков есть ещё http://kolibrios.org/ и http://www.menuetos.net/ .
anon anon 07.08.201523:12 ответить ссылка 0.7
Я хочу стать сис. программистом- что посоветуешь?
anon anon 08.08.201513:33 ответить ссылка 0.1
Бросить это желание (получают меньше всех денег) и захотеть стать программистом/безопасником/мэнэджэром (тимлидом).
anon anon 08.08.201519:07 ответить ссылка 0.1
Получают меньше всех денег дураки, а хорошему специалисту всегда найдется хорошее место.
anon anon 11.08.201521:43 ответить ссылка 0.0
Чистых системных программистов во всём мире - единицы, я не утрирую. Получают они, как и любые штучные специалисты, дофига, но это ж надо пробиться. Выше пишут про "меньше всех денег" - это, может быть, путают с дедушками на гос-предприятиях, которые сидят на поддержке-допиливании 40-летней давности софта.
К сожалению (кому и к счастью), сейчас полно уже готового, никто не хочет тратить деньги на высокооплачиваемых специалистов - берут готовую сборку, бац-бац и в продакшен. Получается вот такой гротеск: http://www.geektimes.ru/post/251062/ - фактически писюк, настроенный школьником, в космосе. Или можно вспомнить драйвер дисковода от эмулятора компьютерных игр без всякого ревью воткнутый в критическое по безопасности место системы виртуализации KVM.
Что я могу посоветовать - повторюсь - учить тонны матчасти. Разобраться от начала до конца как каждый байтик в компьютере бегает. Это не значит, что нужно тыкнуться в каждый байтик, это значит накопить достаточно знаний, чтоб тыкнуть в любой и (потратив некоторое время, безусловно), определить - что это, и откуда/куда "бежит". Можно пойти в другие архитектуры - микроконтроллеры, например - там объём знаний меньше, но они не так универсальны, как PC-шные.
Далее - не обязательно быть именно "системным программистом" в узком понимании этого термина (собственно, в советское время он имел широкий смысл). При хорошем базовом багаже знаний и желании учиться дальше можно идти в энтерпрайз сисадмины/сетевые админы, откуда можно вырасти и в специалисты по безопасности. Не путать с эникейщиками и "безопасниками" из ментов или просто из выпускников ВУЗов - это отстой. Работа интересная и хорошо оплачиваемая, а, главное - именно то, что нравится, мне по крайней мере. Пришел я когда-то на предприятие, выучившись (больше самостоятельно, чем в ВУЗе) на системного программиста, фаната ассемблера и низкоуровневых фишек. А мне говорят - хорошо, мы тебя берём [в начале интерном, правда тогда это слово только к врачам применялось], но проект ещё не начался, мы тут вот только помещения обживаем, сеть протянули, сервер и дорогущие энтерпрайзные коммутаторы купили, а настроить - некому. Не посмотришь? - Так я и стал админом, не жалею.
Задача та же - копать и копать в глубину архитектуры, потом "программировать", сводить концы с концами, а также отлаживать в случае сбоев. "Программирование" не ограничивается написанием строчек кода сверху вниз (хоть без этого тоже никак - даже Windows Server теперь настраивается через PowerShell - великолепный язык) - всё намного шире и интересней.
Единственное, если что - предупреждаю - наступают облака и количество админов резко сокращается. Сокращается оно снизу - со слабых танцоров с бубном. Я надеюсь, что запрос на профессионалов всё равно будет. Но если сейчас начинать всё с нуля - можно попасть в ловушку - "верхние" места заняты олдфагами, а на рынке интересных и перспективных "нижних" мест (где можно расти в знаниях - это должен быть главный критерий выбора работы) не протолкнуться. Но тут уж "как потопаешь, так и полопаешь"(с) светлой памяти В.И. Новодворская.
И ещё - переход в менеджеры - это уход с любимой работы в задницу дрязг и интриг. При этом архитектор/CTO может продолжать быть админом. Тут нужно очень хорошо видеть грань. Организовывать джуниоров - это нормально, это часть работы сеньёра. Лезть выше, думать, что можно совместить - не советую. Я три года так совмещал - на любимое дело оставалось всё меньше и меньше времени. И это при том, что бумажками (кроме проектов) не я занимался.
И последнее - избегать как огня "шаманизма с бубном". Нужно вырастить в себе инженера в советском понимании слова (я не фанат совка, просто ещё застал этих великолепных специалистов - не столько даже в объёме знаний - с этим в совке было туго - негде было брать информацию, сколько в грамотном подходе). Метод индукции, а не пляски с бубном. Никаких "маздайка глючит" и "ничего не работает". Компьютер - конечный автомат.

Тяжело отвечать в аноне, если что - коммент 07.Aug.2015 16:12 - мой.
anon anon 08.08.201520:36 ответить ссылка 0.1
DosBox с Volkov Commander / Norton commander. В папку для игр копируешь компилятор. В ДосБоксе появляется папка C:\MASM. Я когда-то для заданий института и Turbo C так запускал. Там рисовал кораблики библиотекой EGAVGA
anon anon 09.08.201522:23 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
¿у *БДЫЩ!*
41 О
Наконец-то! 
Bochs for Windows - Display
_ □
Not a command or executable file.
CTRL + 3rd button enables mouse IPS: 48,590M
NUM CAPS SCRL HD:0-IV UHCI
подробнее»

gamedev Игры ASM,ASM Comics,ASM Комиксы Roguelike олдфаги поймут Операционная система длиннопост

 Bochs for Windows - Display _ □ Not a command or executable file. CTRL + 3rd button enables mouse IPS: 48,590M NUM CAPS SCRL HD:0-IV UHCI
goto? Чувак, ты реально динозавр!
Да я сам офигел! Да это не вся проблема : где можно использовать простой switch case использует else if, непонятные переменные, ни единого коммента и блин глобальные переменные! И посмотри на его комп: сраный Macintosh 128К!
Точно сказал, чувак!
I
Чего вы меня
подробнее»

ASM,ASM Comics,ASM Комиксы Смешные комиксы,веб-комиксы с юмором и их переводы программирование

goto? Чувак, ты реально динозавр! Да я сам офигел! Да это не вся проблема : где можно использовать простой switch case использует else if, непонятные переменные, ни единого коммента и блин глобальные переменные! И посмотри на его комп: сраный Macintosh 128К! Точно сказал, чувак! I Чего вы меня
Программа почти закончена.
Но к счастью у нас есть ЦЕМЕНТ! ( ассемблер)
/
Ассемблер может все, но понемножку.
I
подробнее»

assembly ASM,ASM Comics,ASM Комиксы песочница

Программа почти закончена. Но к счастью у нас есть ЦЕМЕНТ! ( ассемблер) / Ассемблер может все, но понемножку. I