Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 291
от 15.06.2002, 08:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 436 Отправлено ответов: 1157 Активность: 265.3 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
masquer Статус: Профессиональный Общий рейтинг: 160.64 [Подробней >>] |
UFO Статус: Опытный Общий рейтинг: 119.08 [Подробней >>] |
GL Статус: Опытный Общий рейтинг: 112.02 [Подробней >>] |
Gibbel Статус: Доверительный Общий рейтинг: 110 [Подробней >>] |
Beeblebrox Статус: Опытный Общий рейтинг: 128.95 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Dark_Lord Статус: Опытный Общий рейтинг: 118.91 Телефон: 36 30 3862503 [Подробней >>] |
Zloy Статус: Доверительный Общий рейтинг: 104.97 [Подробней >>] |
kvINT Статус: Доверительный Общий рейтинг: 116.74 [Подробней >>] |
VD Статус: Опытный Общий рейтинг: 116.34 URL: Программирование графики на Пакаль со вставками на [Подробней >>] |
Vint by Shz Статус: Доверительный Общий рейтинг: 116.01 [Подробней >>] |
vitya Статус: Опытный Общий рейтинг: 117.15 [Подробней >>] |
v4D Статус: Опытный Общий рейтинг: 112.55 [Подробней >>] |
Федос Статус: Начальный Общий рейтинг: 120 [Подробней >>] |
Guess Who Статус: Начальный Общий рейтинг: 103.22 [Подробней >>] |
Тorax Статус: Доверительный Общий рейтинг: 113.65 [Подробней >>] |
LAO Статус: Опытный Общий рейтинг: 117.52 [Подробней >>] |
igorash Статус: Опытный Общий рейтинг: 133.75 [Подробней >>] |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 130 URL: Пристанище неодинокого программиста [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 397. Здравствуйте, уважаемые эксперты! вопрос то у меня собственно такой: поставил я SoftIce из DriverStu... (ответов: 1)
Вопрос № 398. Здраствуйте уважаемые эксперты. Вот тут написал програмку, которая после ввода числа должна вычисл... (ответов: 4)
Вопрос № 400. Здравствуйте, уважаемые эксперты! При прохождении первого же урока рассылки у меня возник такой воп... (ответов: 11)
Вопрос № 401. Здравствуйте, уважаемые эксперты! При прохождении первого же урока рассылки у меня возник такой воп... (ответов: 3)
Вопрос № 403. Здравствуйте Эксперты! Ламерский вопрос о программирование под винды! Мне нужно вывести график в окн... (ответов: 5)
Вопрос № 406. Здравствуйте эксперты! Помогите скрыть процесс Win32 от Task Manager NT – приложение привожу. Тупо, ... (ответов: 1)
Вопрос № 407. Привет всем! Писал недавно в эту рассылку, но подтверждения не получил. Прийдется повторить. Суть та... (ответов: 2)
Вопросов: 7, ответов: 27
Вопрос № 397 |
Здравствуйте, уважаемые эксперты!
вопрос то у меня собственно такой: поставил я SoftIce из DriverStudio 2.5 под сначала под Win2000, потом и под XP пробовал - ситуяция одинаковая. Стартовал его различными способами - и при при стартовой загрузке, и вручную - по Ctrl-D активируется, но
почему-то не срабатывают breakpoints и SymbolLoader при открытии любой проги, хоть с отладочной информацией, хоть без оной пишет, что все, дескать загружено, но SoftIce не активируется...
Может я чего не так делаю...
Вопрос отправлен: 10.06.2002, 09:03
Отправитель: Major Pain (mpain@online.sinor.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, Major Pain!
Что все бряки не срабатывают? Если ты на какую-то функцию бряк ставишь, то проверь, если не уверен, что айс имеет о ней информацию exp YourFuncName, если на память, то, возможно, ты не находишься в адресном пространстве процесса.
С СимволЛоадером есть такая проблема. Я ее рашаю так, открываю Module->Settings... и во всех закладках еще раз прощелкиваю установленные флажки, обычно после первого раза срабатывает. Есть другой путь. В программе в точке входа первым байтом прописываешь CC (опкод int 3). В айсе вводишь команду I3HERE. После выскакивания окна заменяшь CC на оригинальный байт.
Ответ отправлен: 10.06.2002, 09:17
Отправитель: masquer
Вопрос № 398 |
Здраствуйте уважаемые эксперты.
Вот тут написал програмку, которая после ввода числа должна вычислять 16% от него. Одноко ничего не происходит.
Помогите пожалуйста разобратся с ней (а ткже обясните как считывать данные из буфера желательно поподробней).
Приложение:
Вопрос отправлен: 10.06.2002, 10:51
Отправитель: nenemo
[Следующий вопрос >>] [Список вопросов]
Отвечает UFO
Приветствую Вас, nenemo!
Если ты мне покажешь в своей программе число 16, я тебе напишу_программу,которая будет вычислять, то, что тебе нужно.
Ты даже и не пытался это сделать.
ЗЫЖ Тут без вещественных чисел не обойтись, а это куча кода.
Ответ отправлен: 10.06.2002, 14:12
Отправитель: UFO
Отвечает GL
Доброе время суток, nenemo!
И не может происходить, т.к. самих вычислений в программе-то нет :(
Весь алгоритм примерно такой:
1. ввести число
2. преобразовать его из символьного в двоичный вид
3. поделить на 100
4. умножить на 16
5. результат преобразовать из двоичного в символьный
6. вывести на экран
Какой буфер имеется в виду? Если из твоей программы, то:
mov al,bufer
mov al,bufer+1
mov al,bufer+2
и т.д.
Ответ отправлен: 10.06.2002, 13:15
Отправитель: GL
Отвечает Gibbel
Добрый день, nenemo!
А где то, что не работает???
Ответ отправлен: 10.06.2002, 11:58
Отправитель: Gibbel
Отвечает Beeblebrox
Здравствуйте, nenemo!
.model tiny
.code
org 100h
sta:
mov dx,offset mess1
mov ah,9
int 21h
mov dx,offset buffer
mov ah,0ah
int 21h
mov dx,offset crlf
mov ah,9
int 21h
; buffer содержит число в ascii виде
call ascii2ax ; сам напиши ее
mov bx,16
mul bx
mov bx,100
div bx
; ax содеpжит ответ.
retn
ascii2ax:
; здесь вписать программу перевода из ascii в число (регистр ax)
retn
mess1 db 'введите число'
crlf db 0dh,0ah,'$'
buffer db 128 dup(?)
end sta
Ответ отправлен: 10.06.2002, 11:29
Отправитель: Beeblebrox
Вопрос № 400 |
Здравствуйте, уважаемые эксперты!
При прохождении первого же урока рассылки у меня возник такой вопрос. Что означают буквы db при выводе сообщения на экран:
...
mov dx,offset Sring
...
String db 'Test message$'
...
Буду очень признателен за объяснение.
Вопрос отправлен: 10.06.2002, 14:12
Отправитель: Вадим
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, Вадим!
define byte - db - т.е. строка как набор байтов, есть еще define word - dw, define double - dd, определить слово и двойное слово соответственно.
А повторять вопрос не надо, читать умеем :)
Ответ отправлен: 10.06.2002, 17:58
Отправитель: masquer
Отвечает Dark_Lord
Доброе время суток, Вадим!
db - byte (байт)
dw - word (Слово)
dd - doubleword (двойное слово)
Ответ отправлен: 10.06.2002, 20:20
Отправитель: Dark_Lord
Отвечает Zloy
Приветствую Вас, Вадим!
Это одна из директив определения данных. Ну типа, как int или char в языках высокого уровня. Данные могут быть:
DB - определить байт -
DW - определить слово -
DD - двойное слово (4 байта) -
DQ - четыре слова (8 байт) -
DT - десять байт -
- db - позволяет определить строку любой длинны или однобайтовую константу.
Ответ отправлен: 10.06.2002, 19:25
Отправитель: Zloy
Отвечает kvINT
Приветствую Вас, Вадим!
db - значит строка с именем String состоит из байт.
dw - резервируется память для слова
dd - для данных размером в 4 байта
df - 6
dp - 6
dq - 8
dt - 10 байт
Это директивы резервирования и инициализации данных, указывают транслятору выделить определенный объем памяти.
Аналог объявления и определения переменных на С.
Ответ отправлен: 10.06.2002, 20:01
Отправитель: kvINT
Отвечает Beeblebrox
Доброе время суток, Вадим!
Это объявление переменной типа "массив байт"
Аналог на С выглядит так:
unsigned char String[]="Test message";
Отличие в том, что на С строка заканчивается нулем, а на асме ты сам определяешь, чем тебе выгоднее закончить строку. Например, для последующей печати строки функцией 9 прерывания int 21h надо заканчивать строку символом '$'
Ответ отправлен: 10.06.2002, 14:39
Отправитель: Beeblebrox
Отвечает VD
Здравствуйте, Вадим!
Это говорит что данные резервируются как байты, тоесть d - data b - byte
Ответ отправлен: 10.06.2002, 15:10
Отправитель: VD
Отвечает Vint by Shz
Дмюоьх делщ, Ачдук!
Амп фупчпчпч:
Дйз мноедейелуз ыйекелпма дчлльс укевпъз ъйедявшуе дуоеипуаь: DB
(ючхп), DW (ъймам), DD (дамхлме ъймам), DQ (ябепаеоеллме ъймам) у DT
(деъзпщ ючхп).
Аьочтелуе кмтеп ъмдеотчпщ имлъпчлпя, лчноукео:
FLD1 DB 25
уйу цлчи амномъч дйз лемноедейеллмжм цлчбелуз, лчноукео
FLDB DB ?
Аьочтелуе кмтеп ъмдеотчпщ леъимйщим имлъпчлп, очцдейелльс цчнзпьку у
мжочлубелльку пмйщим дйулмх ъпомиу:
FLD3 DB 11, 12, 13, 14, 15, 16, ...
Чъъекюйео мноедейзеп ыпу имлъпчлпь а ауде нмъйедмачпейщлмъпу cкетльс ючхп.
Ъъьйич нм укелу FLD3 яичцьачеп лч неоаяв имлъпчлпя, 11, нм FLD3+1 - лч
апмояв, 12. (FLD3 кмтлм ноедъпчаупщ ичи FLD3+0). Лчноукео имкчлдч
MOV AL,FLD3+3
цчжоятчеп а оежуъпо AL цлчбелуе 14 (эеъп. 0E). "
Ыпм дйз буъймаьс цлчбелух ,ч а памTк ноукеое DB оецеоауояеп ле зфехия чнкзпу очцкеома а ючхп ,ч нчкзпщ нмд ъпомия очцкеомк дм 255 ъукамйма.
Ответ отправлен: 11.06.2002, 08:07
Отправитель: Vint by Shz
Отвечает vitya
Приветствую Вас, Вадим!
db - озночает define byte, позволяет выделить память для одного или массива из байтов.
Ответ отправлен: 10.06.2002, 14:23
Отправитель: vitya
Отвечает v4D
Приветствую Вас, Вадим!
db - резервируем память для данных размером 1 байт
mov dx, offset String - смещение String заносим в dx
Ответ отправлен: 10.06.2002, 23:22
Отправитель: v4D
Отвечает Федос
Добрый день, Вадим!
define byte
Ответ отправлен: 10.06.2002, 18:25
Отправитель: Федос
Отвечает Guess Who
Здравствуйте, Вадим!
db - это директива Ассемблера, которая указывает компилятору, что нужно включить в программу данные, размерность которых 1 байт. Т.о. под каждую букву в строке выделяется 1 байт. Также существуют и другие подобные директивы:
dw - определить ячейку памяти размером в слово(2 байта)
dd - - - - - - - - - - - - - - - - - двойное слово(4 байта)
df - 6 байт
dq - 8 байт
dt - 10 байт
Если совсем точно, то мы указаываем тип переменной.
Ответ отправлен: 11.06.2002, 00:30
Отправитель: Guess Who
Вопрос № 401 |
Здравствуйте, уважаемые эксперты!
При прохождении первого же урока рассылки у меня возник такой вопрос. Что означают буквы db при выводе сообщения на экран:
...
mov dx,offset Sring
...
String db 'Test message$'
...
Буду очень признателен за объяснение.
Вопрос отправлен: 10.06.2002, 14:12
Отправитель: Вадим
[Следующий вопрос >>] [Список вопросов]
Отвечает Тorax
Здравствуйте, Вадим!
Здесь db означает, что для каждой буквы, которая в лапках, будет зарезервирован байт со значением этой буквы в ASCII.
Вообще-то рассылка хорошо, но книга(бумажная) - лучше :-))
Torax
Ответ отправлен: 10.06.2002, 22:19
Отправитель: Тorax
Отвечает LAO
Приветствую Вас, Вадим!
db - тип данных: байт. В данном случае - строка из определенного числа элементов, размер каждого - 1 байт.
Ответ отправлен: 10.06.2002, 22:32
Отправитель: LAO
Отвечает igorash
Здравствуйте, Вадим!
Define Byte, т.е. определить байт. ВЫ что ваще книжек не читаете там???
Ответ отправлен: 13.06.2002, 19:27
Отправитель: igorash
Вопрос № 403 |
Здравствуйте Эксперты!
Ламерский вопрос о программирование под винды! Мне нужно вывести график в окно win32 и я не намерен свой графики(одна-две линии) записовать в .bmp , мне просто нужно вывести линию! Но во всех примерах, книгах и т.д. написано:
"Вывод БИТМАПА на экран"
Помогите! Скажите, как вывести точку хотя бы на экран!
Вопрос отправлен: 10.06.2002, 21:04
Отправитель: Dark_Lord
[Следующий вопрос >>] [Список вопросов]
Отвечает Zloy
Приветствую Вас, Dark_Lord!
Сначала получаешь DC.
Вывод пихеля - SetPixel (hDC, X, Y, RGB (Red, Green, Blue);
Линии - MoveTo (hDC, X0, Y0);
LineTo (hDC, X, Y);
Ну и удаляешь DC.
PS>про ДС посмотри в "Вывод БИТМАПА на экран", там точно про это есть и вообще читай MSDN!
Ответ отправлен: 11.06.2002, 19:57
Отправитель: Zloy
Отвечает Артём Шегеда
Доброе время суток, Dark_Lord!
Просто точку?
Точка - есть прямая нулевой длины. Вот это нам и нужно!
Есть такие функции: MoveToEx и LineTo. Рисовать нужно по КонтекстуУстройства (DC).
Кроме того, тебе пригодятся функции CreatePen, SelectObject и DeleteObject. Без Win32SDK не разберёшься - а пересказывать N мегабайт мне в лом...
Пример на Си.
Приложение:
Ответ отправлен: 10.06.2002, 22:43
Отправитель: Артём Шегеда
Отвечает Gibbel
Здравствуйте, Dark_Lord!
Винды устроены так, что любое изображение в них представляется в виде битмапа (любит мелкософт изврат)). Для вывода линии/точки тебе необходимо получить контекст окна (грубо говоря, ссылку на тот самый битмап, который отображается в твоем окне) и в него уж рисовать, а для этого уже можно пользоваться стандартными виндовыми функциями.
Ответ отправлен: 11.06.2002, 09:45
Отправитель: Gibbel
Отвечает masquer
Приветствую Вас, Dark_Lord!
Получаешь контекст устройства (окна, например) и используешь функции GDI
Ответ отправлен: 10.06.2002, 22:40
Отправитель: masquer
Отвечает vitya
Приветствую Вас, Dark_Lord!
Используйте API фунцкии. Вам нужна переменная типа HDC и для нее вызовите функцию GetDC(). Дальше вы открываете MSDN и смотрите какие функции вам нужны. Скорее всего вам понадобятся MoveTo(), LineTo(), Rectangle(), Ellipse(), FillRect() и конечно, TextOut(). После работы надо не забыть и вызвать ReleaseDC() что бы освободить устройство.
Ответ отправлен: 14.06.2002, 08:46
Отправитель: vitya
Вопрос № 406 |
Здравствуйте эксперты!
Помогите скрыть процесс Win32 от Task Manager NT – приложение привожу. Тупо, но хотелось бы знать, существуют способы решения этой задачи или нет. Для собственной подстраховки. Он похоже перебирает процессы по их ID в global descriptor table, а может и нет – все таки у него привилегии драйвера – в общем я мало знаю пока об этом…
Спасибо всем ответившим.
P.S. если кому интересно приводит Win98 в невменяемое состояние в считанные секунды на быстрых процессорах, чем быстрее тем лучше…только размер стека дочернего процесса не оптимизирован, но большой лучше не делать - просто забивает всю виртуальную память, но Win продолжает работать.
Приложение:
Вопрос отправлен: 10.06.2002, 22:36
Отправитель: re666_im7
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, re666_im7!
Это не интересно, интересней создавать окна, так что таск манагеру даже не удастся создать свой экземпляр окна. А спрятать задачу по НТ тебе не удастся, по крайней мере я такой информации не имею. Дополнительно можешь Рихтера почитать по этой теме.
Ответ отправлен: 11.06.2002, 07:37
Отправитель: masquer
Вопрос № 407 |
Привет всем!
Писал недавно в эту рассылку, но подтверждения не получил. Прийдется повторить. Суть такая- на сайте Assembler.ru ,был тест для настоящих программистов. Был там вопрос про комманду XOR. В примечании писалось, что каждый настоящий программист мечтает написать программу из одних XOR'ов. Я загорелся этой идеей и написал нижеследующее. Понимаю, что писать такие программы глупо, но всетаки здесь присутствует доля юмора. И еще, в данный момент я пытаюсь написать упаковщик для программ меньше килобайта, по этому буду рад любой информации по данной теме.
Приложение:
Вопрос отправлен: 11.06.2002, 04:44
Отправитель: Trever (trever72@mtu-net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Здравствуйте, Trever!
По вопросу об упаковщике почитай
http://book.itep.ru/1/intro1.htm
Кроме того, в этой книге есть ответы на все остальные вопросы, которые человек способен задать:)
Ответ отправлен: 11.06.2002, 10:58
Отправитель: Beeblebrox
Отвечает igorash
Добрый день, Trever!
А сколько у тебя по тесту??? У меня что-то около 75-80, не помню уже. А прога веселая, ;).
Ответ отправлен: 13.06.2002, 19:26
Отправитель: igorash
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (51) C / C++ (31) Perl (10) Delphi (14) Pascal (26) Basic / VBA (15) Java / JavaScript (6) PHP (7) MySQL / MSSQL (7) |
Пользователю Windows 95/98/Me (47) Windows NT/2000/XP (33) "Железо" (39) Поиск информации (20) |
Администратору Windows NT/2000/XP (15) Linux / Unix (9) |
Юристу Гражданское право (11) Семейное право (5) Трудовое право (6) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||