Анимация
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

Замечание: отсутствие автоматического предварения комментария символом «точка с запятой», позволяет, используя данную функцию, помещать в ассемблерный листинг директивы и инструкции, заданные пользователем.

Пример использования:

seg000:0100 seg000:0102 seg000:0105 а) исходные данные

mov ah, 9

mov dx, offset aHello

int 21h ;

требуется разместить комментарий перед инструкцией INT

ExtLinA(SegByName("seg000")+0x105,0,"; Строка 1"); ExtLinA(SegByName("seg000")+0x105,1,"; Строка 2"); b) вызов функции ExtLinA для создания двух строк комментария

seg000:0100 seg000:0102 seg000:0105 seg000:0105 seg000:0105 c) результат

Строка 1 Строка 2

mov mov

ah, 9

dx, offset aHello

??? #Верстальщику - change table

аргумент

пояснения

линейный адрес головы элемента (бестипового байта) перед которым должен быть размещен комментарий

номер строки комментария от 0 до 500 включительно.

line

строка комментария

Родственные функции: MakeComm, MakeRptCmt, ExtLinB, DelExtLnA Интерактивный аналог: "~Edit\Comments\Edit extra anterior lines"; <Ins>

void ExtLinB(long ea,long n,char line)

Функция создает строку (или несколько строк) комментариев, отображаемых после элемента (бестипового байта), расположенного по переданному функции линейному адресу ea.

Комментарий располагается сначала строки и не предваряется символом «точка с запятой», поэтому, его необходимо указать самостоятельно.

Аргумент n задает номер строки комментария и может принимать значения от 0 до 500 включительно. IDA отображает комментарии начиная с нулевой до первой пустой строки. Т. е. если созадть нулевую, первую и третью строки комментария, IDA отобразит лишь первые две из них.

Строка комментария может содержать как символы латиницы, так и символы кириллицы, однако, нормальное отображение кириллицы возможно только в той ипостаси IDA, в которой они были созданы.

Для удаления всех строк комментария достаточно присвоить нулевой строке пустое значение - остальные строки хотя физически и останутся в базе, на экране отображаться не будут.



Замечание: отсутствие автоматического предварения комментария символом «точка с запятой», позволяет, используя данную функцию, помещать в ассемблерный листинг директивы и инструкции, заданные пользователем.

Пример использования:

seg000:0100 seg000:0102 seg000:0105 а) исходные данные

DX, offset aHello

mov ah, 9

mov dx, offset aHello

int 21h ;

требуется разместить комментарий после инструкции MOV

ExtLinB(SegByName("seg000")+0x102,0,"; Строка 1"); ExtLinB(SegByName("seg000")+0x102,1,"; Строка 2"); b) вызов функции ExtLinB для создания двух строк комментария

seg000:0100 seg000:0102 seg000:0102 seg000:0102 seg000:0105 c) результат

Строка 1 Строка 2

mov mov

ah, 9

dx, offset aHello

??? #Верстальщику - change table

аргумент

пояснения

линейный адрес головы элемента (бестипового байта) перед которым должен быть размещен комментарий

номер строки комментария от 0 до 500 включительно.

line

строка комментария

Родственные функции: MakeComm, MakeRptCmt, ExtLinA, DelExtLnB Интерактивный аналог: "~Edit\Comments\Edit extra posterior lines"; <Shift-Ins>

void DelExtLnA(long ea,long n)

Функция удаляет строку n много строчечного комментария, ранее помещенного перед элементом (бестиповым байтом), расположенным по линейному адресу ea. При этом, все строки с номерами, превосходящими n (если они существуют) отображаться не будут, но физически по-прежнему будут присутствовать в базе.

Пример использования:

seg000:0100 seg000:0102 seg000:0105 seg000:0105 seg000:0105 seg000:0105 a) исходные данные строчечного комментария

Строка 1 Строка 2 Строка 3

mov mov

ah, 9

dx, offset aHello

требуется удалить вторую (считая от одного) строку много

DelExtLnA(SegByName("seg000

b) вызов функции DelExtLnA

+0x105,1);



seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello

seg000:0105 ; Строка 1

seg000:0105 int 21h ;

c) результат - все строки, с номерами больше двух (считая от одного) не отображаются на экране

ExtLinA(SegByName("seg000")+0x105,1,"; 2");

d) вызов функции ExtLinA для восстановления второй строки двух строк комментария

seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello

seg000:0105 ; Строка 1 seg000:0105 ; 2 seg000:0105 ; Строка 3

seg000:0105 int 21h ;

e) результат - все строки вновь отображаются на экране

??? #Верстальщику - change table

аргумент

пояснения

линейный адрес элемента (бестипового байта)

удалямая строка комментария (от 0 до 500 включительно)

Родственные функции: DelExtLnB

Интерактивный аналог: "~Edit\Comments\Edit extra anterior lines"; <Ins>

void DelExtLnB(long ea,long n)

Функция удаляет строку n много строчечного комментария, ранее помещенного после элемента (бестипового байта), расположенного по линейному адресу ea. При этом, все строки с номерами, превосходящими n (если они существуют) отображаться не будут, но физически по-прежнему будут присутствовать в базе.

Пример использования:

seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello

seg000:0102 ; Строка 1 seg000:0102 ; Строка 2 seg000:0102 ; Строка 3

seg000:0105 int 21h ;

a) исходные данные - требуется удалить вторую (считая от одного) строку много строчечного комментария

DelExtLnB(SegByName("seg000")+0x102,1);

b) вызов функции DelExtLnA

seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello seg000:0102 ; Строка 1

seg000:0105 int 21h ;

c) результат - все строки, с номерами больше двух (считая от одного) не отображаются на экране



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