Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Типы данных и описание данных





Основной тип данных микропроцессоров 8086-80286 – целый 16-ти разрядный, возможна также обработка 8-ми разрядных данных. В 32-х разрядных микропроцессорах семейства x86 основной тип данных – целый 32-х разрядный, но возможно использование также “наследственных” типов:

8-ми и 16-ти разрядных целых.

Обычно данные в программе на языке ассемблера описываются в сегменте данных, но учитывая, что сегменты по типам не различаются в реальном режиме, то возможно описание данных в сегментах кода и стека. Такой подход используется в DOS-программах формата COM, который

предполагает использование только одного сегмента.

При описании данных и их типов (размеров) используются следующие директивы:

db – байт (8 разрядов);

dw – слово (16 разрядов);

dd – двойное слово (32 разряда);

dq – учетверенное слово (64 разряда);

dt – 10 байт (80 разрядов).

Тип db также используется для описания символов и строк в кодировке ASCII. Типы dd, dq и dt также используются для описания чисел с плавающей точкой математического сопроцессора илиFPU.

Для резервирования некоторого количества памяти используется директива dup.

Целочисленные данные могут иметь суффикс, указывающий на систему счисления. А именно:

b – двоичное целое число;

o или q – восьмеричное целое число;

d – десятичное целое число (по умолчанию);

h – шестнадцатиричное целое число.

Шестнадцатиричная система кроме своего прямого назначения также используется для записи целых чисел в форматах BCD и ASCII.

Пример описания данных

X db 11110000b

Y dw 0FFFFh

Z dd 100

A db 30h; нуль в ASCII формате

B dw 0105h; число 15 в неупакованном BCD формате

str db 'Hello!'

Array dd 0, 2, 4, 6; массив чисел

Buffer db 256 dup (0); зарезервировано 256 байт

Команды пересылки и загрузки

Для передачи данных между различными ячейками памяти используется следующие команды:

mov – пересылка данных из одной ячейки в другую или загрузка константы;

lea – загрузка адреса в регистр;

xchg – обмен значений регистров;

push – загрузка в стек;

pop – извлечение из стека.

 

Пример 1: Копирование содержимого одного сегментного регистра в другой

Push ds

Pop es

Пример 2: Выделение старшей части расширенного регистра данных (с помещением значения в другой регистр)

Push eax; помещаем значение eax в стек (4 байта)

Pop ax; извлекаем младшую часть (2 байта)

Pop bx; извлекаем старшую часть (2 байта)

Пример 2: Извлечение данных из произвольной ячейки стека

Mov bp, sp

mov ax, [bp]+2

Флаговые операции

Иногда необходимо в процессе выполнения программы изменять состояние процессора. Для этого предназначены команды работы с флагами.

Пример 4

Lahf; загружаем в ah содержимое флагового регистра

Stc; устанавливаем флаг c

Clc; сбрасываем флаг c

Cmc; инвертируем флаг c

Std; устанавливаем флаг d

Cld; сбрасываем флаг c

Cli; сбрасываем флаг i

Sti; устанавливаем флаг i

Sahf; восстанавливаем из ah флаговый регистр

 

Задание

В соответствии с представленной программы в лабораторной работе №2 произвести следующие операции:

- копирование содержимого одного сегментного регистра в другой;

- выделение старшей части расширенного регистра данных;

- извлечение данных из произвольной ячейки стека;

- изменить состояние процессора, с использованием флагового регистра.

5 Контрольные вопросы

1. Как проинициализировать сегментный регистр?

2. Как поместить в регистр адрес переменной, а не ее значение?

3. Как получить содержимое ячейки зная ее сегмент и смещение?

4.Примеры использования команд работы со стеком.

5.Шаблон DOS-программы EXE-формата.

 

 

Лабораторная работа №4

Арифметические команды целочисленного устройства

Микропроцессора

Цель работы

Основные характеристики, области применения ЭВМ различных классов. Изучение уст­ройства компьютера: Простейшие программы на ввод/вывод информации

Базовые знания, необходимые для выполнения данной работы

• Двоичная система счисления и основные арифметические операции над двоичными числами числами;

• BCD и ASCII-форматы целых чисел;

• Как объявляются поля данных размера байт, слово, двойное слово;

• Структура флагового регистра.

Теоретические основы

Следует различать две категории арифметических команд целочисленного устройства

• команды двоичной арифметики;

• команды двоично-десятичной арифметики.

 

Команды двоичной арифметики

• команды сложения add и adc; inc; xadd;

• команды вычитания sub и sbb; dec;

• команды умножения mul и imul;

• команды деления div и idiv;

• команда изменения знака neg.

 







Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.