Студопедия Главная Случайная страница Обратная связь

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Предположим, что пользователь ввел номермесяца-03ипрограмма должна преобразовать этот номер в алфавитное значение March





Предположим, что пользователь ввел номермесяца-03ипрограмма должна преобразовать этот номер в алфавитное значение March. Программа для выполнения такого преобразования включает определениетаблицыалфавитных названий месяцев, имеющих одинаковую длину. Так как самое длинное название - September, то таблица имеет следующий вид:

MONTBLDB 'January..'

DB 'February.'

DB 'March....'

Каждый элемент таблицы имеет длину 9байт.Адресэлемента'January'- MONTBL+0, 'February' - MONTBL+9, 'March'-MONTBL+18.Длялокализации месяца 03, программа должна выполнить следующее:

1. Преобразовать введенный номер месяца из ASCII 33вдвоичное03.

2. Вычесть единицу из номера месяца: 03 - 1 = 02

3. Умножить результат на длину элемента (9): 02 х 9 = 18

4. Прибавить произведение (18) кадресуMONTBL; врезультатеполучится адрес требуемого названия месяца: MONTBL+18.

page60, 132

TITLEDIRECT(COM) Прямой табличный доступ

CODESGSEGMENT PARA 'Code'

ASSUMECS: CODESG, DS: CODESG, ES: CODESG

ORG 100H

BEGIN: JMP SHORT MAIN

; ------------------------------------------------

THREE DB3

MONIN DB'11'

ALFMONDB'??? ', '$'

MONTABDB'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN'

DB'JUL', 'AUG', 'SEP', 'OKT', 'NOV', 'DEC'

; ------------------------------------------------

MAINPROCNEAR; Основная процедура

CALLC10CONV; Получить двоичное значение

CALLD10LOC; Выделить месяц из таблицы

CALLF10DISP; Выдать месяц на экран

RET

MAINENDP

; Перевод ASCII в двоичное представление:

; --------------------------------------

C10CONVPROC

MOVAH, MONIN; Загрузить номер месяца

MOVAL, MONIN+1

XORAX, 3030H; Удалить ASCII тройки

CMPAH, 00; Месяц 01-09?

JZC20; да - обойти

SUBAH, AH; нет - очистить AH,

ADDAL, 10; и перевести в двоичное

C20RET

C10CONVENDP

; Выделение месяца из таблицы:

; ---------------------------

D10LOCPROC

LEASI, MONTAB

DECAL; Коррекция для таблицы

MULTHREE; Умножить AL на 3

ADDSI, AX

MOVCX, 03; Трехсимвольная пересылка

CLD

LEADI, ALFMON

REPMOVSB; Переслать 3 символа

RET

D10LOCENDP

; Вывод на экран симв.месяца:

; --------------------------

F10DISP PROC

LEA DX, ALFMON

MOV AH, 09

INT 21H

RET

F10DISP ENDP

CODESGENDS

ENDBEGIN

Рис. 8.1. Прямая табличная адресация.

На рис. 8.1 приведен пример прямого доступа к таблице названий месяцев. Для краткости в программе используются вместодевятисимвольных названий - трехсимвольные. Введенный номер месяца определен в поле MONIN.

Предположим, что некоторая подпрограмма формирует запроснавводномера месяца в ASCII-формате в поле MONIN.

Описанная техника работыс таблицей называется прямым табличным доступом.Поскольку данный алгоритмнепосредственно вычисляет адрес необходимого элемента в таблице, то в программе не требуетсявыполнять операции поиска.

Хотя прямая табличная адресация очень эффективна, она возможна только припоследовательнойорганизации.Тоестьможноиспользовать такие таблицы, если элементы располагаются в регулярной последовательности: 1, 2, 3,... или 106, 107, 108,... или даже5, 10, 15.Однако, невсегда таблицы построенытакимобразом.Вследующемразделерассматриваются таблицы, имеющие нерегулярную организацию.

TITLE TABSRCH (COM) Табличный поиск

CODESGSEGMENT PARA 'Code'

ASSUMECS: CODESG, DS: CODESG, ES: CODESG

ORG 100H

BEGIN: JMP SHORT MAIN

; -----------------------------------------------

STOKNIN DW'23'

STOKTAB DB'05', 'Excavators'

DB'08', 'Lifters '

DB'09', 'Presses '

DB'12', 'Valves'

DB'23', 'Processors'

DB'27', 'Pumps '

DESCRN10DUP(?)

; -----------------------------------------------

MAINPROCNEAR

MOVAX, STOKNIN; Загрузитьномерэлемента

XCHGAL, AH

MOVCX, 06; Число элементов в таблице

LEASI, STOKTAB; Начальный адрес таблицы

A20:

CMPAX, [SI]; Сравнить элементы

JEA30; Если равны - выйти,

ADDSI, 12; нет - следующий элемент

LOOPA20

CALLR10ERR; Элемент в таблице не найден

RET

A30:

MOVCX, 05; Длина описания элемента

LEADI, DESCRN; Адрес описания элемента

INCSI

INCSI; Выделить описание

REPMOVSW; изтаблицы

RET

MAINENDP

R10ERRPROC

; < Вывод сообщения об ошибке>

RET

R10ERRENDP

CODESGENDS

END BEGIN

Рис. 8.2. Табличный поиск

СОДЕРЖАНИЕ РАБОТЫ

Отладить примеры и убедиться в их работоспособности

ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ

1. Как в ассемблере задается таблица?

2. Перечислите способы адресации?







Дата добавления: 2014-11-10; просмотров: 663. Нарушение авторских прав; Мы поможем в написании вашей работы!




Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие и структура педагогической техники Педагогическая техника представляет собой важнейший инструмент педагогической технологии, поскольку обеспечивает учителю и воспитателю возможность добиться гармонии между содержанием профессиональной деятельности и ее внешним проявлением...

Репродуктивное здоровье, как составляющая часть здоровья человека и общества   Репродуктивное здоровье – это состояние полного физического, умственного и социального благополучия при отсутствии заболеваний репродуктивной системы на всех этапах жизни человека...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Studopedia.info - Студопедия - 2014-2026 год . (0.012 сек.) русская версия | украинская версия