Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ida.final.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6 Mб
Скачать

Long Word (long ea)

Функция возвращает значение слова (одно слово равно двум байтам) виртуальной памяти, расположенного по адресу ea. При попытке чтения байта, расположенного по несуществующему адресу, равно как и имеющего неопределенное значение, функция возвращает значение 0xFF, сигнализируя об ошибке. Наглядно продемонстрировать работу функции позволяет следующий пример:

0:00010000 db 48h ; H

0:00010001 db 65h ; e

0:00010002 db 6Ch ; l

0:00010003 db 6Ch ; l

0:00010004 db 6Fh ; o

0:00010005 db 2Ch ; ,

0:00010006 db 20h ;

0:00010007 db 49h ; I

0:00010008 db 44h ; D

0:00010009 db 41h ; A

0:0001000A db 20h ;

0:0001000B db 50h ; P

0:0001000C db 72h ; r

0:0001000D db 6Fh ; o

0:0001000E db 21h ; !

0:0001000F db 20h ;

0:00010010 db 0Dh ;

0:00010011 db 0Ah ;

Message(“>%X\n”, Word (0x10000));

>6548

Message(“>%X\n”, Word (0x0));

>FFFF

Message(“>%X\n”, Word (0x10011));

>FF0A

Message(“>%X\n”, Word (0xFFFF));

>48FF

В первом случае существуют оба адреса (т.е. 0x10000 и 0x10001) и функция отрабатывает успешно; во втором – ни существует ни одного из них – ни 0x0, ни 0x1, в результате чего возвращается 0xFFFF.

Но попытка прочитать слово, расположенное по адресу 0x10011, приводит к тому, что в младшем байте возвращается значение соответствующей ячейки, а в старшем – 0xFF! Аналогично и в последнем примере – несуществующий младший байт дает 0xFF, в то время как старший читается успешно.

Поэтому, до вызова функции Word следует убедиться, что обе ячейка действительно существуют и имеют определенные значение. Проверить это можно, проанализировав младший бит поля атрибутов каждой из ячеек – если он не равен нулю, то все о’кей. О том как это сделать подробно рассказано в описании функции Byte.

??? #верстальщику – change table

аргумент

пояснения

ea

линейный адрес ячейки виртуальной памяти

return

==return

пояснения

==

содержимое слова виртуальной памяти

==FF?? | ==??FF

ошибка

Родственные функции: Byte, Dword.

Интерактивный аналог: нет

Long Dword (long ea)

Функция возвращает значение двойного слова виртуальной памяти по указанному адресу.

В остальном она полностью аналогична функции Word.

??? #верстальщику – change table

аргумент

пояснение

ea

линейный адрес ячейки виртуальной памяти

return

==return

Пояснения

содержимое двойного слова виртуальной памяти

==(FF)

ошибка

Родственные функции: Byte, Word

Интерактивный аналог: нет

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]