- •Команды языка ассемблера
- •3.2.1 Программные сегменты. Директива assume
- •6. Арифметические команды ……………………………………………….
- •Архитектура пк.
- •Регистры.
- •Регистры общего назначения.
- •1.1.2. Сегментные регистры
- •1.1.3 Регистр флагов
- •Организация памяти.
- •1.3. Представление данных
- •1.3.1 Типы данных
- •1.3.2 Представление символов и строк
- •Операторы программы на ассемблере
- •2.1 Команды языка ассемблера
- •2.2. Режимы адресации и форматы машинных команд
- •3. Псевдооператоры
- •3.1 Директивы определения данных
- •3.2 Структура программы на ассемблере
- •3.2.1 Программные сегменты. Директива assume
- •Начальная загрузка сегментных регистров
- •Упрощенная директива сегментации
- •4. Ассемблирование и компоновка программы.
- •5. Команды пересылки данных
- •5.1 Команды общего назначения
- •5.2 Команды работы со стеком
- •4.3 Команды ввода-вывода
- •5.4 Команды пересылки адреса
- •5.5 Команды пересылки флагов
- •6. Арифметические команды
- •Арифметические операции над целыми двоичными числами.
- •6.1.1 Сложение и вычитание.
- •6.1.2 Команды приращения и уменьшения приемника на единицу
- •6.2 Умножение и деление.
- •6.3 Изменение знака.
- •7. Логические операции
- •8. Сдвиги и циклические сдвиги
- •9. Строковые операции
- •10. Логика и организация программ
- •10.1 Безусловные переходы
- •10.2 Условные переходы
- •10.3 Циклы
- •10.4 Процедуры в языке ассемблера
- •10.5 Прерывания int
- •10.6 Системное программное обеспечение
- •10.6.1.1 Чтение клавиатуры.
- •10.6.1.2 Вывод символов на экран.
- •10.6.1.3 Завершение программ.
- •10.6.2.1 Выбор режимов дисплея.
- •11. Дисковая память
- •11.1 Оглавление диска (каталог)
- •11.2 Таблица распределения файлов
- •11.3 Операции ввода-вывода на диск
- •11.3.1 Запись файла на диск
- •11.3.1.1 Данные в формате asciiz
- •11.3.1.2 Файловый номер
- •11.3.1.3 Создание дискового файла
- •Чтение дискового файла
4. Ассемблирование и компоновка программы.
Программа на ассемблере вводится с помощью текстового редактора. После ввода текста программы сохраните ее с расширением .ASM. Для выполнения программы, ее необходимо преобразовать в выполнимую форму. Это требует двух дополнительных шагов, ассемблирование и компановку.
Ассемблирование переводит команды исходной программы в промежуточную форму, называемую объектным модулем, а шаг компоновки объединяет один или более объектных модулей в выполнимую программу.
Чтобы ассемблировать программу PROG.ASM наберите
TASM PROG
Если не указать другого имени файла, PROG.ASM будет ассемблироваться в PROG.OBJ. (Заметим, что не требуется набирать расширение имени файла; Турбо-Ассемблер добавляет .ASM сам). На экране появится
Turbo Assembler version 1.0 Copyright (C) 1988 by Borland
International, Inc.
Assembling file: prog.asm
Error messages: none
Warning messages: none
Если в программе содержатся ошибки, они появятся на экране вместе с номером строки, в которой найдена эта ошибка. После исправления ошибок отассемблируйте программу снова.
Если в результате ассемблирования не обнаружено ошибок, то следующий шаг – компоновка объектного модуля. Для компоновки программы используйте TLINK, набрав
TLINK PROG
Не нужно вводить расширение имени, TLINK добавит .OBJ сам. Когда компоновка завершится редактор автоматически создаст .EXE файл с тем же именем, что и имя объектного файла, если Вы не укажете другого. На экране появится сообщение:
Turbo Linker version 2.0 Copyright (C) 1987, 1988 by Borland
International Inc.
Для отладки программы можно использовать программу TD – турбо-debuger, которая обеспечивает пошаговую трассировку и просмотр значений регистров, стека и оперативной памяти.
5. Команды пересылки данных
Команды пересылки данных осуществляют обмен данными и адресами между ячейками памяти и регистрами или портами ввода-вывода. Эти команды разделены на четыре группы: команды общего назначения, команды ввода-вывода, команды пересылки адресов и команды пересылки флагов.
5.1 Команды общего назначения
Основная команда общего назначения MOV (MOVe – переслать) может переслать байт или слово между регистром и ячейкой памяти или между двумя регистрами. Она может также переслать непосредственно адресуемое значение в регистр или ячейку памяти.
Команда MOV имеет следующий формат:
MOV приемник,источник.
Примеры с использованием команды MOV рассматривались в главе 2.2.
Отметим лишь исключающие сочетания операндов в команде MOV:
1. Нельзя осуществлять пересылку данных из одной ячейки памяти в другую. Чтобы выполнить такую пересылку, данные источника надо загрузить в регистр общего назначения, а затем содержимое регистра в приемник. Например,
MOV AX,TAB1 ; пересылает данные из ячейки TAB1
MOV TAB2,AX ; в ячейку TAB2
2. Нельзя загрузить непосредственно адресуемый операнд в регистр сегмента. Например, инициализировать сегмент данных (DATAS):
MOV AX,DATAS
MOV DS,AX.
3. Нельзя непосредственно переслать значение одного регистра сегмента в другой. Пересылку нужно делать через регистр общего назначения.
-
Нельзя использовать регистр CS в качестве приемника.