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

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

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


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


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


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

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

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