Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Строковые данные и массивы. Способы представления в памяти, примеры. Команды обработки строк и массивов




Строка представляет собой массив байтов-символов и записывается в одинарных кавычках:

str1db 'Hello'

 

Для обозначения конца строки используется специальный символ. Обычно это нулевой байт, но для функций DOS используется символ ’$’.

 

Команды обработки:

 

1. MOVS(MOVSB, MOVSW) – производит копирование;

2. CMPS(CMPSB, CMPSW) – производит сравнение элементов строк;

3. SCASB(SCASW) –производит поиск элемента в строке. Изменяет флаги.

4.STOSB(STOSW) – выполняет сохранение в память.

5.LOADSB(LOADSW) – выполняет загрузки элемента из памяти.

Порты ввода-вывода. Команды для работы с портами ввода-вывода. Назначение.

 

Команда IN

Первый операнд всегда регистр

Inal/ax/eax, номер порта

 

Назначение: ввод значения из порта ввода-вывода.

 

Алгоритмработы: Передает байт, слово, двойное слово из порта ввода-вывода в один из регистров al/ax/eax. Состояние флагов после выполнения команды: выполнение команды не влияет на флаги.

 

Применение: Команда применяется для прямого управления оборудованием компьютера посредством портов. Номер порта задается вторым операндом в виде непосредственного значения или значения в регистре dx. Непосредственным значением можно задать порт с номером в диапазоне 0-255. При использовании порта с большим номером используется регистр dx. Размер данных определяется размерностью первого операнда и может быть байтом, словом, двойным словом.

 

Команда OUT

Out номер порта, al/ax/eax

 

Назначение: вывод значения в порт ввода-вывода.

 

Алгоритм работы: Передать байт, слово, двойное слово из регистра al/ax/eax в порт, номер которого определяется первым операндом. Не влияет на регистры флагов.

 


 


Двоично – десятичные числа. Виды двоично – десятичных чисел. Операции для работы с ними.

Для записи одного десятичного разряда используется четыре двоичных бита. Эти четыре бита называются тетрадой. При помощи четырех бит можно закодировать шестнадцать цифр. Лишние комбинации в двоично-десятичном коде являются запрещенными. Таблица соответствия двоично-десятичного кода и десятичных цифр приведена ниже:

Двоично-десятичный код

Десятичный код
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9

Остальные комбинации двоичного кода в тетраде являются запрещенными. Запишем пример двоично-десятичного кода:

1258 = 0001 0010 0101 1000

В первой тетраде записана цифра 1, во второй — 2, в третьей — 5, а в последней тетраде записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре тетрады. Количество ячеек памяти микропроцессора зависит от его разрядности. При 16-разрядном процессоре все число уместится в одну ячейку памяти.

Операции:

· AAA-корректировка неупакованного результата сложения двух одноразрядных неупакованных BCD-чисел.

· AAM - корректировка результата умножения двух неупакованных BCD-чисел;

· преобразование двоичного числа меньшего 63h (9910) в его неупакованный BCD-эквивалент.

· AAS- корректировка результата вычитания двух неупакованных одноразрядных BCD-чисел.

· AAD - подготовка двух неупакованных BCD-чисел для операции деления;преобразование двузначного неупакованного ВCD-числа меньшего 63h (9910) в двоичное представление.


 

Команды преобразования типов. Команды MOVZXиMOVSX. Команды CBW и CWD.

MOVZX - Копирование с нулевым расширением.

Действие: преобразование элементов без знака меньшей размерности в эквивалентные им элементы без знака большей размерности.Первый операнд команды имеет размер 16 бит (слово), а второй — 8 бит (байт).

MOVSX - копирование со знаковым расширением.

Действие: преобразование элементов со знаком меньшей размерности в эквивалентные им элементы со знаком большей размерности.

CBW - Преобразование байта в слово/слова в двойное слово. cbw — при работе команда использует только регистры al и ax.

CWD преобразует слово, находящееся в регистре AX, в двойное слово в регистрах DX:AX.


 


Команды табличного преобразования. Команда XLAT

XLAT - подмена байта в регистре al байтом из последовательности (таблицы) байтов в памяти.

 

Алгоритм работы:

· вычислить адрес, равный ds:bx+(al);

· выполнить замену байта в регистре al байтом из памяти по вычисленному адресу.

Команду xlat можно использовать для выполнения перекодировок символов. Для формирования адреса таблицы в регистрах bx(ebx) можно использовать команду lea или оператор ассемблера offset в команде mov.

 

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 210.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...