При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Информационный Канал Subscribe.Ru |
Выпуск № 307
от 05.12.2005, 21:54
Администратор: | Калашников О.А. |
В рассылке: | Подписчиков: 263, Экспертов: 20 |
В номере: | Вопросов: 5, Ответов: 10 |
Вопрос № 30.490 |
Уважаемые эксперты, я просмотрел все "examples" в MASM32, учебник Галисеева "Ассемблер IBM PC" и нигде не нашел элементарнейших вещей: 1) как организовать интерактивный обмен типа, как в Паскале : write('Введите значение:'); readln(x); y:=x*x; write('Результат=',y); 2) Как прочесть число или строку из клипбоарда и сбросить в клипбоард. Помогите, пожалуйста, заранее благодарен, Кривенцов.swarog4@yandex.ru |
Отправлен: 30.11.2005, 09:25 Вопрос задал: Кривенцов Олег Олегович (статус: Посетитель) Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Евгений Иванов Здравствуйте, Кривенцов Олег Олегович! Вот так можно строку поместить в буфер: ;---------------------------------------------------------- ; OUT -> 0 - ошибка, !0 - OK ; proc CopyDataToClipboard ARG @@type :dword USES ebx, esi, edi sub edi, edi Call OpenClipboard, [hWndMain] or eax, eax jz @@exitErr Call EmptyClipboard or eax, eax jz @@exitErr mov ebx, ofs szColor_dec mov eax, [@@type] or eax, eax jz @@m10 mov ebx, ofs szColor_hex @m10: Call GlobalAlloc, GMEM_MOVEABLE, 32 or eax, eax jz @@exitErr0 xchg edi, eax Call GlobalLock, edi or eax, eax jz @@exitErr1 xchg esi, eax Call lstrcpy, esi, ebx or eax, eax jz @@exitErr2 xchg esi, eax Call GlobalUnlock, esi sub esi, esi Call SetClipboardData, CF_TEXT, edi or eax, eax jz @@exitErr1 Call CloseClipboard @exitOk: sub eax, eax inc eax @ret: ret @exitErr2: or esi, esi jz @@e1 Call GlobalUnlock, esi @e1: @exitErr1: or edi, edi jz @@e0 Call GlobalFree, edi @e0: @exitErr0: Call CloseClipboard @exitErr: sub eax,eax jmp @@ret endp --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 30.11.2005, 10:10 Оценка за ответ: 5 |
Отвечает: Sager Здравствуйте, Кривенцов Олег Олегович! 1)В приложении прога организовывает интерактивный обмен, только единственное заметь, что числа выводятся в 16-ричном виде, и еще один баг - это если число например 15*15=1B9 (а 14h*14h=190h, 12h*12h=144h), то выведутся числа с крякозябрами - думаю сам легко исправишь - самому просто лень. А чтобы перевести число из 16-ричного в десятичное поступай так: берешь самую левую цифру и умножаешь ее на 16^0, затем следующую влево цифру - умножаешь на 16^1 и складываешь с предыдущим результатом, затем умножаешь на 16^2 и опять складываешь и т.д. Пример: F1Ah = 15*[16^2] + 1*[16^1] + 10*[16^0] = 10 + 16 + 3840 = 3866 Если будут какие вопросы - пиши. Приложение: |
Ответ отправил: Sager (статус: Студент) Отправлен: 30.11.2005, 20:00 Оценка за ответ: 5 |
Вопрос № 30.503 |
Здравствуйте уважаемые эксперты. У меня такой вопрос (я не совсем понял кому его задавать и поэтому задаю вам): можно ли где-то достать ПОДРОБНУЮ информацию о том как работать с отладчиком AFDpro. ADF я скачал на Kalashnikoff.ru Зарание спасибо за ответ. |
Отправлен: 30.11.2005, 11:25 Вопрос задал: Дмитрий Сергеевич (статус: Посетитель) Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Boriss Здравствуйте, Дмитрий Сергеевич! Вот посмотрите - скачайте прикрепленный Прикреплённый файл: Загрузить >> |
Ответ отправил: Boriss (статус: Профессор) Отправлен: 30.11.2005, 11:49 Оценка за ответ: 5 Комментарий оценки: Действительно ПОДРОБНО!:) |
Вопрос № 30.527 |
Уважаемые эксперты ! Есть простейший листинг : .386 .model flat,stdcall option casemap:none .code start: push dword ptr 2 push dword ptr 3 call AddDigs ret AddDigs proc mov eax,[esp+8] ; eax=2 add eax,[esp+4] ; eax=5 ret 8 AddDigs endp end start Программа спокойно проходит компиляцию. Однако, после запуска exe-файла, в отладчике OllyDebug появ- ляется сообщение-рекомендация: " Память по адресу 77E97CC6 не читаемая. Попытайтесь сменить EIP или выходите из программы." Комп имеет RAM 1024 Мб. Не могли бы Вы разъяснить почему получается такая оказия ? |
Отправлен: 30.11.2005, 19:38 Вопрос задал: Бочкарёв Алексей (статус: Посетитель) Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Евгений Иванов Здравствуйте, Бочкарёв Алексей! Пиши просто push 2 push 3 --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 30.11.2005, 20:09 |
Отвечает: Хузин Макс Здравствуйте, Бочкарёв Алексей! Вроде все путем, посмотрел под SICE-ом - все работает нормально. Проверь в отладчике значение регистра esp в начале проги и перед выходом. Может компилятор чего добавляет в процедуру, типа push ebp mov ebp, esp Если ничего не получится, не парься переходи на SICE |
Ответ отправил: Хузин Макс (статус: 1-ый класс) Отправлен: 01.12.2005, 09:14 |
Вопрос № 30.534 |
Как меня любезно просветили, функция 3 прерывания 10h переводит экран в текстовый режим. А какая функция выводит его из текстового режима? А то всё время приходится закрывать-открывать Far чтобы выйти из него. Спасибо за ответ. |
Отправлен: 30.11.2005, 21:10 Вопрос задал: Дмитрий Сергеевич (статус: Посетитель) Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 19) |
Отвечает: Евгений Иванов Здравствуйте, Дмитрий Сергеевич! mov ax, 19456 int 33 --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 30.11.2005, 21:29 Оценка за ответ: 2 Комментарий оценки: Не работает. |
Отвечает: Sager Здравствуйте, Дмитрий Сергеевич! Тогда ты в самом начале проги сохраняй экран(Save_mainscr), а перед выходом восстанавливай(Restore_mainscr) Приложение: |
Ответ отправил: Sager (статус: Студент) Отправлен: 01.12.2005, 17:41 |
Вопрос № 30.536 |
В книге Калашникова О. А. вот такая вот программка, она просто заполняет экран символами, по очереди.... ( я думаю что все и без меня догадались что она делает, это скорее нужно мне) так вот в коде написано, что я куда переместил, я ожидал что программа будетзаполнять экран символами по очереди, только при нажатии мной любой клавиши, в принципе так и произошло, но только на экране появлялись символы, той клавиши что я нажимал...... меня терзают смутные сомненья :) что при прерывании 16h, код клавиши заносится в AL , а отсюда вопрос, где можно взять табличку, с кодами всех символов ? Приложение: |
Отправлен: 30.11.2005, 21:30 Вопрос задал: Wlp (статус: Посетитель) Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Евгений Иванов Здравствуйте, Wlp! mov ax,0B800H MOV ES,AX mov ah,10h int 16h mov al,1 mov ah,31 mov ch,254 n_sc: mov di,0 call firc; inc al loop n_sс а коды символов - они в любой справке описаны. и это ещё зависит от кодировки. например, кодировка cp1251: ╔[■]══════ ASCII Chart ══════════╗ ║ ☺☻♥♦♣♠∙◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼║ ║ !"#$%&'()*+,-./0123456789:;<=>?║ ║@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_║ ║`abcdefghijklmnopqrstuvwxyz{|}~⌂║ ║АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ║ ║абвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐║ ║└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀║ ║рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ ║ ╟────────────────────────────────╢ ║ Char: Decimal: 0 Hex: 00 ║ ╚════════════════════════════════╝ Приложение: |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 30.11.2005, 21:50 Оценка за ответ: 5 Комментарий оценки: Спасибо за cell firc , а насчёт символов, в справке пороюсь ещё.... |
Отвечает: Sager Здравствуйте, Wlp! На сайте kalashnikoff.ru есть прога helpassm - там есть и коды и много еще чего. Приложение: |
Ответ отправил: Sager (статус: Студент) Отправлен: 01.12.2005, 11:02 Оценка за ответ: 5 Комментарий оценки: Синкс, я посмотрю эту справку, так как она у меня на компе есть, просто, когда я первый раз защёл на сайт,я скачивал по принципу "чем больше тем лучше, потом разберусь.." |
Отвечает: Master135 Здравствуйте, Wlp! http://www.rvsn2.narod.ru/download/code.zip вот и все коды --------- И пусть кто-то скажет что я не прав.... |
Ответ отправил: Master135 (статус: Студент) Отправлен: 02.12.2005, 02:13 |
© 2001-2005, Портал RusFAQ.ru, Россия, Москва. Идея, дизайн, программирование: Калашников О.А. Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31 Авторские права | Реклама на портале |
|
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq Архив рассылки |
Отписаться
Вспомнить пароль |
В избранное | ||