Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2017-11-17 | 344 |
5.00
из
|
Заказать работу |
|
|
Команды данной группы приведены в таблице 2.1. Код определяет выполняемое командой действие, операнды показывают адреса ячеек, хранящих исходные данные, необходимые для выполнения команды и адрес ячейки результата. Процессор i8086 и более поздние версии относятся к двухадресным машинам. Это значит, что его команда может содержать не более двух операндов. Если для выполнения команды необходимо иметь два источника данных, например, сложение, то сохранение результата выполнения команды производиться по адресу одного из источников данных. Чтобы показать, какой из операндов будет хранить результат, его обозначают при описании команды как dst (destination - назначение), операнд, который используется только как адрес исходных данных, обозначается как src (source – источник). В двухоперандных командах операнд dst указывает, перед выполнением команды, адрес исходного данного, а после выполнения - адрес результата.
Таблица 2.2 | ||||||||
Команды пересылки и двоичной арифметики | ||||||||
Мнемокод | Флаги | Действие | ||||||
Код | Операнды | O | S | Z | A | P | C | |
mov | dst, src. | - | - | - | - | - | - | пересылка |
хchg | dst, src | - | - | - | - | - | - | обмен |
add | dst, src | х | х | х | х | х | х | сложение |
adc | dst, src | х | х | х | х | х | х | сложение с переносом |
inc | dst | х | х | х | х | х | - | увеличить на единицу |
sub | dst, src | х | х | х | х | х | х | вычитание |
sbb | dst, src | х | х | х | х | х | х | вычитание с заемом |
dec | dst | х | х | х | х | х | - | уменьшение на единицу |
neg | dst | х | х | х | х | х | х | изменение знака |
rcl | dst,счетчик | х | - | - | - | - | х | циклический сдвиг влево |
rcr | dst,счетчик | х | - | - | - | - | х | циклический сдвиг вправо |
rol | dst,счетчик | х | - | - | - | - | х | циклический сдвиг влево |
ror | dst,счетчик | х | - | - | - | - | х | циклический сдвиг вправо |
sal | dst,счетчик | х | х | х | u | х | х | арифметический сдвиг влево |
sar | dst,счетчик | х | х | х | u | х | х | арифметический сдвиг вправо |
shl | dst,счетчик | х | х | х | u | х | х | логический сдвиг влево |
shp | dst,счетчик | х | х | х | u | х | х | логический сдвиг вправо |
push | src | - | - | - | - | - | - | сохранение слова в стеке |
pop | dst | - | - | - | - | - | - | восстановление слова из стека |
xlat | таблица | - | - | - | - | - | - | трансляция байтов из таблицы |
lea | dst, src | - | - | - | - | - | - | загрузка исполнительного адреса |
lds | dst, src | - | - | - | - | - | - | загрузка указателя с DS |
les | dst, src | - | - | - | - | - | - | загрузка указателя с ES |
lahf | - | - | - | - | - | - | загрузка флагов в АН | |
sahf | - | r | r | r | r | r | установка флагов из АН | |
pushf | х | - | - | - | - | х | сохранение флагов в стеке | |
popf | r | r | r | r | r | r | восстановление флагов из стека |
Примечание: | |
- | Флажок не модифицируется |
х | Устанавливается или сбрасывается в соответствии с результатом; |
u | Не определен; |
r | Восстанавливается прежнее запомненное значение. |
|
Запись программ на языке ассемблера
Ниже приведена типичная структура простой программы на ассемблере.
data segment;директива начала сегмента данных
d1 dw 34h
d2 db 10100110b
d3 dd 3 dup (?)
data ends; директива конца сегмента данных
code segment; директива начала сегмента кодов
assume cs: code, ds: data
start: mov ax,data; Загрузить адрес
mov ds,ax; сегмента данных
.
.; текст программы
quit: mov ax,4c00h; Код завершения 0
int 21h; Выход в DOS
code ends
end start
Загрузка адреса сегмента данных состоит из двух команд, так как непосредственные данные нельзя заносить прямо в сегментный регистр.
Для завершения программы и выхода в DOS имеется несколько возможностей, рекомендуется использовать две команды, начинающиеся с метки quit.
Обработка программ в MS-DOS
Обработка программ на языке ассемблера в MS-DOS состоит из следующих этапов:
§ Создать с помощью текстового редактора файл с текстом программы на языке ассемблера.
§ Транслировать программу с помощью ассемблера TASM (или MASM);
§ Скомпоновать программу с помощью компоновщика (редактора связей) TLINK(или LINK).
|
§ Запустить программу на выполнение.
Файл исходного текста программы должен иметь расширение asm.
Запуск транслятора осуществляется командой
tasm <исходный файл >[,[< объектный файл >][,[< файл листинга >][,[< файл перекрестных ссылок >]]]][;]
Все создаваемые транслятором файлы будут иметь разные расширения имени, поэтому им можно оставить имя исходного файла:
tasm <исходный файл >,,,,;
Точка с запятой показывает, какие файлы должен создать транслятор, например, конструкция
tasm <исходный файл >;
создаст только объектный файл.
Расширение объектного файла по умолчанию obj; расширение файла листинга по умолчанию lst; расширение файла перекрестных ссылок по умолчанию crf.
Компоновщик использует, как исходный, объектный файл и создаёт исполняемый файл с расширением по умолчанию exe.
Запуск компоновщика осуществляется командой:
tlink < объектный файл >[,< исполняемый файл >]
В случае сохранения имени исходного файла команда имеет вид:
tlink < объектный файл>
Для запуска под отладчиком необходимо запустить отладчик и загрузить исполняемый файл.
Пример выполнения работы
Вычислить Х = 3А + (В + 5) / 2 - С - 1,
где А, В, С, Х- целые знаковые числа занимающие слово, написать программу реализующую данную формулу.
Распишем формулу по отдельным операциям:
АХ ← А; значение А в регистре АХ
АХ ← 2 *(АХ); 2А в АХ
АХ ← (АХ) + А; 3А в АХ
ВХ ← В; В в ВХ
ВХ ← 5 + (ВХ); В+5 в ВХ
ВХ ← (ВХ) / 2; (В+5) / 2 в ВХ
АХ ← (BX) + (AX); 3А+(В+5) / 2 в АХ
АХ ← (АХ) - С; 3А+(В+5) / 2 - С в АХ
АХ ← (АХ) -1; 3А+(В+5)/2 - С - 1 в АХ
Х ← (АХ); 3А+(В+5)/2 - С - 1 в Х
Ниже приведена типичная структура простой программы на ассемблере.
Текст программы:
data segment
a dw 10
b dw 20
c dw 5
x dw?
data ends
code segment
assume cs: code, ds: data
start: mov ax, data
mov dx, ax; загрузить адрес
mov ax, a; сегмента данных
sal ax, 1
add ax, a
mov bx, b
add bx, 5
sar bx, 1
add ax, bx
sub ax, c
dec ax
mov x, ax; запись результата в память
quit:
mov ax, 4c00h; код завершения 0
int 21; выход в dos
code ends
end start
Варианты заданий
Разработать программу реализующую указанную формулу, исполнить программу с несколькими (три - четыре) наборами исходных данных, проверить правильность результатов.
1. Х= А - 5 (В - 2С) + 2
2. Х= - 4А + (В + С) / 4 + 2
3. Х= 7А - 2В - 100 + С
4. Х= - А / 2 + 4 (В + 1) + 3С
5. Х= 5 (А - В) - 2С + 5
6. Х= (А/ 2 + В) / 4 + С - 1
7. Х= - (С + 2А + 4В + В)
8. Х= 6С + (В - С + 1) / 2
9. Х= 2 - В (А + В) + С / 4
10. Х= 2В - 1 + 4 (А - 3С)
|
11. Х= (2А + В) / 4 - С / 2 + 168
12. Х= 6 (А - 2В + С / 4) + 10
13. Х= 5 (А - В) + С mod 4
14. Х= - (- (С + 2А) * 4В + 38)
15. Х= А - 3 (А + В) + С mod 4
16. Х= 3(А - 2В) +50 – С / 2
17. Х= (3А + 2В) - С / 4 + 217
18. Х= 3(С - 2A) + (В - С + 1) / 2
19. Х= (2А + В) / 4 - С / 2 + 168
20. Х= 6 (А - 2В + С / 4) + 10
21. Х= 3 (А - 4В) + С / 4
22. Х= - (- (С + 2А) * 5В - 27)
23. Х= А / 2 - 3 (А + В) + С * 4
24. Х= 3(А - 2В) +50 – С / 2
25. Х= 5А + 2В - B / 4 + 131
Вопросы по теме
|
|
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!