Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 738
от 07.06.2004, 13:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 5426
Отправлено ответов: 14890
Активность: 274.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Стас
Статус: Опытный
Общий рейтинг: 128.96
[Подробней >>]
Dragoon
Статус: Доверительный
Общий рейтинг: 108.3
[Подробней >>]
Snowm@n
Статус: Опытный
Общий рейтинг: 111.72
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.71
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 134.44
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.6
[Подробней >>]
 
VOVAN
Статус: Опытный
Общий рейтинг: 105.52
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 5384. Здравствуйте, уважаемые эксперты! Огромное спасибо Вам за оказанную мне помощь дельными советами. Ни... (ответов: 1)
Вопрос № 5386. Здаров. Где можно скачать описание структуры файлов .jpg или .gif или .bmp или .png?... (ответов: 2)
Вопрос № 5388. Здраствуйте. 1)Хочу узнать ваш TOP X книгтуториаловрассылок... которые вы бы порекомендовали для изу... (ответов: 2)
Вопрос № 5390. Привет У меня пробела при компиляций DLL в MASM6: Из одной статьи взял код: ------------------------... (ответов: 3)
Вопрос № 5392. Как посчитать сумму главной диагонали матрицы порядка n на n... (ответов: 2)
Вопрос № 5393. Доброе время суток! К вопросу про динамическую память. Один эксперт(забыл кто, наверное Евгений Иван... (ответов: 1)
Вопрос № 5394. Здравствуйте уважаемые эксперты… С какого адреса, и до какого расположена экранная область в MS-DOS?... (ответов: 6)
Вопрос № 5395. Здравствуйте. Где я могу скачать TASM32.exe и TLINK32.exe?... (ответов: 2)
Вопрос № 5396. Здравствуйте,я программирую под DOS.У меня в программе есть цикл loop с задержкой и мне нужно чтобы ... (ответов: 5)
Вопрос № 5397. Как в защищённом режиме установить видеорежим 640x480x256 ?... (ответов: 1)

Вопросов: 10, ответов: 25


 Вопрос № 5384

Здравствуйте, уважаемые эксперты!
Огромное спасибо Вам за оказанную мне помощь дельными советами. Никак не могу дописать программу для MicroPC (чтение данных с одного СОМ-порта, конвертирование и отправка данных на другой СОМ-порт), так как не было четкого алгоритма. Увы без алгоритма не получается, так как нет внешних устройств под рукой (счетчик газа и PLC «Yokogawa»). Но до поездки в командировку хотелось бы отладить алгоритм на месте и дописать прогу, а уж на объекте все это дело отлаживать. Поэтому я Вас «мучаю» своими вопросами, так как такого рода задача (СОМ-порт, протоколы) мне была поставлена впервые, да и на объекте я буду один, без интернета, телефона.
Уважаемые эксперты! Помогите, пожалуйста, проверьте алгоритм в приложении. Укажите мне на неточности, недоработки. Выскажите свои замечания или предложения.
Заранее благодарю всех откликнувшихся! Да продлит Аллах ваши дни!


Приложение:


Вопрос отправлен: 02.06.2004, 01:01
Отправитель: Эдуард (hied345@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Стас

Приветствую Вас, Эдуард!
Обломс, а где же программа?
Вообщем я на твоем месте полностью написал бы программу,
подменил обработчики IRQ COM портов "заглушками", а по прерыванию от клавиатуры писал в буффера ввода тестовые строки (например клавиша "E" - пишу в буффер Buffer_Answer_Ek260,клавиша "P" - пишу в буффер Buffer_Answer_Ek260) ставлю флаг приема. Смотрю как работает программа. Вывод можно отправлять на принтер (вместо COM порта).
А так по алгоритму мне судить сложно, вроде нормально, где-то разрешение прерываний я бы перенес на попойзже, где то изменил бы последовательность т.е. сначала проверяю нужность отсылки данных, а лишь затем возможность отослать.
Ну и так далее. Вообщем я бы посмотрел на программу.
Можно отдельно отлаживать COM порты, т.е. твоя программа висит на одном порту, а сцециальная тестовая (терминал) на другом, порты соединить между собой кабелем. Так можно анализировать что послал, что получил.

Ответ отправлен: 02.06.2004, 15:54
Отправитель: Стас


 Вопрос № 5386

Здаров.
Где можно скачать описание структуры файлов .jpg или .gif или .bmp или .png?



Вопрос отправлен: 02.06.2004, 12:17
Отправитель: Петя

[Следующий вопрос >>] [Список вопросов]

Отвечает Dragoon

Добрый день, Петя!
На www.wotsit.org есть куча описаний форматов файлов. На некоторые даже по 10-ку видов! Правда по-аглицки...

Ответ отправлен: 03.06.2004, 21:20
Отправитель: Dragoon


Отвечает Snowm@n

Добрый день, Петя!
А поисковые системы на что?


Ответ отправлен: 02.06.2004, 20:32
Отправитель: Snowm@n


 Вопрос № 5388

Здраствуйте.
1)Хочу узнать ваш TOP X книгтуториаловрассылок... которые вы бы порекомендовали для изучения асма(отдельно для ДОС и Win)
2)И также хотелось бы узнать ваш TOP X сайтов(необязательно связанные с ассемблером). - хотелось бы Избранное пополнить хорошими сайтами.
З.Ы. где X - это число... (чем больше тем лучше)



Вопрос отправлен: 02.06.2004, 13:59
Отправитель: Alkaida

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Добрый день, Alkaida!
1) Начни с DOS, потом Windows, потом что угодно :-)
Калашников - "Ассемблер? Это просто!", Зубков - "Ассемблер для DOS,Windows,Unix", туториалы Iczelion-а - самое главное! Дальше - проще: читай потом литературу по интересующим тебя вопросам. Для DOS также необходим Ralf Brown Interrupt List, для Windows - MS Platform SDK.
2) wasm.ru, rusfaq.ru ;-)
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 04.06.2004, 19:54
Отправитель: _vt


Отвечает Евгений Иванов

http://www.livejournal.com/community/_assembler/
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 03.06.2004, 00:05
Отправитель: Евгений Иванов


 Вопрос № 5390

Привет
У меня пробела при компиляций DLL в MASM6:
Из одной статьи взял код:
----------------------------------dll.asm------------------------------------------------
.386
.model flat,stdcall
option casemap:none
include masm32includewindows.inc
include masm32includeuser32.inc
include masm32includekernel32.inc
includelib masm32libuser32.lib
includelib masm32libkernel32.lib

.data
.code
DllEntry proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD
mov eax,TRUE
ret
Dll*ntry Endp
;----------------------------------------------------------------------------
; Это функция-пустышка - она ничего не делает. Я поместил ее сюда, чтобы
; показать, как вставляют функции в DLL.
;----------------------------------------------------------------------------
TestFunction proc
mov eax,0
ret
TestFunction endp

End DllEntry
----------------------------------end-dll.asm------------------------------------------------
и .def файл dll.def:
----------------------------------dll.def-------------------------------------------------------
LIBRARY dll
EXPORTS TestFunction
----------------------------------end-dll.def-------------------------------------------------

Ну и на конец компилирую:
ml.exe /c /coff /Cp dll.asm
link.exe DLL /SUBSYSTEM:WINDOWS /DEF:DLL dll.def /LIBPATH:c:masm32lib dll.obj
ml: Assembling dll.asm
link: dll.def fatal error LNK1136: invalid or corrupt file 'link выдает ошибку на неправильный def-файл dll.def
Где ошибка?



Вопрос отправлен: 02.06.2004, 15:02
Отправитель: bred (bcc@xaker.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Здравствуйте, bred!
NAME Ini.dll
DESCRIPTION 'Работа с INI-файлами'
HEAPSIZE 65536
STACKSIZE 0
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 03.06.2004, 12:04
Отправитель: Евгений Иванов


Отвечает Dragoon

Добрый день, bred!
Статьи Iczelion'a это конечно хорошо, но проверь dll.asm
на ошибки - там неправильно процедура DllEntry оканчивается

Ответ отправлен: 02.06.2004, 20:09
Отправитель: Dragoon


Отвечает Стас

Приветствую Вас, bred!
link.exe /DLL /SUBSYSTEM:WINDOWS /DEF:dll.def /LIBPATH:c:masm32lib dll.obj
А так попробуй компилировать.

Ответ отправлен: 02.06.2004, 21:59
Отправитель: Стас


 Вопрос № 5392

Как посчитать сумму главной диагонали
матрицы порядка n на n



Вопрос отправлен: 02.06.2004, 18:37
Отправитель: Роман

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, Роман!
А в чем проблема-то?
s = SUMM (i=1, n)(a[i, i])
Формулируйте вопрос нормально. Что именно непонятно? Что такое сумма? Или что такое главная диагональ? Или как это организовать на асме? Или вообще что такое асм?


Ответ отправлен: 03.06.2004, 12:10
Отправитель: Ayl


Отвечает Snowm@n

Доброе время суток, Роман!
s:=0;
for i:=1 to n do s:=s+a[i,i];
и все :)

Ответ отправлен: 02.06.2004, 20:42
Отправитель: Snowm@n


 Вопрос № 5393

Доброе время суток!
К вопросу про динамическую память.
Один эксперт(забыл кто, наверное Евгений Иванов) дал следуйщий код:
Call GlobalAlloc, GPTR, 4
or eax,eax
jz err
xchg esi,eax
;... working with memory
Call GlobalReAlloc, esi, 200, GMEM_MOVEABLE
or eax,eax
jz err
xchg esi,eax
;... working with memory
Только как им пользоваться не понимаю. Объясните что и как.



Вопрос отправлен: 02.06.2004, 19:11
Отправитель: voxel

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Добрый день, voxel!
Им пользоваться не надо. ;)
А надо писать свой алгоритм.
Ты чего делаешь?
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 03.06.2004, 12:17
Отправитель: Евгений Иванов


 Вопрос № 5394

Здравствуйте уважаемые эксперты…
С какого адреса, и до какого расположена экранная область в MS-DOS?
Заранее благодарен…




Вопрос отправлен: 02.06.2004, 20:11
Отправитель: SEREGAA (seregaa@mail.nnov.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Здравствуйте, SEREGAA!
0A000h - 0C000h
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 03.06.2004, 12:17
Отправитель: Евгений Иванов


Отвечает Ayl

Здравствуйте, SEREGAA!
В каком режиме? Для какого адаптера?
Все текстовые и графические для CGA начинаются с адреса b800:0000. Граница зависит от используемого режима.
Например, в текстовом 40*25 страница занимает 2000 байт, в текстовом 80*25 - 4000 байт. Для текстовых режимов отводится 16К видеопамяти, т.е. для режима 40*25 можно сформировать 8 экранных страниц, а для 80*25 - 4.
Графический экран для CGA занимает ровно 16К памяти, т.ч. доступна 1 страница и в 4-хцветном, и в 2-хцветном.
Монохромный текстовый режим для HGA начинается с адреса b000:0000.
Графические режимы EGA, VGA и SVGA начинаются с адреса a000:0000. Размер памяти сильно зависит от конкретного режима.


Ответ отправлен: 03.06.2004, 12:23
Отправитель: Ayl


Отвечает _vt

Приветствую Вас, SEREGAA!
В разных режимах - по разному.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 04.06.2004, 19:54
Отправитель: _vt


Отвечает Dragoon

Приветствую Вас, SEREGAA!
Видеопамять в ТР начинается с 0B800h. Всего восемь
страниц. Каждая весит 4000 байт. Простыми вычислениями
можно получит адрес любой страницы

Ответ отправлен: 03.06.2004, 21:11
Отправитель: Dragoon


Отвечает VOVAN

Здравствуйте, SEREGAA!
Если ты про видеопамять то с 0b800h:0000h - первая видеостраница. 0b900h:0000h - вторая видеостраница...
0bf00h:0000h - седьмая.



Ответ отправлен: 02.06.2004, 20:59
Отправитель: VOVAN


Отвечает Snowm@n

Здравствуйте, SEREGAA!
$B800:$0000 кажется ...

Ответ отправлен: 02.06.2004, 21:34
Отправитель: Snowm@n


 Вопрос № 5395

Здравствуйте.
Где я могу скачать TASM32.exe и TLINK32.exe?



Вопрос отправлен: 02.06.2004, 20:35
Отправитель: 0010

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Доброе время суток, 0010!
Под Windows лучше использовать MASM или FASM, которые кроме всего прочего являются бесплатными продуктами. Лучше всего скачать пакет MASM32 или Negatory Assembler Studio, в комплекте которых есть помимо компайлера и линкера другие нужные утилиты, как то: компилятор ресурсов, отладчик, IDE и пр. В комплекте MASM32 есть огромное количество примеров кода. Любой ассемблер можно найти за минуту, используя поисковик... Пакет MASM 6.11 лежит на kalashnikoff.ru.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 04.06.2004, 21:18
Отправитель: _vt


Отвечает Snowm@n

Добрый день, 0010!
Используй http://www.filesearch.ru и ищи там tasm.* и tlink.*

Ответ отправлен: 02.06.2004, 21:36
Отправитель: Snowm@n


 Вопрос № 5396

Здравствуйте,я программирую под DOS.У меня в программе есть цикл loop с задержкой и мне нужно чтобы во время этого цикла
прога ожидала нажатия клавиши и при нажатии выполняла определенные действия, а цикл продолжал выполняца(я игруху текстовую пишу :) ).



Вопрос отправлен: 03.06.2004, 10:53
Отправитель: madnix

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Добрый день, madnix!
sub ah,ah
inc ah
int 22
jz keypressed
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 03.06.2004, 12:18
Отправитель: Евгений Иванов


Отвечает Стас

Добрый день, madnix!
loop:
mov ah,1
int 16h
jz key_pressed
...bla bla bla делаем что хочим :)
jmp loop
key_pressed:
xor ah,ah
int 16h
...смотрим что за клавиша


Ответ отправлен: 03.06.2004, 11:50
Отправитель: Стас


Отвечает VOVAN

Приветствую Вас, madnix!
Ты хочешь организовать многозадачность, если так можно выразиться, но под ДОСом нельзя сделать так, чтоб в одно время выполнялось несколько процессов, да и под Виндой, наверное, тоже. Хотя, если подумать HT...

Ответ отправлен: 03.06.2004, 11:15
Отправитель: VOVAN


Отвечает _vt

Доброе время суток, madnix!
Перехватывай прерывание таймера - и вперед! :)
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 04.06.2004, 21:18
Отправитель: _vt


Отвечает Dragoon

Доброе время суток, madnix!
Давай исходник, а задержка на клавишу пишется так
xor ax,ax
int 16h
функция 0 прерывания 16h - проверка буфера клавы и
помещение в al аски код клавиши. Если же буфер пуст, то прерывание ждет нажатия клавиши и опять же помещает ее в al


Ответ отправлен: 03.06.2004, 21:09
Отправитель: Dragoon


 Вопрос № 5397

Как в защищённом режиме установить видеорежим 640x480x256 ?



Вопрос отправлен: 03.06.2004, 12:58
Отправитель: Ru

[Следующий вопрос >>] [Список вопросов]

Отвечает Стас

Здравствуйте, Ru!
DOS?
Проблема в вызове прерывания из защищенного режима?
Делается это через так называемые шлюзы:
ищи описание mov ax,300h; int 31h.


Ответ отправлен: 04.06.2004, 22:44
Отправитель: Стас



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (22)
C / C++ (14)
Builder / Delphi (15)
Pascal (20)
Basic / VBA (4)
Java / JavaScript (5)
PHP (13)
Криптография (8)
WinAPI (10)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (53)
"Железо" (32)
Поиск информации (17)
Администратору
Windows NT/2000/XP (24)
Linux / Unix (9)
Юристу
Гражданское право (12)
Семейное право (9)
Трудовое право (12)
КоАП (8)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное