Программа на ассемблере для микропроцессора Intel 8080, предназначенная для разделения слова на части, использует для выполнения операции логического сдвига вправо на четыре бита с последующим разделением 8-битного слова на две четырехбитные части. Так как микропроцессор Intel 8080 не имеет прямой команды для логического сдвига вправо, программа использует серию циклических сдвигов вправо (RRC), каждый из которых сдвигает аккумулятор на один бит вправо с переносом младшего бита в старший.
Программа начинается с загрузки начального значения в аккумулятор из памяти. Затем следует четыре цикла команды RRC для смещения содержимого аккумулятора на четыре позиции вправо. После выполнения сдвигов применяется маска AND, чтобы изолировать младшие четыре бита. Эти данные сохраняются обратно в память. Затем аккумулятор снова загружается начальным значением, маскируется для извлечения старших четырех бит и результат также сохраняется в память.
Таким образом, в результате работы программы исходное 8-битное слово делится на две части: старшие и младшие четыре бита, каждая из которых сохраняется в отдельной ячейке памяти. Это позволяет обрабатывать данные более гибко, например, для дальнейшей обработки в цифровых системах, где важно разделение данных на меньшие блоки.
; Загрузка начального адреса в регистр H
LXI H, 0040H
MOV A, M ; Перемещение содержимого по адресу в аккумулятор
MVI B, 04H ; Установка счетчика сдвигов
LABEL: RRC ; Циклический сдвиг вправо
DCR B ; Декремент счетчика
JNZ LABEL ; Переход, если счетчик не ноль
ANI 0F0H ; Применение маски к аккумулятору
STA 0041H ; Сохранение младших 4 бит в память
MOV A, M ; Повторная загрузка начального значения
ANI 0FH ; Маскирование старших 4 бит
STA 0042H ; Сохранение старших 4 бит в память
HLT ; Остановка выполнения программы
Таблица работы с памятью:
Шестнадцатиричный адрес ячейки памяти | Мнемонический код операции | Шестнадцатиричный код содержимого памяти |
---|---|---|
0040 | LXI H, 0040H | Исходное значение |
0041 | STA 0041H | Младшие 4 бита после операций |
0042 | STA 0042H | Старшие 4 бита после операций |
Эта программа иллюстрирует как реализуется логический сдвиг в микропроцессоре Intel 8080 через комбинацию более простых инструкций, что характерно для ассемблерного программирования на данном процессоре.