Анимация
JavaScript
|
Главная Библионтека
Родственные функции: OpBinary, OpOctal, OpDeciminal,. OpHex, OpNumer Интерактивный анлог: «Edit\Operand types\Chaster»; <R> success OpNumber(long ea,int n) Функция отображает операнд (операнды) в форме исчисления принятой по умолчанию. По умолчанию системой исчисления по умолчанию назначена шестнадцатеричная система исчисления. Пример использования: seg000:0000 a) исходные данные ax,65 OpNumber(SegByName("seg000"),1); b) вызов функцию OpNumber для преобразования второго слева операнда в систему исчисления по умолчанию. seg000:0000 mov ax, 41h c) результат - второй слева операнд преобразован в шестнадцатеричный вид ??? #верстальщику - change table
Родственные функции: OpBinary, OpOctal, OpDeciminal,. OpHex, OpChr. Интерактивный анлог: «Edit\Operand types\ Number»; <#> success OpOff(long ea,int n,long base) Функция отображает операнд (операнды) в виде смещения относительно заданного сегмента, автоматически создавая автогенерируемую метку по целевому адресу (если целевой адрес не имеет метки) и перекрестную ссылку соответствующего типа (см. главу «Перекрестные ссылки»). Разрядность операнда, представляемого в виде смещения, должна быть равна разрядности соответствующего сегмента, иначе функция возвратит ошибку. Аргумент ea задает линейный адрес элемента, которому принадлежит операнд. Аргумент base задает базовый адрес сегмента, выраженный в байтах (не параграфах!) относительного которого отсчитывается смещение. Аргумент n задает операнд, отображаемый в виде смещения (см. таблицу). Для выполнения обратной операции, т. е. преобразованию смещения к непосредственному значению, достаточно передать функции нулевой базовый адрес сегмента. Пример использования: seg000:0100 start seg000:0100 seg000:0102 seg000:0105 seg000:0107 seg000:0107 start seg000:0107 seg000:0107 ; - seg000:0108 seg000:0108 seg000 a) исходные данные proc near retn endp ah, 9 dx, 108h 21h db Hello,World!,0Dh,0Ah,$ ends OpOff(SegByName("seg000")+0x102,1,SegByName("seg000")); b) вызов функции OpOff для отображения константы, загружаемой в регистр DX в виде смещения относительно текущего сегмента seg000:0100 start seg000:0100 seg000:0102 seg000:0105 seg000:0107 seg000:0107 start seg000:0107 seg000:0107 ; - seg000:0108 asc 0 108 seg000:0108 seg000 proc near mov mov retn endp ah, dx, offset asc 0 108 ; "Hello,World!\r\n$" DATA XREF: start+2o db Hello,World!,0Dh,0Ah,$ ends с) результат - константа, загружаемая в регистр DX отображена в виде смещения, предваренного директивой "offset", автоматически создана метка и перекрестна ссылка (в тексте они выделены жирным шрифтом). Ближайший аналог (~Edit\Operad types\Offset by any segment) ??? #Верстальщику - change table
==0 I ошибка Родственные функции: OpOffEx Интерактивный аналог: "~Edit\Operad types\Offset by any segment"; <Alt-R> success OpOffEx(long ea,int n,long reftype,long target,long base,long tdelta) Функция отображает операнд (операнды) в виде смещения, отсчитываемого от любого заданного адреса, не обязательно совпадающего с базовым адресом сегмента. Такая необходимость возникает например в случае обращения к элементу структуры, смещение которого требуется отсчитывать относительно начала этой структуры. Данная функция является усовершенствованным вариантом функции OpOff и поддерживает не только смещения, разрядность которых равна разрядности соответствующего сегмента, но смещения записанные в восьми или шестнадцати младших (старших) битах шестнадцати и тридцати двух разрядных операндов соответственно (см. таблицу ???). При этом остальные биты операнда маскируются операцией «логического и» AND. Аргумент ea задает линейный адрес элемента, которому принадлежит операнд. Аргумент n задает операнд, отображаемый в виде смещения (см. таблицу ???) Аргумент reftype задает тип смещения и может принимать одно из значений, перечисленных в таблице ??? Аргумент target задает линейный адрес целевого смещения выраженный в байтах, относительного которого будет отсчитыватся смещение операнда. Если в качестве целевого смещения передать значение BADADDR, целевое смещение будет вычислено автоматически по следующей формуле: target = operand value - tdelta +base Аргрумент base задает базовый адрес сегмента, выраженный в байтах, относительно которого задается целевое смещение. Аргумент tdelta задает относительное смещение, отсчитываемое относительно целевого смещения.Относительное смещение может быть как положительным, так и отрицательным. Если оно равно нулю, то данная функция становится эквивалентна функции OpOff (см. описание функции OpOff). Значение операнда должно соответствовать следующему соотношению operand value = target + tdelta - base, в противном случе функция вернет ошибку.
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 |