Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Строковые данные и массивы. Способы представления в памяти, примеры. Команды обработки строк и массивов ⇐ ПредыдущаяСтр 5 из 5
Строка представляет собой массив байтов-символов и записывается в одинарных кавычках: 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 в порт, номер которого определяется первым операндом. Не влияет на регистры флагов.
Двоично – десятичные числа. Виды двоично – десятичных чисел. Операции для работы с ними. Для записи одного десятичного разряда используется четыре двоичных бита. Эти четыре бита называются тетрадой. При помощи четырех бит можно закодировать шестнадцать цифр. Лишние комбинации в двоично-десятичном коде являются запрещенными. Таблица соответствия двоично-десятичного кода и десятичных цифр приведена ниже:
Остальные комбинации двоичного кода в тетраде являются запрещенными. Запишем пример двоично-десятичного кода: 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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |