Выпуск № 1222 от 08.06.2009, 10:35
Администратор рассылки: Лысков Игорь Витальевич, Младший модератор
В рассылке: подписчиков - 424, экспертов - 58
В номере: вопросов - 4, ответов - 5
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 168758: Доброго времени суток! Каким образом в FASMе 1) получить Текущую дату на компьютере. 2) получить разность дат Текущей и на начало года программа под Windows код типа mov ah,2Ah int 21h не ...
Вопрос № 168767: Здравствуйте уважаемые эксперты, помогите пожалуйста решить задачу по ассемблеру: Ввести строку символов. Удалить знаки препинания в строке, если они там есть....
Вопрос № 168788: Уважаемые эксперты, помогите решить такую задачу Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является разделителем слов. Вывести результаты на экран. Заранее благодарю....
Вопрос № 168838: Сегмент данный определен след. образом .data perem_1 dd 0 str db 'abcdefgh' perem_2 dw 2387h ............. что будет занесено в регистр al командами mov bx,offset str mov al,[bx+4]...
Вопрос № 168758:
Доброго времени суток! Каким образом в FASMе 1) получить Текущую дату на компьютере. 2) получить разность дат Текущей и на начало года программа под Windows код типа mov ah,2Ah int 21h не работает.
Есть в Kernel32.dll функция CurrentDateTimeString но она без точки входа
Может кто поделится полным справочником функций API? Буду очень признателен.
Отвечает Лысков Игорь Витальевич, Младший модератор :
Здравствуйте, Игорь К.. 1) Есть функция GetLocalTime(LPSYSTEMTIME lpSystemTime) (в терминах С) Параметром у нее адрес вот такой структуры (опять же, в терминах С):
Код:
typedef struct _SYSTEMTIME { WORD wYear; //год WORD wMonth; //месяц (с 1) WORD wDayOfWeek;
//день недели (воскресенье 0) WORD wDay; //день месяца WORD wHour; //часы WORD wMinute; //минуты WORD wSecond; //секунды WORD wMilliseconds; //милисекунды } SYSTEMTIME;
int 21h можно было еще использовать только с 16-битными windows 3.1 :) Для 32- и более - только через вызовы функций 2) Стандартной функции такой нет, но несложно написать самому: Складываем число дней по месяцам до текущего, вот и будет разнос
ть дат Не забываем про високосные года! 3)Лично я пользуюсь MSDN - самый полный и лучший справочник :)
Украина, Кировоград ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
----- Удачи!
Ответ отправил: Лысков Игорь Витальевич, Младший модератор
Ответ отправлен: 02.06.2009, 13:37
Оценка ответа: 5 Комментарий к оценке: Великолепно! В памяти данные имеются, остальное дело техники
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250257
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 168767:
Здравствуйте уважаемые эксперты, помогите пожалуйста решить задачу по ассемблеру: Ввести строку символов. Удалить знаки препинания в строке, если они там есть.
Отвечает _Ayl_, 4-й класс :
Здравствуйте, sergey_nesterov!
См. Приложение
Ответ неверный Синтаксические ошибки: 1)При записи непосредственного операнда в память нужно указывать его размер директивой BYTE PTR(mov [ di ], '$'); 2)В программах не рекомендуется использовать зарезервированные слова в качестве имен переменных(str db); 3)Неверный операнд в строке(end.).
Алгоритмические ошибки: 1)Лишняя команда: прочитав длину введенной строки строковой командой lodsb, Вы автоматически увеличели индексный регистр si, ещё раз его увеличиваете командой
inc si, т.е. Вы не анализируете первый символ введенной строки. 2) Использование команды xchg di, bx. Команда repne scasb автоматически увеличивает индексный регистр di и при повторном сканировании Вы начнете проверять с того места где закончили предыдущее. Это приведет к тому что повторный знак препинания не будет обнаружен, а также произойдет выход за пределы строки str.
Ошибки компоновки: 1)Неуказана точка входа( и директива org 100h) или дире
ктива .startup. Это приведет к тому, что программа LINK выдаст ошибку неверная точка входа.
Правильный ответ смотрите ниже.
-----
∙ Отредактировал: Зенченко Константин Николаевич, Модератор
∙ Дата редактирования: 03.06.2009, 16:43 (время московское)
Приложение:
Ответ отправил: _Ayl_, 4-й класс
Ответ отправлен: 02.06.2009, 14:38
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250262
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Лысков Игорь Витальевич, Младший модератор :
Здравствуйте, sergey_nesterov. Программа с подробными комментариями, реализующая Вашу задачу, в приложении. Удачи!
Ответ отправил: Лысков Игорь Витальевич, Младший модератор
Ответ отправлен: 02.06.2009, 14:41
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250263
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 168788:
Уважаемые эксперты, помогите решить такую задачу Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является разделителем слов. Вывести результаты на экран. Заранее благодарю.
Отправлен: 02.06.2009, 18:04
Вопрос задал: Rejif, Посетитель
Всего ответов: 1 Страница вопроса >>
Отвечает Лысков Игорь Витальевич, Младший модератор :
Здравствуйте, Rejif. Программа в приложении считает слова и определяет все возможные разделители Определяем символы, которые могут быть частью слова (лат, рус, цифры) Все остальные - разделители
Ответ отправил: Лысков Игорь Витальевич, Младший модератор
Ответ отправлен: 08.06.2009, 03:48
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250605
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 168838:
Сегмент данный определен след. образом .data perem_1 dd 0 str db 'abcdefgh' perem_2 dw 2387h ............. что будет занесено в регистр al командами mov bx,offset str mov al,[bx+4]
Отвечает Лысков Игорь Витальевич, Младший модератор :
Здравствуйте, Мохнач Никита Павлович. Командой mov bx,offset str заносим в bx адрес строки str Команда mov al,[bx+4] заносит в al байт из памяти по адресу [bx]+4, т.е. пятый байт (если байты считаем с 1) строки str, т.о. al='e' Удачи!
Украина, Кировоград ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
----- Удачи!
Ответ отправил: Лысков Игорь Витальевич, Младший модератор
Ответ отправлен: 03.06.2009, 10:31
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250304
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.