Перейти к содержимому

Фотография

Assembler и SoftIceПомощь в разрешении проблемы


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 24

#1
gibson85

gibson85
  • Постоялец
  • 316 сообщений
___________________________________
Cистема: WinXP Pro/Rus/SP1
Usb keyboard/ Usb mouse

Софт:
1. Turbo Assembler Version 3.0
3. Numega SoftIceNT 4.2.7
____________________________________


Пишу простую программу, которая выводит символ прямым отображением в видеобуфер (по матерьялам рассылки Калашникова).

VOV segment
org 100h
begin:

mov ax,0B800h ;число 0B800h соответствует сегменту дисплея в текстовом режиме
mov es,ax
mov di,0 ;0 - Это будет смещение относительно сегмента 0B800h

mov ah,31 ;(31 - ярко-белый символ на синем фоне)
mov al,33 ;ASCII-код символа (33 - !)

mov es:[di],ax

mov ah,10h ;
int 16h ; Ждем нажатия клавиши

int 20h ; Выходим из нашей программы

VOV ends
end begin

Прогоняю программу через TASM, получаю .com файл. Запускаю этот файл, а на экран ничего не выводится (В окне написано "Неправильная команда или имя файла" и мигает курсор на следущей строке). Почему не выводится символ на экран?
И почему всегда перед выполнением программы в досовском окне появляется эта надпись "Неправильная команда или имя файла", а после нее идет сама программа?

И ещё проблема с SoftIce'ом. Устанавливаю. Настройки не трогаю (ставлю загрузку СофтАйса перед загрузкой Виндовса, чтобы потом можно было вызвать СофтАйс по нажатию CTRL+D). Так вот, когда нажимаю CTRL+D, то появляется окно SoftIce (мигает курсор ввода) и комп виснет намертво (клава и мышь не подают признаков жизни), приходится нажимать Reset (хотя курсор как мигал, так и мигает). Как нужно правильно настраивать? Или в чем тут проблема?
  • 0

#2
DPA

DPA
  • В доску свой
  • 1 424 сообщений
по первому вопросу - не парься всеравно толком под ХРень пахать не буит...
по второму - тож юзал такой же (4.7 какаято версия) - она не пашет под ХР скока не старался.... в нете есть рекомендации как его настроить токо один фиг не работает... %(
=======================
мой совет - сделай FAT32 раздел и воткни вин98... сам себе
так сделал... %)

ЗЫ int 20h луше заменить на mov ax,4c00h int 21h %)
  • 0

#3
Da_ReBeL

Da_ReBeL

    цыник и падонак

  • В доску свой
  • 2 022 сообщений

Прогоняю программу через TASM, получаю .com файл.

нет, вы получаете .obj файл. его ищо слинкавать надо. TLINK'ом.

Запускаю этот файл, а на экран ничего не выводится (В окне написано "Неправильная команда или имя файла" и мигает курсор на следущей строке). Почему не выводится символ на экран?
И почему всегда перед выполнением программы в досовском окне появляется эта надпись "Неправильная команда или имя файла", а после нее идет сама программа?

потому что и нету такого файла

И ещё проблема с SoftIce'ом. Устанавливаю. Настройки не трогаю (ставлю загрузку СофтАйса перед загрузкой Виндовса, чтобы потом можно было вызвать СофтАйс по нажатию CTRL+D). Так вот, когда нажимаю CTRL+D, то появляется окно SoftIce (мигает курсор ввода) и комп виснет намертво (клава и мышь не подают признаков жизни), приходится нажимать Reset (хотя курсор как мигал, так и мигает). Как нужно правильно настраивать? Или в чем тут проблема?

для начала попробуйте нажать g и enter
если ничего не работает, ищите другую версию софтайса, пад вашу ос
вроде как паследний пакет апзывался нумега драйвер студио
у миня в хп работал
но действительна, проще в 98ой.
  • 0

#4
Altair

Altair
  • Частый гость
  • 59 сообщений
Поробуй вот так...

org 100h
begin:

xor al,3 //Смена видеобуфера
int 10h

mov ax,0B800h;число 0B800h соответствует сегменту дисплея в текстовом режиме 
mov es,ax
mov di,0;0 - Это будет смещение относительно сегмента 0B800h

mov ah,31;(31 - ярко-белый символ на синем фоне) 
mov al,33;ASCII-код символа (33 - !)

mov es:[di],ax 

mov ah,10h;
int 16h; Ждем нажатия клавиши 

int 20h; Выходим из нашей программы

Вроде бы работало.
Просто винда использует не тот видеобуфер. Надо сделать активным видеобуфер 0B800h

Сообщение отредактировал Altair: 24.03.2006, 17:33:50

  • 0

#5
BAD

BAD

    Заядлый П.П.

  • В доску свой
  • 5 727 сообщений
С мышой под ХэПэ у мя софтайс тож не работал. Постоянно заглючивал. Где-то там в настройках мыша отрубается, я ее отрубил, и между окошек клавой скакал. Так даж удобнее. :D Но под ХР эта версия Айса работает точно. Есть еще для айса под ХР кое-какие плагины, поройся в нете.
  • 0

#6
Mikkiss

Mikkiss
  • Гость
  • 32 сообщений
1 - Возьми Tasm 5
2 - Сперва Tasm.exe /ключ имя_файла.asm
3 - TLink.exe /ключ имя_файла.obj, , ,
Только после этого появится exe файл
  • 0

#7
gibson85

gibson85
  • Постоялец
  • 316 сообщений

нет, вы получаете .obj файл. его ищо слинкавать надо. TLINK'ом.


Ну само собой я умею делать .com файл, просто я не стал описывать весь процесс получения файла, а то итак текста слишком много получилось в формулировке моего вопроса.

Сообщение отредактировал gibson85: 26.03.2006, 01:33:18

  • 0

#8
gibson85

gibson85
  • Постоялец
  • 316 сообщений

Поробуй вот так...

org 100h
begin:

xor al,3 //Смена видеобуфера
int 10h

mov ax,0B800h;число 0B800h соответствует сегменту дисплея в текстовом режиме 
mov es,ax
mov di,0;0 - Это будет смещение относительно сегмента 0B800h

mov ah,31;(31 - ярко-белый символ на синем фоне) 
mov al,33;ASCII-код символа (33 - !)

mov es:[di],ax 

mov ah,10h;
int 16h; Ждем нажатия клавиши 

int 20h; Выходим из нашей программы

Вроде бы работало.
Просто винда использует не тот видеобуфер. Надо сделать активным видеобуфер 0B800h


А разве не 0B800h я сделал активным?
  • 0

#9
DPA

DPA
  • В доску свой
  • 1 424 сообщений
скомплилил и отлилковал cорцы... вроде даж работает (вынь98, тасм5.0) %) скачай глянь у себя....
http://extrim.city.tomsk.net/VOV.com
  • 0

#10
DPA

DPA
  • В доску свой
  • 1 424 сообщений
The requested URL /~extrim/vov.com was not found on this server. //мая плакать ;) :D
сом то оказытса домен!!! %) %) %)
качать тут http://extrim.city.tomsk.net/vov.rar
я его не паковал - просто надо расширение рар перекинуть на сом!!!
  • 0

#11
gibson85

gibson85
  • Постоялец
  • 316 сообщений

The requested URL /~extrim/vov.com was not found on this server. //мая плакать :) :)
сом то оказытса домен!!! %) %) %)
качать тут http://extrim.city.tomsk.net/vov.rar
я его не паковал - просто надо расширение рар перекинуть на сом!!!


Твой вариант на XP не проходит.


Вариант Альтаира работает на XP без проблем, за что ему спасибо.
  • 0

#12
Altair

Altair
  • Частый гость
  • 59 сообщений

А разве не 0B800h я сделал активным?

mov ax,0B800h просто задает смещение на буфер по адресу 0b800h. Но по умолчанию сеанс MS-DOS у XP выводит на экран сегмент памяти находящийся по другому адресу, не помню по какому, вроде бы 0b000h. Кстати можешь это проверить, выкинь мою вставку и поставь смещение 0b000h.

Вариант Альтаира работает на XP без проблем, за что ему спасибо.

Рад был помочь.
  • 0

#13
Altair

Altair
  • Частый гость
  • 59 сообщений
Вот адрес патча для исправления проблем в SoftICE 4.2.7 запущеной под XP (проблемы с видеодрайвером).

Патч на брейкпоинты
  • 0

#14
DPA

DPA
  • В доску свой
  • 1 424 сообщений
Денисыч, нада еще пачку на крысу... хондрит с айсом зараза (работает токо клава)...
  • 0

#15
Altair

Altair
  • Частый гость
  • 59 сообщений
Я не видел патчей именно на мышу, но вот тут есть Айс именно для ХР. Правда я его не пробовал.

А вот тут установка СофтАйс 4.05 под ХР.
  • 0

#16
TimsoN [X-Code]

TimsoN [X-Code]
  • Частый гость
  • 55 сообщений
Рекомендую использовать вместо SoftIce другой дебагер. Olly Debugger. Хороший дебагер.
  • 0

#17
gibson85

gibson85
  • Постоялец
  • 316 сообщений
xor al,3 //Смена видеобуфера
int 10h - А что делает это прерывание?
  • 0

#18
DPA

DPA
  • В доску свой
  • 1 424 сообщений
xor al,3h /тут у нас останется в ал тройка
int 10h /10h - прерывания бивиса для управления экранной системой
какаяж это смена страницы? это определение положения курсора возврашает (без доков могу конешно попутать) дх - строка, дл - колонка, бх - номер страницы... %/
  • 0

#19
gibson85

gibson85
  • Постоялец
  • 316 сообщений
Наконец-то я установил SoftIce 4.2.7 правильно. Следовал прямо по руководству по установке этой версии.
В итого SoftIce запускается нормально, клава работает, а вот мышь нет (впрочим, судя по обсуждению на форуме, не только у меня одного). Так что с мышью делать-то?
И кстати, как корректно выходить из SoftIce? Ctrl-Alt-Delete чтоли (комп сразу после одиночного нажатия перезагружается, а потом идет проверка диска на ошибки)?
  • 0

#20
gibson85

gibson85
  • Постоялец
  • 316 сообщений
Кстати, SoftIce у меня пошел без всяких патчей.
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.