Язык ассемблера для IBM PC

Автор(ы):Нортон П., Соухэ Д.
27.03.2013
Год изд.:1992
Описание: Книга предназначена для читателей-программистов, желающих изучить язык ассемблер и возможности микропроцессоров 8088 с целью написания более мощных, быстрых и коротких программ. "Гроссмейстер" программирования Питер Нортон делится своим богатым опытом с читателями. Книга существенно расширяет кругозор пользователей IBM PC. К тому времени, как вы закончите чтение этой книги, вы будете знать, как создавать полноценные программы на языке ассемблера: редакторы текста, утилиты, и т. д Вы познакомитесь с техническими приемами профессиональных программистов, облегчающих процедуру написания программ. Будут рассмотрены модульное конструирование программ ("modular design") и их пошаговое усовершенствование ("stepwise refinement"), которые наверняка удвоят вашу скорость программирования, а также помогут вам писать легко читаемые и более надежные программы.
Оглавление:
Язык ассемблера для IBM PC — обложка книги.
Почему именно Ассемблер? [3]
Dskpatch [5]
Требования к конфигурации компьютера [5]
Организация этой книги [5]
Часть I. Язык машины
  Глава 1. DEBUG и арифметика
    Шестнадцатеричные числа [7]
    Debug [8]
    Шестнадцатеричная арифметика [9]
    Перевод шестнадцатеричных чисел в десятичную форму [11]
    Пятизначные шестнадцатеричные числа [15]
    Перевод десятичных чисел в шестнадцатеричную форму [15]
    Отрицательные числа [17]
    Биты, байты, слова и двоичная система счисления [19]
    Дополнительный код - особый тип отрицательного числа [21]
    Итог [22]
  Глава 2. Арифметика микропроцессора [8088]
    Регистры как переменные [24]
    Память и микропроцессор 8088 [26]
    Сложение, метод микропроцессора 8088 [28]
    Вычитание, метод микропроцессора 8088 [31]
    Отрицательные числа в микропроцессоре 8088 [31]
    Байты в микропроцессоре 8088 [32]
    Умножение и деление, метод микропроцессора 8088 [33]
    Итог [35]
  Глава 3. Вывод символов на экран
    INT - мощное прерывание [36]
    Грациозный выход - INT 20h [39]
    Программа из двух строк - соединение частей вместе [40]
    Ввод программ [41]
    Использование команды MOV для пересылки данных между регистрами [42]
    Вывод на экран строки символов [45]
    Итог [47]
  Глава 4. Вывод на экран двоичных чисел
    Циклический сдвиг и флаг переноса [48]
    Сложение с использованием флага переноса [50]
    Организация циклов [51]
    Вывод на экран двоичного числа [54]
    Команда обхода [56]
    Итог [57]
  Глава 5. Вывод на экран чисел в шестнадцатеричной форме
    Операция сравнения и биты состояния [58]
    Вывод на экран одной шестнадцатеричной цифры [61]
    Еще одна инструкция сдвига [64]
    Логика и AND [66]
    Сборка всех частей программы вместе [68]
    Итог [69]
  Глава 6. Ввод символов с клавиатуры
    Ввод одного символа [69]
    Считывание шестнадцатеричного числа, состоящего из одной цифры [71]
    Считывание двузначного шестнадцатеричного числа [72]
    Итог [73]
  Глава 7. Процедуры - двоюродные сестры подпрограмм
    Процедуры [73]
    Стек и адрес возврата [75]
    Использование инструкций PUSH и POP [77]
    Более простой способ считывания шестнадцатеричных чисел [79]
    Итог [81]
ЧАСТЬ II. Язык ассемблера
  Глава 8. Добро пожаловать в ассемблер!
    Создание программы без использования Debug [83]
    Создание исходных файлов [86]
    Компоновка [87]
    Обратно в Debug [89]
    Комментарии [89]
    Метки [90]
    Итог [92]
  Глава 9. Ассемблер и процедуры
    Процедуры ассемблера [93]
    Процедуры, выводящие на экран шестнадцатеричные числа [97]
    Начала модульного конструирования программ [100]
    Структура программы [101]
    Итог [102]
  Глава 10. Вывод на экран десятичных чисел
    Вспоминаем перевод чисел [103]
    Некоторые трюки [106]
    Внутренняя работа [107]
    Итог [109]
  Глава 11. Сегменты
    Секционирование памяти микропроцессором 8088 [110]
    Псевдооператоры сегментов [117]
    Псевдооператор ASSUME [118]
    "Близкие" и "дальние" вызовы процедур [119]
    Подробнее об инструкции INT [122]
    Вектора прерываниий [124]
    Итог [125]
  Глава 12. Коррекция курса
    Дискеты, сектора и Dskpatch [126]
    План игры [128]
    Итог [130]
  Глава 13. Модульное конструирование
    Раздельное ассемблирование [131]
    Три Закона Модульного Конструирования [134]
    Итог [139]
  Глава 14. Дампирование памяти
    Режимы адресации [140]
    Добавление в дамп символов [146]
    Дампирование 256 байт памяти [148]
    Итог [153]
  Глава 15. Дампирование сектора диска
    Облегчение жизни [154]
    Формат файла для Make [155]
    "Починка" Disp_sec [156]
    Считывание сектора [158]
    Итог [162]
  Глава 16. Улучшение изображения сектора
    Добавление графических символов [163]
    Добавление к изображению адресов [165]
    Добавление горизонтальных линий [168]
    Добавление к изображению чисел [174]
    Итог [176]
Часть III. ROM BIOS IBM PC
  Глава 17. Подпрограммы ROM BIOS
    VIDEO-IO, подпрограммы ROM BIOS [177]
    Движение курсора [182]
    Применение изменяемых переменных. 184
    Построение заголовка [188]
    Итог [191]
  Глава 18. Окончательный вариант WRITE_CHAR
    Новая процедура WRITE-CHAR [193]
    Стирание до конца строки [196]
    Итог [198]
  Глава 19. Диспетчер
    Dispatcher [199]
    Считывание других секторов [206]
    Философия следующих глав [209]
  Глава 20. Вызов программистам
    Псевдокурсор [210]
    Простейшее редактирование [212]
    Другие изменения и дополнения к Dskpatch [212]
  Глава 21. Псевдокурсоры
    Изменение атрибута символа [220]
    Итог [221]
  Глава 22. Простейшее редактирование
    Перемещение псевдокурсоров [222]
    Простейшее редактирование [226]
    Итог [230]
  Глава 23. Шестнадцатеричный и десятичный ввод
    Шестнадцатеричный ввод [231]
    Десятичный ввод [240]
    Итог [243]
  Глава 24. Улучшенный ввод с клавиатуры
    Новая процедура READ_STRING [244]
  Глава 25. В поисках ошибок
    Исправление DISPATCHER [252]
    Итог [254]
  Глава 26. Запись модифицированных секторов на диск
    Запись на диск [255]
    Некоторые приемы отладки [257]
    Построение карты загрузки [258]
    Трассировка ошибок [261]
    Symdeb [263]
    Символьная отладка [263]
    Экранный свопинг [264]
    Итог [266]
  Глава 27. Другая половина сектора
    Скроллинг половины сектора [267]
    Итог [270]
ЧАСТЬ IV. Дополнение к сказанному
  Глава 28. Перемещение
    Программы, состоящие из нескольких сегментов [271]
    Перемещение [276]
    .СОМ-программы в сравнении сЕХЕ-программами [280]
  Глава 29. Подробнее о сегментах и ASSUME
    Переприсвоение сегментов [283]
    Еще один взгляд на ASSUME [285]
    Фазовые ошибки [286]
Послесловие [287]
Приложение А. Руководство по диску
  Примеры к главам [289]
  Улучшенная версия Dskpatch [290]
Приложение В. Листинг DSKPATCH
  Описание процедур [295]
  CURSOR.ASM [295]
  DISK_IO.ASM [295]
  DISPATCH.ASM [296]
  DISP_SEC.ASM [296]
  DSKPATCH.ASM [296]
  EDITOR.ASM [296]
  KBDJO.ASM [297]
  PHANTOM.ASM [297]
  VIDEO_IO.ASM [299]
  Листинг процедур Dskpatch [300]
  DSKPATCH Make File [300]
  CURSOR.ASM [300]
  DISK_IO.ASM [303]
  DISPATCH.ASM [306]
  DISP_SEC.ASM [308]
  DSKPATCH.ASM [312]
  EDITOR.ASM. [314]
  KBD_IO.ASM. [316]
  PHANTOM.ASM [323]
  VIDEO_IO.ASM [329]
Приложение С
  Порядок загрузки сегментов [336]
  Фазовые ошибки трансляции [339]
  Сообщение "File Cannot be Converted" [341]
Приложение D. Сообщения об ошибках
  MASM [343]
  LINK [344]
  EXE2BIN [345]
Формат: djvu
Размер:4252478 байт
Язык:РУС
Рейтинг: 322 Рейтинг
Открыть: