Программирование на Ассемблере
проверка флага
bne.s loop1 ;вместо bne sort movem.l (SP)+,D0-D7/A0-A6 ;восстанавливаем регистры
rts ;все! Прежде чем закончить пример с сортировкой, попробуйте самостоятельно
написать программу, сортирующую таблицы в порядке убывания.
То, что в качестве примера приведена сортировка методом \"пузырька\", вовсе
не означает, что этот метод нужно использовать на практике. На самом деле
этот метод является крайне медленным и неэффективным, но он прекрасно
подходит для ознакомления с некоторыми нюансами программирования на
ассемблере. Напомним, что этот раздел книги является вводным, а понять
основы машинного программирования на примере алгоритма быстрой сортировки
(quick sort) было бы, согласитесь, намного труднее.
Сказанное относится и к другим примерам, приведенным в этой книге. 4.3. Перевод систем счисления. Как мы уже упоминали в п.1.2.3, перевод чисел из одной системы счисления в
другую очень часто используется в машинном программировании. Числа, которые
вводятся с клавиатуры или выводятся на экран, представляются в виде строк
символов. Чтобы обрабатывать такие числа, нужно уметь переводить их из
символьного представления в двоичное и обратно. Такой перевод тесно связан
с преобразованиями систем счисления.
Далее мы рассмотрим основные алгоритмы таких преобразований и приведем
соответствующие примеры. Начнем с наиболее простого алгоритма. 4.3.1. Перевод шестнадцатеричных чисел в ASCII-представление. Для начала определим начальные и конечные данные алгоритма. Пусть регистр
D1 содержит 32-битное число, которое должно быть переведено в ASCII-строку
длиной 8 символов (результат будем записывать в память).
Как мы знаем, для перевода двоичного числа в шестнадцатиричное нужно
разбить его на группы по четыре бита. Каждая из полученных групп будет
содержать шестнадцатиричную \"цифру\". Пусть регистр D2 содержит одну из
таких групп, и нам требуется получить ASCII-код соответствующей цифры.
|