Анимация
JavaScript
|
Главная Библионтека success SetSegmentType (long segea,long type) Функция изменяет тип сегмента, оказывая влияние на его дизассемблирование. Аргумент segea задает любой линейный адрес, принадлежащий сегменту. Если передать адрес не принадлежащий никакому сегменту, функция возвратит ошибку. Аргумент type указывает на тип сегмента и может принимать одно из значений, перечисленных в таблице ???. При создании сегмента функцией SegCreate ему присваивается тип «неизвестный» - SEG NORM.
Таблица 8 Пример использования: SegCreate(0x1000,0x2000,0x100,0,0,0); a) создаем новый сегмент (по умолчанию неизвестного типа) seg000:0000 ; Segment type: Regular seg000:0000 seg000 segment at 100h private seg000:0000 assume cs:seg000 seg000:0000 assume es:nothing, ss:nothing, ds:nothing b) сегмент создан (тип выделен жирным шрифтом), автоматически внедрена директива ASSUME для определения сегментных регистров. SetSegmentType(0x1000,SEG DATA); c) вызов функции SetSegnetType для установки типа «сегмент данных» seg000:0000 ; Segment type: Pure data seg000:0000 seg000 segment at 100h private seg000:0000 assume cs:seg000 d) тип сегмента изменен, директива ASSUME, задающая значение регистров DS, ES и SS удавлена. ??? #верстальщику - change table
0 I ошибка" Родственные функции: GetSegmentAttr Интерактивный аналог: нет long GetSegmentAttr(long segea,long attr) Функция позволяет узнать следующие атрибуты сегмента: кратность выравнивания, комбинацию, привилегии доступа, разрядность, флаги сегмента, селектор, использующийся для базирования сегмента, тип сегмента и значения сегментных регистров, определенных функцией DefSegReg. Об атрибуте вырывания можно подробнее прочитать в описании функции SegAlign, об атрибутах комбинации - в описании функции SegComb, о типе сегмента рассказывается в описании функции "SetSegmentType". Использование селекторов для базирования сегментов подробно описано в главах «Организация сегментов», "SegCreate" и "SetSelector". Аргумент segea задает любой линейный адрес, принадлежащий сегменту. Если передать адрес не принадлежащий никакому сегменту, функция возвратит ошибку. Аргумент attr указывает функции - содержимое какого атрибута необходимо возвратить. Возможные значения аргумента attr приведены в таблице ??? ??? #Верстальщику - Change Table
Таблица 9 Типы сегментов ??? #верстальщику - change table аргумент пояснения линейный адрес, принадлежащий сегменту ea Type тип сегмента (возможные значения приведены в таблице 9)
Родственные функции: SegAddrng, SegAling, SegComb, SegClass, SegDefReg, SetSegmentType Интерактивный аналог: нет char SegName(long ea) Функция возвращает имя сегмента, заданного любым принадлежащим ему линейным адресом ea. Если передать адрес не принадлежащий никакому сегменту, функция возвратит пустую строку. Пример использования: SegCreate(0x1000,0x2000,0x100,0,0,0); SegRename(0x10 0 0,"MySeg"); a) создаем сегмент и тут же переименовываем его в "MySeg" MySeg:0000 MySeg segment at 100h private b) сегмент успешно создан (имя выделено жирным шрифтом) Message(">%s\n",SegName(0x1000)); c) вызываем функцию SegName для получения имени сегмента >MySeg d) результат - имя сегмента ??? #Верстальщику Table Change
Родственные функции: SegRename, SegByName Интерактивный аналог: по умолчанию имя сегмент оэбрвжается в адресе нзждойячей long FirstSegQ Функция возвращает линейный адрес начала сегмента с наименьшим линейным адресом начала. Если не существует ни одного сегмента, функция возвратит значение BADADDR, сигнализируя об ошибке. Замечание: FirstSeg обычно используется в паре с NextSeg для получения списка адресов начала всех существующих сегментов. Пример использования: SegCreate(0x10 0 0,0x2 0 0 0,0x9,0,0,0); 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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |