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

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 758
от 22.05.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 386, Экспертов: 31
В номере:Вопросов: 5, Ответов: 6


Вопрос № 87277: Подскажите, пожалуйста, как создать файл - телефонный справочник (номер и имя), а затем записать в новый файл фамилии абонентов с номером АТС (первые три цифры номера), который встречается чаще всего....
Вопрос № 87321: Уважаемые эксперты. Вопрос в следующем: при получение сообщения .if uMsg==WM_SOKET mov eax,lParam .if ax==FD_CLOSE mov eax,wParam invoke closesocket,eax .endif .endif Как узнать IP-адрес, отсоединившегося сокет...
Вопрос № 87345: Здраствуте! у меня проблема с текстовым режимом (80*25) и мультипликативным датчиком случайных чисел, проблема заключается в реализации, в общем программа должна заполнять экран белым цветом, путем перемещения одного знакоместа случайным образом в 1 ...
Вопрос № 87390: люди помогите плиз с лабой. Необходимо ввести матрицу 4 на 3, затем нади кол-во чисел, находящихся в промежутке между 2 заданными с клавы числами. и Вот мой код, но я где-то намудрил с регистром cx. Укажите, пожалуйста, где моя ошибка, и как можно бы...
Вопрос № 87407: Помогите пожалуйста, надо написать программу, которая бы для десяти последовательно расположенных в памяти чисел, находила минимальное и максимальное значения, и выводила бы на экран частное и остаток от деления максимального числа на минимальное . В...

Вопрос № 87.277
Подскажите, пожалуйста, как создать файл - телефонный справочник (номер и имя), а затем записать в новый файл фамилии абонентов с номером АТС (первые три цифры номера), который встречается чаще всего.
Отправлен: 17.05.2007, 07:26
Вопрос задал: Dalex (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Dalex!
Могу предложить идеи, как я бы делал.
1) Определиться с форматом файла.
Удобнее всего сделать фиксированный размер записи.
Например, 24 байта имени абонента (вместе с завершающим нулем) и,
допустим, 8 байт под строку с номером. Можно добавить еще адрес абонента.
Удобно, когда в сумме - степень двойки (у нас 32) - легше считать адрес по номеру записи.
2)Осталось только последовательно записать в нашу базу все записи в нужном формате.
Для удобства в программе можно описать запись структурой.
3)Когда база создана, осталось решить вторую задачу:
Решается в два этапа
а)Ищем количество всех абонентов по АТС
Для этого строим в памяти массив структур формата (АТС не много, можно задать максимальное количество, допустим 100).
str dd ? ;так удобнее сравнивать - читаем в EAX двойное слово по адресу номера и обнуляем старший байт
cnt dd ? ;количество
Если встречается новый номер АТС, то добавляем новую структуру, не забывая увеличить счетчик структур.
Пробегаем базу и строим количества
б)Осталось найти максимальное количество и еще раз пробежав по базе, сравнив еще раз номера,
сформировать требуемый файлик (возможно в другом формате,
например, в обычном текстовом, с запятыми и с завершающими 0d0ah)

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 17.05.2007, 10:37
Оценка за ответ: 4


Вопрос № 87.321
Уважаемые эксперты. Вопрос в следующем: при получение сообщения
.if uMsg==WM_SOKET
mov eax,lParam
.if ax==FD_CLOSE
mov eax,wParam
invoke closesocket,eax
.endif
.endif
Как узнать IP-адрес, отсоединившегося сокета?
Догадываюсь, что нужно привязаться к структуре сокета, но как?
Нигде не могу найти. Буду премного благодарен.
Отправлен: 17.05.2007, 12:28
Вопрос задал: Каберле Андрей Иванович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Каберле Андрей Иванович!
Не пробывал перед closesocket спросить
invoke getsockname, wParam, &sockaddr, &lensockaddr
?
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 17.05.2007, 12:49


Вопрос № 87.345
Здраствуте! у меня проблема с текстовым режимом (80*25) и мультипликативным датчиком случайных чисел, проблема заключается в реализации, в общем программа должна заполнять экран белым цветом, путем перемещения одного знакоместа случайным образом в 1 из 4х (начальный символ получает код 0 и атрибут 0) окружающих его мест, соответственно случайность обеспечивается мультипликативным датчиком случайных чисел
в принципе как реализовать датчик я более менее разобрался(хотя работоспособность оно не проявляет), но как заставить это одно знакоместо перемещаться, по значениям, полученным в самом датчике, закрашивая те места в которых он побывал
Отправлен: 17.05.2007, 15:37
Вопрос задал: Макс (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Макс!

Смотрите приложение.
Я использовал команду NOT, чтобы видеть как работает программа.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 18.05.2007, 17:32
Оценка за ответ: 5


Вопрос № 87.390
люди помогите плиз с лабой. Необходимо ввести матрицу 4 на 3, затем нади кол-во чисел, находящихся в промежутке между 2 заданными с клавы числами. и Вот мой код, но я где-то намудрил с регистром cx. Укажите, пожалуйста, где моя ошибка, и как можно было б сделать лучше.

Приложение:

Отправлен: 17.05.2007, 19:26
Вопрос задал: Beerb0x (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Beerb0x!
Приятно помогать, когда человек сам пытается что-то сделать!
Ввод чисел и вывод их на экран правильный.
Разве что, почему числа - однознаковые?
Если так надо, то все нормально. Если нет, то надо будет переделать, например, на ввод четырех строк, каждая с тремя числами, разделенными пробелами.
После ввода строки преобразовать в три числа.
А вот дальше слегка намутил...Посмотри, как я сделал.
И вывод суммы чуток поменял. Опять же работа ведется как с однознаковым числом. А если сумма будет, к примеру, 10 (чисел же 12!)? Что тогда?
А вообще, молодец, когда сам делаешь, оно лучше доходит!
Так держать!

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 17.05.2007, 20:44


Вопрос № 87.407
Помогите пожалуйста, надо написать программу, которая бы для десяти последовательно расположенных в памяти чисел, находила минимальное и максимальное значения, и выводила бы на экран частное и остаток от деления максимального числа на минимальное . Ввод данных сделать с клавиатуры.
Отправлен: 17.05.2007, 20:46
Вопрос задал: Ketor (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Ketor!

Смотрите приложение!
Нет проверки на знак.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 18.05.2007, 11:51

Отвечает: An42
Здравствуйте, Ketor!
Программа реализована следующим образом
>макрос dos21 - выводит приглашение, звуковой сигнал, введенный символ
>процедура call ah09 – ведет счетчик нумерации чисел
>процедура call ah08 – процедура ввода чисел (шестнадцатеричных) работают клавиши от 1...9, от A…F, от a…f, а так - же Esc – выход Enter – ввод (числа до 4-х разрядов)
>процедура call mas1 – определяет максимальный и минимальный элемент массива
>процедура call consol – перевод результата деления в ascii – код
Вывод результата частное / остаток в шестнадцатеричном формате
Остальные пояснения в программе
Удачи

Приложение:

Ответ отправил: An42 (статус: 3-ий класс)
Ответ отправлен: 19.05.2007, 16:23


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

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

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное