Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никто не подскажет как в масме (или тасме) подключать (обращаться) к wmi? или где это можно прочитать.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 01:54 19-09-2009
MeDveD3A9l

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста с задачами)))) скоро экзамен!!!! Буду очень благодарен)
 
1. С клавиатуры вводится строка, содержащая прописные и строчные буквы. Выбрать из строки прописные буквы и вывести их на экран.
 
2. Даны две строки. Необходимо символы, стоящие на четных позициях первой строки, заменить символами, стоящими на четных позициях второй строки и наоборот. Результат вывести на экран.

Всего записей: 1 | Зарегистр. 20-09-2009 | Отправлено: 17:55 20-09-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MeDveD3A9l
а что ты сам написал, где непонятки?
ведь экзамен по ассемблеру не продавцы и таджики-дворники сдают...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 18:51 20-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
от сесси до сессии живут студенты весело - все в последние три дня делается. хотя конечно странно если ассемблер то специальное образование должно быть

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:57 20-09-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
специальное образование должно быть

вернее он это спецальное образование только получает...
он будет программистом!

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 13:40 21-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никто не может на пальцах объяснить как запросы идут при создании окна - пытаюсь дебугировать программу и все ранвоне могу понять, что кого вызывает и как месаги обрабатываются. английский не настолько хорошо знаю - видимо какие то ньюансы не понял, перевод дебильный, а нормальной статейки не могу найти. все ограничиваются однотипными штампами.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:44 21-09-2009
Avenger2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помоги пожалуйста с задачками по ассму! пожалуйста  
1)Составить программу на языке высокого уровня (Pascal, C++) с использованием ASM-вставок или подпрограмм. На Asm  написать ввод-вывод или обработку массива. Найти обратную матрицу.
Конкретно нужна ассемблерная вставка для обработки массива для нахождения обратной матрицы))
2)Создать 32-х разрядное приложение – стандартное окно, которое является видимым по умолчанию и его граница является «тонкой», имеющее системное меню в строке заголовка и вертикальную полосу прокрутки. Содержимое диалогового окна должно быть следующим:
•    3 флажка (checkbox);
•    1 список (list);
•    1 обычная кнопка (button).
При выборе флажка в список добавляется соответствующая запись со словом “yes”, а при его отключении флажка в список добавляется соответствующая запись со словом “no”. Если была нажата обычная кнопка список очищается.
 
Огромное спасибо ! Очень помощь нужна

Всего записей: 1 | Зарегистр. 29-09-2009 | Отправлено: 01:39 29-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
врядли кто нибудь будет такую чушь писать - если бы у тебя было что то и не работало....

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 01:52 29-09-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Avenger2009
запрос на курсовые и дипломы для "программистов" на этом форуме в другом месте, вот здесь, например...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 11:57 29-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди че у меня не работают ползунки дурацкие? уже перепробовал все стили    
 
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:35 29-09-2009 | Исправлено: bomzzz, 20:45 29-09-2009
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
ну а ты как-то обрабатываешь их? если ты пишешь на чистом апи, то ты как бы сам заботишься об этом

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 00:29 30-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
чтож это зааползунки такие? ну ладно подождем, доберусь и до этого. а какое они сообщение посылают???
Lyrik
а как от чужого окна сообщение перехватить? или это не реально? как узнать какое сообщение получается експлорер при изменении свойств папки когда он обновляет свою конфигурацию без перезагрузки????
хендл получил рабочего стола - и как бы написал чтоб сообщения получались для этого хендла, ну и нолики подряд идут. может че неправильно было.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 02:10 30-09-2009 | Исправлено: bomzzz, 06:55 30-09-2009
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
чтож это зааползунки такие? ну ладно подождем, доберусь и до этого. а какое они сообщение посылают???

при создании окна задайте стили WS_VSCROLL и WS_HSCROLL. потом в цикле обработке сообщений виндовс обрабатывайте WM_VSCROLL и WM_HSCROLL. более детально - как всегда в мсдн.

Цитата:
а как от чужого окна сообщение перехватить? или это не реально?

воспользуйте утилитой spy++, которая входит в комплект с визуал студио. там узнаете необходимое сообщение для интересующего окна.

Цитата:
хендл получил рабочего стола - и как бы написал чтоб сообщения получались для этого хендла, ну и нолики подряд идут. может че неправильно было.

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

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 13:46 30-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да я так сляпал на ходу - не сохранился код. с визуал студио ну надо искать ставить пробовать. сделаим.
 
посоветуй пожалуйста книгу хорошую по MASM-у- чета ниче хорошего не могу найти. воды налито или простого не объясняют совсем. седня час не мог поделить - даже смешно, вот где написано что надо edx сначала обнулить. случайно нагуглил код. и вот так продираюсь сквозь дебри. даже не книгу а что то бы типа справочника - команды и расписано детально как работает. кратко но понятно и  с примером.

Цитата:
 
Assembler&Win32. Курс молодого бойца.
Туториалы Iczelion'а
Ассемблер под Windows для чайников
MASM32 Help
 

 
поставил SPY++ и WINID свойства окон они показывают но сообщения чета не могу найти где.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:57 30-09-2009 | Исправлено: bomzzz, 14:39 30-09-2009
Infinite Retrieval

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, где бы попроще почитать про модель памяти в Windows, и про то, как указатели и адресса переменных в программе связанны с реальными адресами в памяти.

Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 00:31 01-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
В 16-разрядном программировании, сегменты необходимы. К счастью, эта проблема решена в 32-разрядном Windows (95 и выше). Вы все еще имеете сегменты, но вам не нужно заботиться о них, потому, что они уже не 64kb (как в 16-разрядном), а 4 Гб. Windows вероятно даже "повиснет", если вы попытаетесь изменить один из сегментных регистров. Это называеся плоской моделью памяти (flat). Здесь есть только смещения и они теперь 32-разрядные (в диапазоне от 0 до 4,294,967,295). Каждая ячейка в памяти указывается смещением. Это действительно одно из лучших преимуществ 32-разрядного программирования над 16-разрядным. Так что теперь вы можете забыть о сегментных регистрах и сосредоточиться на других регистрах.  
 Но 4ГБ может и не быть на машине, поэтому эта память называется виртуальной. Мало того, каждый процесс выполняется в своём виртуальном адресном пространстве. А это значит, что никакой другой процесс не сможет получить доступ к вашей памяти. Для этого существуют специальные API функции, но для их использования нужно иметь специальные привилегии в системе. Память 0-0000FFFF не используется и служит для выявления нулевых указателей, значит, если вы укажете адрес 0000С567, то он будет считаться нулевым, удобно, не правда ли? Любая попытка обратится к этой памяти приводит к ошибке. Память выше 80000000 одна для всех процессов. В этой памяти находится код нулевого кольца, структуры ядра, код планировщика задач, код драйверов, диспетчер ввода вывода, таблица прерываний и т.д. Любая попытка обратиться к памяти ядра приводит к ошибке и к немедленному завершению приложения. Память в диапазоне 00001000-7FFFFFFF доступна для 3 кольца, т.е. для вашего приложения. С ней вы, что хотите то и делаете, в неё также грузятся Дллки.  
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 00:44 01-10-2009
Infinite Retrieval

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Память в диапазоне 00001000-7FFFFFFF доступна для 3 кольца, т.е. для вашего приложения.

тобишь, например:
 
push EDI;
mov EDI, 1000h; (насколько я помню мы потом должны востановить входные значение всех регистров, кроме EAX, который возвращает значения)
mov EAX, 5;
mov [EDI], EAX;
pop EDI;
retn;
 
будет корректно работать, а вот если я обращусь не в 00001000-7FFFFFFF , то будет ошибка.
 
И ещё вопрос: если для каждой программы память своя, то зачем сделали доступным прямое обращение по адрессу памяти, ведь я могу взять, и перетереть всё третье кольцоЮ убив все пользовательские программы. Мне кажется, что это невозможно.

Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 01:06 01-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
можешь.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 05:56 01-10-2009
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
поставил SPY++ и WINID свойства окон они показывают но сообщения чета не могу найти где.

выбираешь нужное окно - ПКМ - Messages. Потом меню Messages-Stop Logging. и потом в Messages-Logging Options ставишь все, что хочешь.

Цитата:
посоветуй пожалуйста книгу хорошую по MASM-у- чета ниче хорошего не могу найти.

книг не встречал. справка масма и гугль в помощь. а по поводу обнуления edx может просто глюк в алгоритме был. или автор где-то раньше его обнулил.
Infinite Retrieval

Цитата:
push EDI;  
mov EDI, 1000h; (насколько я помню мы потом должны востановить входные значение всех регистров, кроме EAX, который возвращает значения)  
mov EAX, 5;  
mov [EDI], EAX;  
pop EDI;  
retn;  
будет корректно работать

будет, если память по адресу 1000h уже выделена и дотсупна для записи. иначе - ACCESS_VIOLATION.  

Цитата:
ведь я могу взять, и перетереть всё третье кольцоЮ убив все пользовательские программы

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

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 17:00 02-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
можешь.

Агащазблин.
Один и тот же адрес в разных приложениях смапируется на разные физические адреса, так что не всё так просто. Читайте про страничную организацию доступа к памяти. Здесь, например.
 
Lyrik

Цитата:
можешь, только для этого программе надо обладать необходимыми привилегиями  

Доступ к страничному регистру CR3 возможен только с кольца 0.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 17:20 02-10-2009 | Исправлено: Abs62, 17:23 02-10-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru