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

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Предположим, что пользователь ввел номермесяца-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; просмотров: 643. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

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

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

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

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

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

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