Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [79] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

ВстаСтявмый

фрагмент


llepectimaz)----- (первсьтаТ)

Выходной массиб

В ВНЕ-В) С+(£-В) Рис. 5.8. Схема вставки фрагмента массива

массива (области памяти, ограниченной адресами В и С), то при выполнении «раздвижки» адрес начала массива-приемника оказывается меньше адреса конца массива-источника, и пересылку надо производить со старших адресов. Во втором фрагменте безразлично, какую подпрограмму применять: КОП1 или КОП2. Подпрограмма КОП1 используется только с целью унификации, хотя для уменьшения времени выполнения более целесообразно использовать подпрограмму КОП2.

5.5.6. ВСТДВКА ЭЛЕМЕНТА В СПИСОК

Модификация списка в отличие от модификации массива не требует физического перемещения информации; достаточно только изменить значение полей связи соответствующих элементов списка. Для вьшолнения вставки, элемента в список необходимо указать точку входа в него, т. е. адрес начала списка и место вставки в список, идентифицируемое по заданному значению ключа того элемента, после которого необходимо произвести вставку.

Алгоритм решения этой задачи состоит в следующем. Последовательно просматривается весь список для нахождения элемента, значение поля ключа которого равно заданному, затем содержимое поля связи найденного элемента копируется в поле связи вставляемого элемента, а туда записывается адрес вставляемого элемента (рис. 5.9). Программа вставки имеет вид:

Входной масшЬ



22АВ CD9022

22АЕ 711 22AF М 22Е0 ЗС 22В1 С2В722

22В4 2EFF 22Е6 С9

ЕСТСП5

! ПОДПРОГРАММА ВКЛЮЧЕНИЯ ЭЛЕМЕНТА В СПИСОК.

; ВХОДНЫЕ ПАРАМЕТРЫ: (В«С)-АЛРЕС НАЧАЛА СПИСКА» <Е)-ЗНА-

; ЧЕНИЕ КЛЮЧА ЭЛЕМЕНТА.ПОСЛЕ КОТОРОГО ПРОИЗВОДИТСЯ ВКЛЮ-

; <СНИЕ» (ST+1)-АДРЕС ВКЛЮЧАЕМОГО ЭЛЕМЕНТА.

; ВЫХОДНЫЕ ПАРАМЕТРЫ: <Й)=0-ВКЛИЧЕНИЕ УДАЧНО,<А)=ОГГН -

f НЕУДАЧНО.

; ОПЕНКА: EPEiCT-162i-93«H ТАКТОВ» ГДЕ Н - КОЛИЧЕСТВО ЭЛЕ-; МВ1Т0В В СПИСКЕ? ДЛИНА-33 БАЙТА? ГЛУБИНА СТЕКА-2 БАЙТА.

f ОРГАНИЗАЦИЯ ПОИСКА ЭЛЕМЕНТА, ПОСЛЕ КОТОРОГО f ОСУЩЕСТВЛЯЕТСЯ ВКЛЮЧЕНИЕ

CALL ПСКСП •г ПРОВЕРКА РЕЗУЛЬТАТА ПОИСКА

MOV A,L

AHA Н

IWi А

JNZ ПЕР14 i ВОЗВРАТ ПРИ НЕУДАЧНОМ ПОИСКЕ

HVI А, OFFH

; МОДИФИКАЦИЯ поля СВЯЗИ В ЭЛЕМЕНТЕ СПИША, ? ПОСЛЕ КОТОРОГО ПРОИЗВОДИТСЯ ВКЛЮЧЕНИЕ

ПЕР14: LBSF

Ii,E,l

?<В,Е)-АЛГН:С ЕКЛВЧАПНОГО ЭЛЕМЕНТА

22С0 4Е

22С1 73

22С2 23

22СЗ 46

22С4 72

H»C

s(B,c) •ЗHAЧDИE ПОЛЯ связи

i МОДИФИКАЦИЯ

ПОЛЯ связи во ЕКЛИЧЛЕНОИ ЭЛЕМЕНТЕ

22С5 ЕВ

XCHG

;(H»L)-АДРЕС ВКЛЮЧАЕМОГО ЭЛЕМЕНТА

22С6 71

22С7 23

22С0 70

t ВОЗВРАТ ПРИ

УДАЧНОМ ЗАВЕРШЕНИИ

22С9 AF

22СА С9

Поиск элемента по заданному значению ключа выполняется с помощью подпрограммы ПСКСП. После возврата из этой подпрограммы проверяется содержимое регистровой пары (Н, L). Если оно равно OFFH (элемента с заданным ключом в списке не существует), в выходной параметр записывается признак неудачного выполнения и осуществляется возврат из программы. Проверка производится путем логического умножения содержимого регистров (Н) и (L) и последующего их инкрементиро-вания. Очевидно, что результат будет нулевой только в том случае, если в регистрах (Н) и (L) содержался код OFFH. Если элемент найден, в его поле связи записывается адрес вставляемого элемента, причем старое содержимое поля связи сохраняется в регистровой паре (В, С).



Всгтбляемый

элемент

Рис. 5.9. Схема вставки элемента в список:

А, в, с, D - адреса элементоа списка; Е - адрес встааляемого элемента; К -

чение ключа

В последнем фрагменте программы это сохраненное значение записывается в поле связи вставляемого элемента.

5.5.7. УДАЛЕНИЕ ЭЛЕМЕНТА ИЗ СПИСКА

Удаление элемента из списка заключается в том, что в поле связи элемента, стоящего перед удаляемым, записывается адрес элемента, стоящего в списке после удаляемого. Идентификацию удаляемого элемента списка можно произвести точно так же, как и ранее. Программа удаления имеет вид:

/ДСП:

; ПОДПРОГРАММА УДАЛЕНИЯ ЭЛЕМЕНТА ИЗ СПИСКА.

; ВХОДНЫЕ ПАРАМЕТРЫ! (В»С)-АДРЕС НАЧАЛА СПИСКА» <Е)-КОЛ



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [79] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0025
Яндекс.Метрика