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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 132
∙ повысить рейтинг >>
Зенченко Константин Николаевич
Статус: Профессор
Рейтинг: 80
∙ повысить рейтинг >>
Airyashov
Статус: Студент
Рейтинг: 26
∙ повысить рейтинг >>

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

Выпуск № 1135
от 16.12.2008, 22:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 308, Экспертов: 20
В номере:Вопросов: 2, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 153979: Здравствуйте эксперты. Я читатель книги "Assembler это просто. Учимся програмировать". У меня такой вопрос. В этой книке я столкнулся с проблемой вывода символа на экран прямым отображением в видеобуфер. Программа выполняется, но с...


Вопрос № 154007: Добрый вечер, необходима помощь в программе... Задание: разработать алгоритм и написать резидентную программу, выводящую на экран текущую дату. Принажатии комбинации клавиш ctrl/S - выводить на экран;ctrl/E - удалять с экрана;ctrl/x - выгружать из...

Вопрос № 153.979
Здравствуйте эксперты.
Я читатель книги "Assembler это просто. Учимся програмировать". У меня такой вопрос.
В этой книке я столкнулся с проблемой вывода символа на экран прямым отображением в видеобуфер.
Программа выполняется, но символа нет. Для гарантии я с ассемблировал исходный код самого автора программы из файлов приложении и получается тоже самое. Все пусто. Хотя я сам уже дальше но сейчас мне это нужно стало. Незнаю что делать.
Win XP SP2.
Отправлен: 11.12.2008, 19:06
Вопрос задал: Алексей2 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Systemnick
Здравствуйте, Алексей2!
Скорее всего у вас не переключается видеорежим и видеостраница:
mov ax, 3 ;видео режим 3 + очистка экрана
int 10h
mov ax, 500h ;видеостраница 0
int 10h
Хорошо было бы приложить Ваш код.
Попробуйте скомпилировать как в приложении.

Приложение:

Ответ отправил: Systemnick (статус: 1-й класс)
Ответ отправлен: 11.12.2008, 19:34

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 238327 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо


    Вопрос № 154.007
    Добрый вечер, необходима помощь в программе...
    Задание: разработать алгоритм и написать резидентную программу, выводящую на экран текущую дату. Принажатии комбинации клавиш ctrl/S - выводить на экран;ctrl/E - удалять с экрана;ctrl/x - выгружать из оперативной памяти...
    моя программа ниже и она работает у меня на пк, но в компьютерном классе при выведении даты на экран она повисает, и при выгрузке, преподаватель сказал что дело в 21ом прерывании, и сказал чтобы переделал программу на bios прерывание..(я так понял необходимо использовать прерывание 1Ah и функцию 04h)
    Пожалуйста, помоги переделать программу.. проверьте ее на ошибки, если ее можно сделать покороче обьясните пожалуйста..или напишите комменты для программы.

    Приложение:

    Отправлен: 11.12.2008, 21:58
    Вопрос задал: Nobodyl (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 4)

    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Nobodyl!
    Я вижу только одну принципиальную ошибку, она влияет только на выгрузку. Это:
    Код:
    push CS   
    pop ES ; Функция 49h требует, чтобы начало осбождаемого блока памяти MCB было по адресу ES:0 (а не DS)
    mov AH,49h ; Освобождаем память
    int 21h;...
    sti

    MOV CX,EXIT_LEN ;длинна сообщения
    MOV SI,OFFSET EXIT

    Дальше должно работать и так.
    Можно,конечно, поменять вывод в OUT_CHAR
    Код:
     or ax,30h
    ;выводим
    mov ah, 0eh
    int 10h
    ; int 29 h
    loop isOut
    ;выводим разделяющий пробел
    mov al,20h
    mov ah, 0eh
    int 10h
    ; int 29h
    popa
    ret

    У меня работает и с int 29h
    И последнее, хочу порекомендовать после выгрузки резидента и вывода сообщения
    "запихнуть" в буфер клавиатуры код клавиши Enter, чтобы командный интерпретатор перешел на новую строчку..
    Код:
    BEG_OUT_5:
    LODSB
    MOV AH,0EH
    MOV BX,7
    INT 10H
    LOOP BEG_OUT_5

    mov ah, 05
    mov cx, 1c0dh ; скан- и ASCII-код клавиши Enter
    int 16h
    JMP IRET_09H

    ---------
    Удачи!
    Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
    Ответ отправлен: 12.12.2008, 16:19

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 238422 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо...


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

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

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

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

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

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


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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное