MS-DOS и TASM 2.0. Часть 18. Ещё раз об указателе.

Указатель в программировании.

В статье MS-DOS и TASM 2.0. Часть 9. Указатель просто и понятно было рассмотрено, что такое указатель в программировании (pointer). Сейчас мы перейдём к вопросу практического использования указателя. Ещё раз напомним, что указатель в ассемблере — более широкое понятие, чем в Си и С++, где указатель определён как переменная, значением которой является адрес ячейки памяти. Указатель — не только переменная. Указатель в программировании на ассемблере — адрес определённой ячейки памяти. Жёсткой привязки к понятию «переменной» нет.

Преимущество указателя — простая возможность обращаться к определённой части исполняемого кода либо данных, избегая их дублирования. Например, один раз написав код функции, мы можем обращаться к нему неоднократно, осуществляя вызов указанной функции. Кстати, вызов функции — это переход исполнения кода по указателю, который для удобства «обозвали» понятным для человека названием (ну, например, «MyBestFunc»). Читать далее «MS-DOS и TASM 2.0. Часть 18. Ещё раз об указателе.»

MS-DOS и TASM 2.0. Часть 15. Упрощаем вызов функции в TASM.

Макрос — макрокоманда, макроопределение.

У большинства популярных ассемблеров (TASM, MASM, FASM), имеется определённая «вкусность», которая помогает писать более читабельный и понятный код, а также уменьшает вероятность ошибок. Мы имеем ввиду макросы. Макрос — миникод, который определяет алгоритм действий основных команд ассемблера. Этот код либо уже создан и входит в комплект ассемблера, либо пишется пользователем самостоятельно. В данной статье мы выясним, как использовать макрос функции (процедуры), встроенный в TASM. Читать далее «MS-DOS и TASM 2.0. Часть 15. Упрощаем вызов функции в TASM.»

MS-DOS и TASM 2.0. Часть 14. Конвенции вызова функции.

Параметры функции.

Функции в ассемблере — это часть кода, которая решает конкретную задачу или несколько, объединённых одной целью задач. Функция может вызываться без дополнительного дублирования кода. Человек способен помнить, воспринимать  и использовать ограниченное число информации. Для облегчения понимания и создания кода его структурируют — дробят на определенные части. Читать далее «MS-DOS и TASM 2.0. Часть 14. Конвенции вызова функции.»

MS-DOS и TASM 2.0. Часть 13. Стек.

Стек в ассемблере.

Работа процедур тесно связана со стеком. Стеком называется область программы для временного хранения данных. Стек в ассемблере работает по правилу «Первым зашёл — последним вышел, последним зашёл — первым вышел». В любой период времени в стеке доступен только первый элемент, то есть элемент, загруженный в стек последним. Выгрузка из стека верхнего элемента делает доступным следующий элемент. Это напоминает ящик, в который поочерёдно ложатся книги. Чтобы получить доступ к книге, которую положили первой, необходимо достать поочерёдно все книги, лежащие сверху. Читать далее «MS-DOS и TASM 2.0. Часть 13. Стек.»

MS-DOS и TASM 2.0. Часть 12. Процедуры (функции).

Процедуры в ассемблере.

Процедуры в ассемблере будут рассмотрены в четырёх статьях, в которых мы изучим общие понятия и определения процедур, использование стека для передачи параметров,  а также использование прерываний DOS — как разновидности функций ядра операционки (статьи 15-19: «Процедуры (функции)», «Стек», «Конвенции вызова функции», «Упрощаем вызов функции в TASM», «Прерывания DOS»).

Читать далее «MS-DOS и TASM 2.0. Часть 12. Процедуры (функции).»

MS-DOS и TASM 2.0. Часть 11. Turbo Debugger.

Отладчик ассемблера Turbo Debugger.

Применим усвоенные понятия на практике — прогоним нашу крохотную программу prg.com через отладчик ассемблера Turbo Debugger  (TD). Именноо TD мы будем использовать в изучении 16 битного ассемблера. Для 32 и 64 битного программирования имеется свое програмное обеспечение. Вместе с тем, для своих целей Turbo Debugger очень хорош. Работать с программой просто и понятно — ничего лишнего — то, что нужно для начинающих.

Читать далее «MS-DOS и TASM 2.0. Часть 11. Turbo Debugger.»

MS-DOS и TASM 2.0. Часть 9. Указатель.

Понятие указателя.

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

Процессор работает с памятью. Минимально возможное значение памяти — 1 бит (bit). Память воспринимается машиной блочно. Один минимальный блок равен одному байту (byte), 1 байт = 8 бит (bit — минимальная адресуемая единица памяти).

Читать далее «MS-DOS и TASM 2.0. Часть 9. Указатель.»

MS-DOS и TASM 2.0. Часть 8. Регистры.

Регистры процессора.

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

Читать далее «MS-DOS и TASM 2.0. Часть 8. Регистры.»

MS-DOS и TASM 2.0. Часть 7. Данные.

Данные в ассемблере.

Данные в ассемблере — понятие широкое. Программу в целом можно воспринимать как одну большую совокупность данных, однако мы уже знаем и помним, что она состоит из данных и кода — набора команд, необходимых для обработки данных.

Читать далее «MS-DOS и TASM 2.0. Часть 7. Данные.»

MS-DOS и TASM 2.0. Часть 6. Системы счисления.

Три системы счисления.

Практическое программирование на ассемблере требует понимания системы счисления. Систем счисления существует бесконечное множество. Наиболее знакомая для нас — десятичная система счисления. Римская нумерация циферблата часов демонстрирует нам двенадцатеричную систему счисления. Программистам на ассемблере необходимо освоить три системы счисления : десятичную, двоичную и шестнадцатеричную.

Читать далее «MS-DOS и TASM 2.0. Часть 6. Системы счисления.»