Как использовать Паскаль с ассемблером

Главная / Ассемблер / Ассемблер и языки высокого уровня /

Лучшие книги по Ассемблеру Лучшие книги по Ассемблеру

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

Несмотря на то, что сегодня на практике ассемблер используется редко, он всё равно привлекает к себе внимание начинающих программистов. Потому что это интересно и это круто (не каждый может разобраться в ассемблере).

Однако при изучении ассемблера новички сталкиваются с множеством проблем. И одна из этих проблем - как проверить код на ассемблере?

Ведь современные операционные системы отказываются выполнять программы, написанные для 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.

Ну и чтобы убедиться в том, что всё отработало правильно, нам надо вывести результат на экран. На ассемблере это тоже было бы довольно утомительно. Поэтому для вывода мы использовали язык высокого уровня.

Ну вот как-то так. Согласитесь, что такая работа с ассемблером более приятна и проста, чем утомительный набор кучи инструкций лишь для того, чтобы получить от пользователя какие-то данные и вывести их потом на экран.

На этом всё. Подписывайтесь на новости (ссылки внизу), чтобы ничего не пропустить.



Первые шаги в программирование Первые шаги в программирование

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su