русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Запись программ на языке ассемблера


Дата добавления: 2014-10-07; просмотров: 2357; Нарушение авторских прав


Ниже приведена типичная структура простой программы на ассемблере.

.data ;директива начала сегмента данных

· d1 dw 34h

· d2 db 10100110b

· d3 dd 3 dup (?)

.code

start: mov ax,data ; Загрузить адрес

mov ds,ax ; сегмента данных

.

. ; текст программы

quit: mov ax,4c00h ; Код завершения 0

int 21h ; Выход в DOS

end start

Загрузка адреса сегмента данных состоит из двух команд, так как непосредственные данные нельзя заносить прямо в сегментный регистр.

Для завершения программы и выхода в DOS имеется несколько возможностей, рекомендуется использовать две команды, начинающиеся с метки quit.

Пример записи формулы

Вычислить Х = 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 в Х

Ниже приведена типичная структура простой программы на ассемблере.

Текст программы:

.model small

.data

· a dw 10

· b dw 20

· c dw 5

· x dw ?

.stack 100h

. code

· 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

· 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. Х= - (5 – (С + 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

Оператор получения смещения выражения offset позволяет получить значение смещения выражения в байтах относительно начала того сегмента, в котором выражение пределено

Data



<== предыдущая лекция | следующая лекция ==>
Инструкции пересылки данных и двоичной арифметики | Безусловные переходы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.979 сек.