Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 324
от 22.07.2002, 20:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 798 Отправлено ответов: 2281 Активность: 285.8 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Beeblebrox Статус: Профессиональный Общий рейтинг: 120.17 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 118.93 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
ASMодей Статус: Доверительный Общий рейтинг: 136.17 [Подробней >>] |
Igoryk Статус: Доверительный Общий рейтинг: 108.12 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 160.82 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 140.22 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 125.59 [Подробней >>] |
Shal Статус: Доверительный Общий рейтинг: 106.89 [Подробней >>] |
Александр Статус: Профессиональный Общий рейтинг: 117.79 [Подробней >>] |
Guess Who Статус: Доверительный Общий рейтинг: 104.52 [Подробней >>] |
Gibbel Статус: Опытный Общий рейтинг: 109.52 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Dron Статус: Профессиональный Общий рейтинг: 128.34 URL: Операционная система с нуля! [Подробней >>] |
kvINT Статус: Опытный Общий рейтинг: 112.6 [Подробней >>] |
Pablo Статус: Доверительный Общий рейтинг: 110.79 [Подробней >>] |
Portnov Статус: Опытный Общий рейтинг: 122.35 [Подробней >>] |
Kalashnikoff Статус: Профессиональный Общий рейтинг: 101.73 URL: Информационный ресурс [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 753. День добрый, граждане эксперты! Вот маленькая программка, которая позволяет вводить символы с клави... (ответов: 8)
Вопрос № 754. Привет всем экспертам и подписчикам!! У меня такой вопрос: mov ah,09h int 16h Скан-код нажатой б... (ответов: 7)
Вопрос № 755. Привет вам, Эксперты!! У меня проблема: Tasm 4.1 считает за ошибку команды pusha и popa. Выводит: I... (ответов: 11)
Вопрос № 756. Где взять инфу о программировании Видеокарт в protected mode с целью установить режимы высокого разр... (ответов: 1)
Вопрос № 757. Бодрое время суток, господа эксперты! В программе встретился такой код: mov bx, dx and bx, 8... (ответов: 9)
Вопрос № 760. ИнтЛист Ральфа Брауна конечно впечетляет, вот только, это куча неструктурированой инфы 8( Качал я ег... (ответов: 4)
Вопрос № 761. Поставил софтайс из драйверстудии 2.5. Стоит. Работает. Единственная (пока;) проблема, при установке... (ответов: 2)
Вопрос № 762. Добрый день, господа эксперты. У меня тут возникла проблема с защищенным режимом. Почему, как только... (ответов: 1)
Вопрос № 763. Товарищи эксперты!!! Можно ли отправлять ответы по мылу??? И стоит ли? ... (ответов: 2)
Вопрос № 766. Драсьте, эксперты асьма. Я СтРаШнО извиняюсь, так как мой вапрос совсем не в тему. Но это потому, чт... (ответов: 2)
Вопрос № 767. Получилось как вы говорили сохранить в ХТМЛ, а потом из ЭКСПЛОРЕРА отправить! У меня бровсер Мозилла... (ответов: 2)
Вопрос № 768. Здравствуйте уважаемые эксперты! Имеется программа писаная на Дельфи (для проведения тестирования), ... (ответов: 1)
Вопросов: 12, ответов: 50
Вопрос № 753 |
День добрый, граждане эксперты!
Вот маленькая программка, которая позволяет вводить символы с клавиатуры, а при нажатии "y" выходит в дос:
CSEG segment
assume cs:CSEG;ds:CSEG
org 100h
Start:
mov ah,09h
mov dx,offset mess1
int 21h
Begin:
mov ah,10h
int 16h
cmp al,"y"
je Stop
mov ah,09h
mov dx,offset mess3
int 21h
jmp Begin
Stop:
int 20h
mess1 db "Enter symvol:$"
mess3 db "*$"
end Start
end segment
Вроде без ошибок. А когда я заменяю "y" на 1Ch(в одном из примеров у Зубкова написано, что это скан-код Enter, то ничего не происходит (не выходит в дос). Почему так?
Вопрос отправлен: 17.07.2002, 21:48
Отправитель: _nod_ (_nod_@tyt.by)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Доброе время суток, _nod_!
Потому что функция 10h прерывания 16h возвращает ASCII код символа в al, а сканкод в ah. То есть надо либо cmp al,0Dh, либо cmp ah,1Ch
Ответ отправлен: 18.07.2002, 10:45
Отправитель: Beeblebrox
Отвечает Топор
Добрый день, _nod_!
Потому что DOS в обязательном порядке интерпретирует управляющие символы. Если уж нужна конкретная закорючка, то или через BIOS, или прямым швырянием в память.
Ответ отправлен: 18.07.2002, 08:42
Отправитель: Топор
Отвечает ASMодей
Приветствую Вас, _nod_!
Дело в том, что функция 10h прерывания INT 16h возвращает
в регистре AL ASCII-код нажатой клавиши, а в регистре
AH - Scan-код клавиши. Так что если проверять Scan-код,
то проверять нужно регистр AH а не AL.
Кстати, сегмент правильно завершать нужно так:
CSEG ends
и уже после этого писать
end Start
Ответ отправлен: 18.07.2002, 10:02
Отправитель: ASMодей
Отвечает Igoryk
Приветствую Вас, _nod_!
У Enter скан-код 0Dh.
Ответ отправлен: 18.07.2002, 10:49
Отправитель: Igoryk
Отвечает masquer
Доброе время суток, _nod_!
а ты al на ah замени, тогда это будет сканкодом, а так это ASCII character code, который у Enter = 0dh если не ошибаюсь
Ответ отправлен: 17.07.2002, 22:03
Отправитель: masquer
Отвечает Broken Sword
Приветствую Вас, _nod_!
ответ на этот вопрос: причем здесь скан код до ASCII-кода
ответ на вопрос про pusha - пиши вначале .186
и еще ты чето спрашивал... а! как вывести на экран из al. ну это очень сложно сделать, так сразу и не объяснишь. нужно перечитать горы литературы и вообще ты на асме должен как минимум два года программить. еще для этой задачи желательно знать мотороловский асм и знать наизусть все API-ф-ции.
Ответ отправлен: 17.07.2002, 22:50
Отправитель: Broken Sword
Отвечает Ayl
Добрый день, _nod_!
И не будет работать!
Читайте внимательнее описание функций!
На выходе функции 10h прерывания 16h в регистре AL возвращается ASCII-код (!) нажатой клавиши либо 0 для расширенных кодов (для Enter'а будет либо 0, либо 0dh). А скан-код клавиши возвращается в регистре AH!
В любом дебаггере ты бы понял свою ошибку за 5 минут!
Ответ отправлен: 17.07.2002, 23:51
Отправитель: Ayl
Отвечает Shal
Здравствуйте, _nod_!
При нажатии enter'a, в ax 1c0d. Поэтому ты должен заменять не на 1ch, а на 0dh.
Ответ отправлен: 18.07.2002, 19:10
Отправитель: Shal
Вопрос № 754 |
Привет всем экспертам и подписчикам!!
У меня такой вопрос:
mov ah,09h
int 16h
Скан-код нажатой будет в al. Как вывести его на экран?
С уважением, _nod_
Вопрос отправлен: 17.07.2002, 21:54
Отправитель: _nod_
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Добрый день, _nod_!
Функция 09h прерывания INT 16h не возвращает никаких
скан-кодов, она предназначена для получения информации о
функциях, поддерживаемых клавиатурой. Если тебе нужен
скан-код, то нужно воспользоваться функцией 10h, которая
возвращает в регистре AH скан-код нажатой клавиши.
Вывести его на экран можно, например, так:
mov dh,ah
mov al,dh
ror al,4
and al,0Fh
cmp al,10h
sbb al,69h
das
mov dl,al
mov ah,02h
int 21h
mov al,dh
and al,0Fh
cmp al,10h
sbb al,69h
das
mov dl,al
mov ah,02h
int 21h
Ответ отправлен: 18.07.2002, 10:03
Отправитель: ASMодей
Отвечает Топор
Приветствую Вас, _nod_!
Если тебе нужен только скан-код, то тебе надо просто перевести его в шестнадцати- или в десятеричную форму. Как это делается - в этой рассылке перетёрто дальше некуда, смотри архив.
Ответ отправлен: 18.07.2002, 08:37
Отправитель: Топор
Отвечает Igoryk
Приветствую Вас, _nod_!
Вообще-то для считывания символа используется функция 10h. Но для вывода на экран введенного символа используйте после своей программы функцию BIOS:
mov ah, 0Eh
mov bh, 0
int 10h
или прерывание DOS:
int 29h
Только вывод будет осуществляться от текущего положения курсора, т.е. поверх набранного символа.
А вообще скан-код помещается в ah.
Ответ отправлен: 18.07.2002, 10:49
Отправитель: Igoryk
Отвечает Александр
Приветствую Вас, _nod_!
Ко всем. Читайте дальше. Нашёл недавно на одном из своих дисков с доками. Вообще-то я бы ЭТО положил где-нибудь на видном месте www.RusFAQ.ru Пока этого не сделано выложу на своём почтовом сервере, он же временное пристанище для страничек http://travorez.nm.ru
RU.ASM.CHAINIK FAQ
--------------------------------------------------------------------------------
Содержание:
1. Покажите маленькую программку типа 'Hello, world!'
2. А как ее запустить (слинковать, асссемблировать)?
3. А где можно взять tasm и tlink?
4. Что такое PSP?
5. Где хранится командная строка и как ее получить?
6. Как узнать полный путь к запущенной пpогpамме из нее самой?
7. Что такое прерывание и как оно работает?
8. Что такое вектор прерывания?
9. А как можно сгенерировать звук?
10. Что лучше - стандартные или упрощенные директивы определения сегментов?
11. Для чего нужна команда LEA. То же самое может и OFFSET, да и Tasm
заменяет LEA на MOV...OFFSET.
12. Откуда программа узнает адрес сегмента? После компиляции стоит mov ax,1.
13. Как сделать COM с отладочной информацией, понимаемой TD ?
14. Hе получается! COM есть, TDS есть, а TD отладочную информацию не
видит: "Program has no symbol table"
15. Как расчитать количество памяти, необходимое для резидента?
16. Hе могу запустить дочернюю задачу функцией 4Bh
17. Hе выделяется память по функции 48h
18. Да вроде все есть, почему не выделяет-то?
19. Как сжать блок памяти, занимаемый программой?
20. А что за команда такая rdtsc?
21. И еще, расскажите русским языком, что такое рекурсия (никогда не
сталкивался!)?
22. Расскажите про сопроцессор, как его использовать?
23. Что делать, если "Relative jump out of range"?
24. А какие-нибудь ссылки в интернете?
25. А что такое CMOS и как с ней работать?
26. Что делать, если метки одинаковые?
27. Как вывести число в шестнадцатеричном виде?
28. Как слинковать драйвер устройства?
last. А как это ... сделать?
Ответ отправлен: 20.07.2002, 09:38
Отправитель: Александр
Отвечает Guess Who
Доброе время суток, _nod_!
Эта функция возвращает скан-код в AH, а в AL возвращает код ASCII нажатой клавиши.
Как вывести число в шестнадцатиричной форме из регистра, так это пользуйся пожалуйста поиском, тут уже столько раз это было!
Код, на самом деле, очень простой.
Ответ отправлен: 17.07.2002, 22:42
Отправитель: Guess Who
Отвечает masquer
Добрый день, _nod_!
Преобразуй hex 2 string, затем выводи.
Ответ отправлен: 17.07.2002, 23:14
Отправитель: masquer
Отвечает Shal
Добрый день, _nod_!
Берешь и выводишь.
xchg ah,al
В al число из двух цифер. Выводишь сначала первую(сдвиг), затем вторую(обнуление).
int 29h-вывод символа на экран из al.
Учти, что цифрой может быть и буква(a,b,c,d,e,f).
Если, не понятно, то пиши...shal@programmer.net
Ответ отправлен: 18.07.2002, 19:10
Отправитель: Shal
Вопрос № 755 |
Привет вам, Эксперты!!
У меня проблема: Tasm 4.1 считает за ошибку команды pusha и popa. Выводит: Illegial instruction for currently selected processor. Или дело в процессоре? Команды push (pop) и pushf (popf) воспринимает нормально. В чем проблема?
С уважением, _nod_
Вопрос отправлен: 17.07.2002, 22:04
Отправитель: _nod_
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Доброе время суток, _nod_!
Команды PUSHA и POPA впервые появились в процессорах 80186,
а так как ассемблер по умолчанию использует команды
процессора 8086, то понятно что он не может использовать
PUSHA и POPA. Для использования этих команд нужно перед
ними поставить директиву .186, которая разрешит ассемблеру
использовать команды процессора 80186.
Ответ отправлен: 18.07.2002, 10:04
Отправитель: ASMодей
Отвечает Gibbel
Добрый день, _nod_!
Здесь уже тысячу раз об этом писалось. Задай процессор, поддерживающий эту команду. Например так:
Приложение:
Ответ отправлен: 18.07.2002, 10:45
Отправитель: Gibbel
Отвечает Топор
Здравствуйте, _nod_!
Скорее всего, ты забыл поставить директиву набора команд процессора, по умолчанию действует .8086. Ставь .386.
Ответ отправлен: 18.07.2002, 08:33
Отправитель: Топор
Отвечает Beeblebrox
Приветствую Вас, _nod_!
В первой же строке программы напиши .286
Ответ отправлен: 18.07.2002, 10:47
Отправитель: Beeblebrox
Отвечает Igoryk
Доброе время суток, _nod_!
Чтобы использовать команды popa и pusha. Нужно поставить в начало программы (после .model tiny) - .186.
Ответ отправлен: 18.07.2002, 10:48
Отправитель: Igoryk
Отвечает Guess Who
Здравствуйте, _nod_!
Эти команды появились начиная с 80186 процессора, делайте выводы!
Ответ отправлен: 17.07.2002, 22:38
Отправитель: Guess Who
Отвечает masquer
Здравствуйте, _nod_!
Поставь .286 вначале
Ответ отправлен: 17.07.2002, 23:16
Отправитель: masquer
Отвечает Dron
Доброе время суток, _nod_!
Дело в том что tasm по умолчанию предполагает что тип процессора равен 8086... а в 8086 действительно нет команды pusha/popa.
Чтобы проблема разрешилась, в начале программы поставь
.286
Ответ отправлен: 18.07.2002, 13:52
Отправитель: Dron
Отвечает kvINT
Здравствуйте, _nod_!
Дело не в процессоре, а в том, что эти инструкции поддерживаются, начиная, по-моему с 386. Соответственно, поставь директиву .386 или выше.
Ответ отправлен: 18.07.2002, 14:55
Отправитель: kvINT
Отвечает Shal
Доброе время суток, _nod_!
Да! Дело в проце. Нужно после .code поставить директиву .386.
Ответ отправлен: 18.07.2002, 19:09
Отправитель: Shal
Отвечает Pablo
Добрый день, _nod_!
Ну, я думаю как тебе уже тут ответили, pusha и popa это команды введены начиная с 486 процессора.
Для модели flat они имеют вид pushad и popad, а для остальных как ты и написал! Ну вообще и соотвестсвенную разрядность 32 и 16 бит.
Ответ отправлен: 18.07.2002, 20:15
Отправитель: Pablo
Вопрос № 756 |
Где взять инфу о программировании Видеокарт в protected mode с целью установить режимы высокого разрешения. Есть ли стандарты на прямое программрование портов или только VESA int 10h extension. Где взять доку на VESA или VESA это херня? Буду рад посмотреть на Ваш код, к-рый делает то о чем я спрашиваю
Вопрос отправлен: 17.07.2002, 23:21
Отправитель: Joker (jokeridze@tele-kom.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, Joker!
Насчет портов - у каждого производителя они свои и просто так такую информацию не достанешь. Доки на vesa.org. Кода нет.
Ответ отправлен: 17.07.2002, 23:59
Отправитель: masquer
Вопрос № 757 |
Бодрое время суток, господа эксперты!
В программе встретился такой код:
mov bx, dx
and bx, 8
shl bx, 1
shl bx, 1
shl bx, 1
or bx, 2
Для чего это надо было делать? Ведь можно и так:
shl bx, 3
Понятно, что это не от балды, есть какая-то тонкость. Какая?
Спасибо.
Вопрос отправлен: 18.07.2002, 03:48
Отправитель: Lelik (mitrosha@mtu-net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Добрый день, Lelik!
Скорее всего, это код какой-нибудь старой программки, которая работала еще на проце 8086/8088... А в них команды сдвига на непосредственное значение не было. Поэтому приходилось писать несколько раз инструкцию shl(r) reg, 1
Ответ отправлен: 18.07.2002, 10:46
Отправитель: Ayl
Отвечает ASMодей
Доброе время суток, Lelik!
Скорее всего это сделано для того, чтобы данный код мог
выполняться на процессоре 8086, где такие команды могли
сдвигать операнд только на один разряд.
Ответ отправлен: 18.07.2002, 10:05
Отправитель: ASMодей
Отвечает masquer
Доброе время суток, Lelik!
Это для совместимости сделано. Не все поцессоры понимают shl bx, 3
Для проц. ниже 286 нужно было так писать:
mov cl, 3
shl bx, cl
Ответ отправлен: 18.07.2002, 08:13
Отправитель: masquer
Отвечает Gibbel
Добрый день, Lelik!
Дык, не все процы поддерживают shl reg,const если const отличается от 1...
Ответ отправлен: 18.07.2002, 10:48
Отправитель: Gibbel
Отвечает Beeblebrox
Приветствую Вас, Lelik!
shl bx,3 не будет работать на 8086,8088 процессорах. Нет там такой команды
Ответ отправлен: 18.07.2002, 10:55
Отправитель: Beeblebrox
Отвечает Broken Sword
Здравствуйте, Lelik!
"тонкость" заключается в том, что если написать shl bx,3 без .186 вначале (как минимум 186), то компиль скомпилит в три shl bx,1. Отсюдава вывод: на 8086 максимум, что стояло справа в сдвиговых командах - это единица.
Кстати, аналогичная ситуация наблюдается и при "push число". Попробуй сделать "push число" без .186.
Так что ТАСМ молодец впринципе - полностью эмулирует то, что указано.
Ответ отправлен: 18.07.2002, 11:30
Отправитель: Broken Sword
Отвечает Dron
Добрый день, Lelik!
Нет, ты что-то путаешь...
and bx, 8 ; оставляет в bx только третий бит.
shl bx, 3 ; ну тут все ясно, только на 8086 это
; развернется в три команды.
or bx, 2 ; устанавливает второй бит в 1.
; третий теперь стал шестым.
И в результате в зависимости от содержимого dx получится либо 0x22 либо 0x02
Вот.
Ответ отправлен: 18.07.2002, 13:57
Отправитель: Dron
Отвечает Александр
Здравствуйте, Lelik!
Тонкость заключается в том, что для сдвига на 1 существует отдельный опкод. Т.е. при выполнении операции сдвига регистра на 1 обращений к памяти не происходит, и всё получается очень быстро. К тому же в старых процессорах для сдвига более чем на 1 необходимо было использовать инструкцию shl bx, cl Причём перед этим необходимо было записать величину сдвига в CL. Вот и все обоснования. Оптимизация-с.
Ответ отправлен: 18.07.2002, 18:48
Отправитель: Александр
Отвечает Shal
Добрый день, Lelik!
shl bx,3 в отладчике выглядит сл.образом:
shl bx,1
shl bx,1
shl bx,1.
Ответ отправлен: 18.07.2002, 19:09
Отправитель: Shal
Вопрос № 760 |
ИнтЛист Ральфа Брауна конечно впечетляет, вот только, это куча неструктурированой инфы 8( Качал я его с CS.CMU.EDU Файл combine.com работать отказывается (может я просто делаю с ним что-то не то), говорит что все компоненты листа должны быть, а у меня файл interrup.r последний 8(
Вопрос отправлен: 18.07.2002, 06:35
Отправитель: Deadcat (Deadcat777@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Здравствуйте, Deadcat!
Я пользуюсь этой инфой прямо в том виде, как она есть, и меня это не напрягает. Хотя где-то в инете я видел html-версию.
Ответ отправлен: 18.07.2002, 11:19
Отправитель: Beeblebrox
Отвечает Broken Sword
Добрый день, Deadcat!
не оттудава качаешь - нада отсюдова: http://www.pobox.com/~ralf
должны быть следующие файлы -
inter61 (a-f) - всего 6 шт.
rbpci
hc
dwint
скачай это все (или проверь все ли они у тебя есть), дальше пиши мне разберемся
Ответ отправлен: 18.07.2002, 11:30
Отправитель: Broken Sword
Отвечает Shal
Здравствуйте, Deadcat!
У меня все нормально! Все работает.
Ответ отправлен: 18.07.2002, 19:09
Отправитель: Shal
Отвечает Александр
Приветствую Вас, Deadcat!
У меня в Interrupt List'е был combine.bat, а не combine.com да и для того, чтобы слить все файлы в 1 надо просто набрать команду copy interrup.a + interrup.b + ... + interrup.r interrup.lst или подредактировать bat - файл, стерев лишние буковки. Вот и всё.
Ответ отправлен: 22.07.2002, 07:16
Отправитель: Александр
Вопрос № 761 |
Поставил софтайс из драйверстудии 2.5. Стоит. Работает. Единственная (пока;) проблема, при установке bpx ничего не происходит. (только файл Winice.brk появился)
пишу
bpx getwindowtexta
он её съедает всё ок.(символы загружены)
я понимаю, что при вызове этой функции должно появляться окно SI и дальше уж заниматься. Написал специально прожку:
Dim str As String * 255
GetWindowText Text1.hwnd, str, 255
SetWindowText Text2.hwnd, str
Она работает, айса нету:( Вспомнил, что у кого-то была такая проблема и решилась очень просто. Кто-то так небрежно ответил, как о чём-то само-собой разумеющемся, но найти этого ответа не смог.
Помогите пожалуйста.
В строке инит винайс.дат только x;
Вопрос отправлен: 18.07.2002, 08:46
Отправитель: Дмитрий
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, Дмитрий!
Попробуй bpx getwindowtextw написать, если не ловит - значит она так явно не вызывается.
Ответ отправлен: 18.07.2002, 08:54
Отправитель: masquer
Отвечает Broken Sword
Здравствуйте, Дмитрий!
щас уже не уверен, но для SI getwindowtextA и getwindowtext (без А) - две большие разницы
Ответ отправлен: 22.07.2002, 08:58
Отправитель: Broken Sword
Вопрос № 762 |
Добрый день, господа эксперты.
У меня тут возникла проблема с защищенным режимом.
Почему, как только я устанавливаю размер сегмента Code16 в
соответствующем дескрипторе, програма отказывается выходить
в DOS и виснет? Причем для остальных сегментов размер
можно устанавливать - все работает.
Я предположил, что при возврате в реальный режим процессор
вешается из-за того, что размер сегмента оказывается не
равным 0FFFFh, но сразу после выхода в реальный режим,
я перезагружаю регистр CS так что все должно работать.
PS. Та же проблема возникает и при установке размера
сегмента дескриптора disp, который я использую для вывода
сообщения на экран в защищенном режиме.
PPS. Эта программа сделана на основе примера из Зубкова,
но у него размеры сегментов были максимальными и
все работало.
Приложение:
Вопрос отправлен: 18.07.2002, 10:01
Отправитель: Eugene
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Доброе время суток, Eugene!
В официозном мануале Интела по пунктам расписаны ВСЕ необходимые дейсвтия для перехода из PM обратно в RM. Так вот, третьим пунктом идет следующее:
3. Transfer program control to a readable segment that has a limit of 64 Kbytes (0FFFFh). This operation loads the CS register with the segment limit required in real-adress mode
Причем, манипуляции с CR0 идут уже шестым пунктом, а jmp - седьмым
поэтому на момент манипуляций с CR0 лимит в дескрипторе, селектор которого в CS ДОЛЖЕН быть равен FFFF и ничему больше.
Ответ отправлен: 18.07.2002, 11:30
Отправитель: Broken Sword
Вопрос № 763 |
Товарищи эксперты!!!
Можно ли отправлять ответы по мылу??? И стоит ли?
Вопрос отправлен: 18.07.2002, 11:12
Отправитель: ALastorZ (alastorz@mtu-net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Топор
Здравствуйте, ALastorZ!
Можно, но они не учтутся в рассылке, соответственно и баллов не будет.
Ответ отправлен: 18.07.2002, 13:50
Отправитель: Топор
Отвечает Александр
Приветствую Вас, ALastorZ!
Пока низзя. Но если кто-нибудь напишет такую обработку, то об этом будет столько воплей радости.
Администраторы. Ау. Я опять прошу вас выслать мне check.cgi Очень нужно для отладочных целей.
Ответ отправлен: 18.07.2002, 18:47
Отправитель: Александр
Вопрос № 766 |
Драсьте, эксперты асьма. Я СтРаШнО извиняюсь, так как мой вапрос совсем не в тему. Но это потому, что я уже не знаю, где мне его спросить - нигде мне толком ничего не могут сказать. Так что ВЫ у меня - последняя надежда :(
Тут такая трабля: при установке на некоторых машинах под вин2к некоторых прог с MSI инсталлером наблюдается обшибка 1311: файл не найден или недоступен. Например, для оффиса - office1.cab. Стопроцентно известно: файл читаем. Более того, проги ставились раныше без траблем. Если слить на винт, то оттуда тоже без траблем. Вот только фишка в том, что ставить сии проги-то НАДО нам с сидюков, и сносить винду тоже не дело. Бьёмся уже с месяц, но кроме частных решений общего не нашли. Трабли замечены на MSOffice, Autocad, Promt. Если есть чем помочь напишите ПОЖАЛУЙСТА!!!
Вопрос отправлен: 18.07.2002, 20:16
Отправитель: Frank (fqc@mksat.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Здравствуйте, Frank!
А вы уверены, что дело не в сидюке? Такое очень даже может быть. Вот у меня есть диск, у меня с ним все нормально, приношу к знакомому - некоторые директории не читаются совсем, другие глючат. Но у меня сидюк 40х, а у него - 8х. Так что проверьте.
С уважением, Portnov.
Ответ отправлен: 19.07.2002, 17:48
Отправитель: Portnov
Отвечает masquer
Здравствуйте, Frank!
Проверь, есть ли в системе файлы instmsia.exe, instmsiw.exe
Ответ отправлен: 18.07.2002, 20:42
Отправитель: masquer
Вопрос № 767 |
Получилось как вы говорили сохранить в ХТМЛ, а потом из ЭКСПЛОРЕРА отправить!
У меня бровсер Мозилла и из него не отправляет ответ!
Благодарю за ответы!
Вопрос отправлен: 18.07.2002, 20:20
Отправитель: Pablo
[Следующий вопрос >>] [Список вопросов]
Отвечает Kalashnikoff
Добрый день, Pablo!
Как я уже говорил, многие баузеры (кроме IE) работают НЕКОРРЕКТНО с формами. Пользуйтесь IE 4.0+, причем не только на RusFAQ.ru, но и на других подобных сайтах.
Ответ отправлен: 18.07.2002, 22:05
Отправитель: Kalashnikoff
Отвечает Александр
Добрый день, Pablo!
Если ты это читаешь, то отправка произведена успешно из Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.0rc2) Gecko/20020510
Ответ отправлен: 18.07.2002, 22:54
Отправитель: Александр
Вопрос № 768 |
Здравствуйте уважаемые эксперты! Имеется программа писаная на Дельфи (для проведения тестирования), вся проблема в том что на время работы она должна получать все события от клавиатуры не давая их обработать другим приложениям(включая Ctrl+Alt+Del и т.п.), причем это должно работать под NT и Win2k, средствами делфи у меня это не получилось, пробовал вешать Hook, но и он под Win2к отказался работать. И тут я подумал, может мне кто-нибудь подскажет как написать програмульку на Асме кторая перехватывала бы события и отсылала бы моему приложению. Может свои дрова надо писать? Но я этого еще неумею, может у кого инфа есть?. Приветствуются все виды советов: линки, сырцы или идеи как это можно реализовать. Можно на мыло: alche@mail.ru.Помогите pls, прогу скоро сдавать надо:(. Заранее благодарен.
Вопрос отправлен: 18.07.2002, 20:38
Отправитель: Alche (alche@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, Alche!
NT раньше перехватит событие клавиатуры, чем твой хук. Качай DDK, там был пример работы с клавиатурой.
Ответ отправлен: 18.07.2002, 21:19
Отправитель: masquer
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (43) C / C++ (32) Perl (9) Delphi (17) Pascal (30) Basic / VBA (12) Java / JavaScript (8) PHP (6) MySQL / MSSQL (10) |
Пользователю Windows 95/98/Me (43) Windows NT/2000/XP (34) "Железо" (35) Поиск информации (17) |
Администратору Windows NT/2000/XP (18) Linux / Unix (16) |
Юристу Гражданское право (7) Семейное право (3) Трудовое право (7) КоАП (2) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||