Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2020-11-19 | 118 |
5.00
из
|
Заказать работу |
|
|
Рассмотрим ассемблерные команды, которые находят применение при решении задач системного программирования. При описании команд использованы условные обозначения:
· R — регистр процессора.
· A — адрес ячейки оперативной памяти или число.
Команды пересылки данных
MOV – запись числа в регистр или ячейку памяти.
MOV R1,R2;R1=R2
MOV R,A;R=A
MOV [R],A;Запись в ячейку памяти значения
MOV R,[R];Сохранения из памяти значения
Подробно эта команда обсуждалась при рассмотрении правил задания кодов данных в ассемблерной программе.
MOVSB – пересылка байтов в оперативной памяти, для работы команды настраиваются регистры процессора:
ESI – адрес источника байтов.
EDI – адрес приемника байтов.
ECX= n – количество пересылаемых байтов.
Для пересылки n байтов команда снабжается префиксом REP. Перед вызовом команды обычно используют команду CLD. Команда сбрасывает флаг регистра флагов направления DF для пересылки байтов в порядке возрастания их адресов в буфере.
Если байты буфера пересылаются в порядке убывания адресов, значение DF = 1. Для установки флага используется команда STD.
Таким образом, при значении DF=0, после завершения пересылки байтов регистры ESI и EDI будут хранить адрес следующей ячейки памяти буфера источника и буфера приемника.
При DF=1 эти регистры хранят адрес ячейки памяти, которая находится п еред ячейкой буфера источника и приемника.
Упражнение 6.1. В сегменте данных задана строка “ABCDEFG”, которая хранится по адресу msg и буфер buf размером 128 байтов. Каждый байт буфера хранить код LF. Требуется переслать символы строки в буфер.
Тогда команды пересылки байтов строки в буфер примут вид:
mov esi,msg;ESI > msg
mov edi,buf;EDI > buf
mov ecx,msg_size; Число байтов
|
cld;DF = 0
rep movsb;Переслать все байты
Составьте программу, которая выводит исходную строку до пересылки на экран терминала и содержание буфера, после завершения пересылки кодов.
Занесение кодов в стек
PUSH R – запись числа в стек.
POP R – извлечение числа из стека.
При работе со стеком необходимо иметь в виду, в стек можно записывать значение регистра целиком, либо его младшую часть.
Так правильные команды занесения значения регистра EAX примут вид:
push eax
push ax
Следующие команды недопустимы:
push al
push ah
Команда позволяет записывать в стек значения по адресу из оперативной памяти.
Пример. В сегменте данных заданы два адреса:
addr1 dw 1234h
addr2 dd 890fh
Тогда будут допустимы такие команды
push [addr1]
push [addr2]
Следует помнить, что в операциях со стеком могут использоваться только операнды размером с машинное слово (word) и размером в двойное машинное слово (dword)
Для команды POP справедливы те же правила. Так верными будут команды:
pop ebx
pop bx
Команда:
pop bl
недопустима.
Команда обмена значений в регистрах
Формат команды:
XCHG R1, R2
R1 получает значение R2, а R2 получает значение из регистра R1.
Пример. Обмен значение регистров AX и BX
xchg ax,bx
Команды передачи управления
JMP label – безусловный переход.
Данная команда позволяет передать управление команде, которая находиться в том же сегменте, что и команда JMP. В команде label — метка (адрес) команды, которая получает управление.
Пример. Схема передачи управления:
jmp fin
;Команды программы
…...................
;Завершение работы программы
fin:
mov eax,1
mov ebx,0
int 0x80
В ассемблерной программе, адрес команды, на которую передается управление, должен заканчиваться символом двоеточие.
Для выполнения определенного участка программа несколько раз используется команда LOOP.
Формат команды:
LOOP label – циклическое выполнение команд. Первая команда блока команд помечается меткой label. Количество повторений цикла - итераций заносится в регистр ECX:
Пример. Организация цикла на 70 итераций:
|
mov ECX,70
go:
;Команды
loop go
Каждое выполнение команды LOOP уменьшает значение регистра ECX на единицу. Обработка будет прекращена, когда в ECX будет находиться значение равное нолю.
Общее число возможных итераций цикла равно 232. Допускается использовать не весь регистр для задания счетчика итераций.
Так число итераций можно записать в младшую часть регистра CX или в одну из частей CH или CL. При этом будет меняться число возможных итераций цикла.
|
|
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!