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

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


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

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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 231
от 06.09.2005, 22:00

Администратор:Калашников О.А.
В рассылке:Подписчиков: 257, Экспертов: 22
В номере:Вопросов: 3, Ответов: 8


Вопрос № 25635: ПРивет многоуважаемые эксперты !!! У меня почему-то не работает одна процедура она должна сохранять нулевую видео страницу переносом в первую видео страницу. ПООМООГИИТЕЕЕ!!! Ничего немогу понять. Первая процедура Save_Screen переноси...
Вопрос № 25638: Уважаемые экперты! Скажите пожалуйста, как на ASM-е работать с CD-ROM (и подобными до DVD-RW), а именно: 1. Узнать буквы у имеющихся CD-ROM; 2. Проверить наличие компакт диска в приводе; 3. Как считать информацию с диска (файла, дорож...
Вопрос № 25639: 1. CSEG segment assume CS:CSEG, DS:CSEG, SS:CSEG org 100h BEGIN: MOV AH, 86h MOV DX,1388h ; задержка 5 секунд INT 15h ; проблема такая: задержка не работает, устанавливается флаг CF в 1, т.е. системный...

Вопрос № 25.635
ПРивет многоуважаемые эксперты !!!
У меня почему-то не работает одна процедура она должна сохранять нулевую видео страницу переносом в первую видео страницу.
ПООМООГИИТЕЕЕ!!!
Ничего немогу понять.
Первая процедура Save_Screen переносит байты из 0 страницы в 1 а вторая процедура Restor_Screen обратно последняя возвращяет белеберду какую-то.
Приложение прилагается.
Конечно алгоритм ни ахти какой но всё-же .

Приложение:

Отправлен: 01.09.2005, 07:55
Вопрос задал: PRiSon (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Sager
Здравствуйте, PRiSon!
Адрес первой видеостраницы не 0D800h, а 0В900h. Дальше, ты забыл поставить префикс rep перед movsw, в cx ты ложишь 4000, а надо 2000, так как команда movsw сразу передает по два байта - 2000*2=4000
Вроде все, должно работать.
Ответ отправил: Sager (статус: 6-ой класс)
Отправлен: 01.09.2005, 08:59

Отвечает: Калашников О.А.
Здравствуйте, PRiSon!
Используйте префикс REP вместе с MOVSW.
Подробней об этом префиксе и командах работы со строками читайте тут:
http://kalashnikoff.ru/Assembler/issues/012.htm
---
Оптимальный пример копирования экрана можно найти тут:
http://kalashnikoff.ru/Assembler/issues/encl/028/DISPLAY.asm.htm
---------
Всё отлично!!!
Ответ отправил: Калашников О.А. (статус: *Админ)
Отправлен: 01.09.2005, 10:35
Оценка за ответ: 5
Комментарий оценки:
Спасибо !!
Я понимаю что у ВАС самый Оптимальный Вариант но понимаете я хочу сам написать сам помыслить так сказать логитмы и тогдалее.

Отвечает: newinfo2005
Здравствуйте, PRiSon!
Так все нормально,но у тебя всего 3 ошибки.
1.0 стр-ob800h 1 стр-0b900h и т.д.
2.вместо movsw надо rep movsw
3.и в cx надо загрузить 2000 а не 4000 так как ты загружаешь слово а не байт.

Приложение:

---------
Хочу стать умным и...много денег и халявного инета.

Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 01.09.2005, 13:15


Вопрос № 25.638
Уважаемые экперты!
Скажите пожалуйста, как на ASM-е работать с CD-ROM (и подобными до DVD-RW), а именно:
1. Узнать буквы у имеющихся CD-ROM;
2. Проверить наличие компакт диска в приводе;
3. Как считать информацию с диска (файла, дорожки)
Желательно с исходниками =)
Отправлен: 01.09.2005, 09:21
Вопрос задал: Акулов Андрей Сергеевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Иванов
Здравствуйте, Акулов Андрей Сергеевич!
для этого используй ASPI.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 01.09.2005, 14:53

Отвечает: Стас
Здравствуйте, Акулов Андрей Сергеевич!
Опять - ГДЕ? В Win32? В DOS?

К примеру в DOS это можно сделать прямым программированием IDE и (если установлен) через драйвер CD-ROM.
Ответ отправил: Стас (статус: Практикант)
Отправлен: 02.09.2005, 01:01


Вопрос № 25.639
1. CSEG segment
assume CS:CSEG, DS:CSEG, SS:CSEG
org 100h

BEGIN:

MOV AH, 86h
MOV DX,1388h ; задержка 5 секунд
INT 15h

; проблема такая: задержка не работает, устанавливается флаг CF в 1, т.е. системный таймер был занят
; нужно сделать следующее: после запуско должно пройти 5 сек. и выйти строка mes.
MOV AX,09h
MOV DX,offset mes
INT 21h

INT 20h
mes db 'message',0Ah,0Dh,'$'
CSEG ends
end BEGIN

2. Как пользоваться функцией BIOS int 08h
Как я понимаю, то это что-то типа задержки

Что означает следующее:
MOV AL, 20h
OUT 20h, al

3. Можно ли ассемблерной программой зупустить исполнимый файл.
Т.е. типа run path путь к файлу
path db 'C:Hello.exe'

4. Как работает jna, т.е. в каком случае происходит переход?
как изменяются флаги при:
cmp 6,5
cmp 5,6
cmp 5,5
5. Вася Пупкин задовал вам вопос про проверку на нажатие клавиш!
Нужно сделать следующее:
Приостановить выполнение программы,
ожидать от пользователя клавиш 0-6,
остальное игнорировать, доже Enter, если можно!, т.е. как я понимаю ожидать прерывания от клавиатуры, если пользователь нажал клавишу, то сделать проверку на принадлежность диапазону 0-6, если цифра не входит в диапазон, то начать ожидание вновь!
Это тяжело сделать?
Отправлен: 01.09.2005, 10:07
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

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

3. Запустить исполняемый файл можно, воспользовавшись функцией 4Bh прерывания 21h. Функция требует подготовки. Описание и пример можно найти тут:
http://kalashnikoff.ru/Assembler (выпуск № 29)
---
Ответы на все остальные вопросы вы также найдёте в архиве по указанной выше ссылке...
---------
Всё отлично!!!
Ответ отправил: Калашников О.А. (статус: *Админ)
Отправлен: 01.09.2005, 10:29
Оценка за ответ: 5
Комментарий оценки:
Ну и подготовочка!

Отвечает: Sager
Здравствуйте, Терсков Алексей Николаевич!
1)
mov ah, 86h
mov cx, число_секунд
mov dx, число_микросекунд
int 15h
3)можно. подробнее читай 29 выпуск калшникова, т.к. здесь вызовом

одного прерывания не обойтись - нужно много чего сделать.
4)Переход произойдет при cmp 5,6
в первом случае
pf=0
zf=0
во втором случае
cf=1
pf=1
af=1
sf=1
в третьем
af=0
zf=1
sf=0

5)
again:
mov ah,10h
int 16h
cmp al,'0'-1
jna again
cmp al,'6'
ja again

int 20h; srabotaet if you press 0-6
Ответ отправил: Sager (статус: 6-ой класс)
Отправлен: 01.09.2005, 11:11

Отвечает: newinfo2005
Здравствуйте, Терсков Алексей Николаевич!
1.Я точно сам не знаю,но надо еще указать пользовательский байт в es:bx
в AL загрузить 0
2.Да-да вызывается примерно 18.2 раз в секунду,его можно использовать для обработки событий зависищях от времени.А то что ты указал это когда прерывание закончен закончено. Магическая последовательность такова:

MOV AL, 20h;послать сигнал Конец-Прерывания
OUT 20h, al; контроллеру прерываний 8259
3.Я думаю ничего не будет если я тебе из справочника покажу инфу:
4.ниже или равны.
cmp 6,5;на cf & zf это не повлияют
cmp 5,6;cf=1 & zf=0,cf=1 & zf=1 или
cmp 5,5;cf=0 & zf=1
5.h1:mov ah,0
int 16h
cmp al,0;если 0 то в ah содержится расширенный код.
je h1
cmp ah,'1';и тут уже проверяешь нажатие клавиш можно так же и кодами ascii
cmp ah,13;вроде бы определяет на нажатие ентер.

Приложение:

---------
Хочу стать умным и...много денег и халявного инета.

Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 01.09.2005, 15:05


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться
Вспомнить пароль

В избранное