Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Как использовать Паскаль с ассемблером
Главная / Ассемблер / Ассемблер и языки высокого уровня /
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Несмотря на то, что сегодня на практике ассемблер используется редко, он всё равно привлекает к себе внимание начинающих программистов. Потому что это интересно и это круто (не каждый может разобраться в ассемблере).
Однако при изучении ассемблера новички сталкиваются с множеством проблем. И одна из этих проблем - как проверить код на ассемблере?
Ведь современные операционные системы отказываются выполнять программы, написанные для DOS. А новички создают именно такие программы, потому что это проще.
Здесь есть три подхода:
- Использовать эмуляторы
- Использовать виртуальные операционные системы
- Использовать языки высокого уровня
Однако многие эмуляторы поддерживают не все команды процессора. Виртуальные же операционные системы надо устанавливать, и в них не всегда удобно работать. Поэтому сегодня я расскажу о третьем способе. И сделаю это на примере Паскаля (Lazarus, Delphi).
Как вставить код на ассемблере в Lazarus или Delphi я уже говорил здесь. О том, как вставлять в код функции и процедуры на ассемблере можете почитать здесь. А в этой статье я лишь немного разверну эту тему.
В чём суть? А суть в том, что все рутинные операции вы пишите на языке высокого уровня (например, ввод-вывод данных). А кусок кода на ассемблере используете только для проверки своих знаний или экспериментов. Например, вы изучили, как работает инструкция SUB - отлично. Но надо ведь всё это закрепить на практике! Пожалуйста:
program asmtest; {$ASMMODE INTEL} var x : byte; y : byte; begin Write('X = '); Read(x); Write('Y = '); ReadLn(y); asm MOV AL, x //Поместить значение их Х в AL MOV BL, y //Поместить значение их Х в AL SUB AL, BL //Вычесть BL из AL (y из х) MOV x, AL //Поместить значение из AL в Х end; WriteLn('X - Y = ', x); WriteLn('Press ENTER...'); ReadLn; end.
Здесь мы получили данные от пользователя с помощью языка высокого уровня. На ассемблере это пришлось бы делать довольно долго и нудно. А, поскольку мы экспериментируем с командой SUB, то зачем нам лишние муки?
Потом полученные данные мы передали в код на ассемблере, и там уже сделали то, что хотели - попробовали на практике работу команды SUB.
Ну и чтобы убедиться в том, что всё отработало правильно, нам надо вывести результат на экран. На ассемблере это тоже было бы довольно утомительно. Поэтому для вывода мы использовали язык высокого уровня.
Ну вот как-то так. Согласитесь, что такая работа с ассемблером более приятна и проста, чем утомительный набор кучи инструкций лишь для того, чтобы получить от пользователя какие-то данные и вывести их потом на экран.
На этом всё. Подписывайтесь на новости (ссылки внизу), чтобы ничего не пропустить.
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |