Анимация
JavaScript


Главная  Библионтека 

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

первый слева операнд

второй слева, третий (если он есть) и все остальные операнды

==-1

все операнды

return

=return

пояснения

успешное завершение операции

ошибка

Родственные функции: 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

аргумент

пояснения

линейный адрес элемента, которому принадлежит операнд

операнд

первый слева операнд

второй слева, третий (если он есть) и все остальные операнды

==-1

все операнды

return

=return

пояснения

успешное завершение операции

ошибка

Родственные функции: 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

аргумент

пояснения

линейный адрес элемента, котрому принадлежит операнд

пояснения

первый слева операнд

второй слева, третий (если он есть) и все остальные операнды

==-1

все операнды

base

базовый адрес сегмента, выраженный в байтах (не параграфах!) относительного которого отсчитывается смещение

return

=return

пояснения

успешное завершение операции



==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, в противном случе функция вернет ошибку.

определение

тип смещения

REF OFF8

8-битное смещение

REF OFF16

16-битное смещение

REF OFF32

32-битное смещение

REF LOW8

смещение представлено 8 младшими битами 16 битного непосредственного значенияt

REF LOW16

смещение представлено 16 младшими битами 32 битного непосредственного значенияt

REF HIGH8

смещение представлено 8 старшими битами 16 битного непосредственного значенияt

REF HIGH16

смещение представлено 16 старшими битами 32 битного непосредственного значенияt



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