Анимация
JavaScript
|
Главная Библионтека Таблица 14 Пример использования: seg000:0100 start: seg000:0100 seg000:0103 seg000:0103 ; - mov retn ax, 105h seg000:0104 MyStruc db 0 seg000:0105 dw 6666h seg000:0107 dw 9999h seg000:0107 seg000 ends seg000:0107 a) исходные данные - требуется представить непосредственное значение, загружаемое в регистр AX в виде смещения, отсчитываемого относительного начала струкуры MyStruc. OffEx (SegByName("seg000")+0x100,1,REF OFF16, SegByName("seg000")+0x104,SegByName("seg000"),1); b) вызов функции OpOffEx для представления непосредственного значения в виде смещения, отсчитываемого относительно начала структуры MyStruc. Пояснение: линейный адрес структуры MyStruc равен SegByName("seg000")+0x104, следовательно, целевой адрес tagreg равен SegByName("seg000")+0x104; базовый адрес сегмента, которому принадлежит структура, будучи выраженным в байтах равен SegNyName("seg000"), следовательно, аргумент base равен SegByName("seg000"); смещение искомого элемента относительно начала структуры равно operand value - offset MyStruc, т.е. в непосредственных значениях - 0x105 -0x104 = 1, следовательно, аргумент tdelta равен 1; операнд представляет собой 16-разрядное непосредственное значение, поэтому, тип смещения - REF OFF16. seg000:0100 start: seg000:0100 seg000:0103 seg000:0103 ; - mov retn ax, offset yStruc+1 db 0 ; DATA XREF: seg000:0100o dw 6666h dw 9999h ends с) результат - непосредственное значение теперь представлено в виде смещения, отсчитываемого от начала структуры MyStruc seg000:0104 MyStruc seg000:0105 seg000:0107 seg000:0107 seg000 Замечение: в данном примере было допустимо использовать автоматическое определение целевого адреса, однако, для большей ясности оно было вычислено вручную. ??? #Верстальщику - chabge table
Родственные функции: OpOff Интерактивный аналог: "~Edit\Operad types\User-defined offset";<Ctrl-R> success OpSeg(long ea,int n) Функция отображает операнд (операнды) в виде имени сегмента, базовый адрес которого равен значению операнда. Если сегмента с таким базовым адресом не существует, функция возвращает ошибку. Замечание: в процессе загрузки файла IDA автоматически преобразует все перемещаемые элементы в базовые адреса соответствующих сегментов. Пример использования: seg000:0000 mov ax, 1000h a) исходные данные - требуется представить непосредственный операнд, загружаемый в регистр ax в виде имени сегмента OpSeg(SegByName("seg000"),1); b) вызов функции OpSeg для преобразования непосредсвтенного операнда в имя сегмента с соответствующим базовым адресом seg000:0000 mov ax, seg seg000 c) результат - непосредственный операнд теперь представлен в виде имени сегмента с соответствующим базовым адресом ??? #Верстальщику - change table аргумент пояснения"
Родственные функции: нет Интерактивный аналог:"~ Edit\Operand types\ Segment" <S> success OpAlt(long ea,long n,char str) Функция отображающая операнды в виде символьной строки, заданной пользователем. Никаких ограничений на переданную строку не налагается - она может содержать любые символы, кроме символа с кодом нуля, служащим признаком конца строки. Пример использования: seg000:0000 a) исходные данные ax, 9 OpAlt(SegByName("seg000"),0,"Регистр AX"); b) вызов функции OpAlt для переименования первого слева операнда в строку «Регистр AX». seg000:0000 mov Регистр AX, 9 c) результат - операнд успешное переименован ??? #Верстальщику - change table
Родственные функции: AltOp Интерактивный аналог: "~Edit\Operand types\ Enter operand manually";<Alt-F1> success OpSign(long ea,int n) Функция отображает операнд в знаковой или целочисленной форме, работая как триггер - если до ее вызова операнд отображался в целочисленной форме, после станет отображаться в знаковой и, соответственно, наоборот. 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 |