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

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


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

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

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

Выпуск № 312
от 10.12.2005, 22:54

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


Вопрос № 30802: Здравствуйте, на www.gamedev.ru кое какие ребята наехали на асм, конечно я не дал им спуску, но когда речь пошла об SSE и MMX, не много стушивался, потому что не разу с ними не кодил. Как объявить в МАСМЕ 6.14.844 интсрукции MMX, SSE ...
Вопрос № 30809: Здравствуйте!!! Подскажите пожалуйста почему у меня не работает программа, которую я представил в приложении!!! Она должна делать следующее: Это резидент, перехватывает нажатие клавиши F1 (10 функция 16 прерывание, если не ошибаюсь) и если на...
Вопрос № 30811: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить следующую задачу: Имеется дискета с одним или несколькими физически поврежденными секторами. Необходимо скопировать всю имеющуюся в читаемых секторах информацию на другую диск...

Вопрос № 30.802
Здравствуйте, на www.gamedev.ru кое какие ребята наехали на асм,
конечно я не дал им спуску, но когда речь пошла об SSE и MMX,
не много стушивался, потому что не разу с ними не кодил.
Как объявить в МАСМЕ 6.14.844
интсрукции MMX, SSE и 3d NOW!
потому что написал типа
.MMX
.686p
...
movd mm0,mm1
А оно не пашет(не может понять mm0), а в игроделание только на них работаешь.
Объясните пожалуйста.
И где скачать MASM 7.0

Отправлен: 05.12.2005, 07:51
Вопрос задал: Юра Устинов (статус: 6-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Евгений Иванов
Здравствуйте, Юра Устинов!
PMMX

только что отассемблировал!
работает!

VERSION T510

P586
PMMX

Model NearStack use32 NT Flat,Normal StdCall

;==========================================================================
CODE segment page public 'code' use32
begin:
emms
movd mm0, eax
movd mm1, ebx

Ends
;==========================================================================
End begin


Но в IDEAL не работает. приходится писать вот так :)
VERSION T510

P586
PMMX

IDEAL

Model NearStack use32 NT Flat,Normal StdCall

;==========================================================================
segment CODE page public 'code' use32
begin:

MASM
emms
movd mm0, eax
movd mm1, ebx
IDEAL

Ends
;==========================================================================
End begin


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


Вопрос № 30.809
Здравствуйте!!!
Подскажите пожалуйста почему у меня не работает программа, которую я представил в приложении!!! Она должна делать следующее:
Это резидент, перехватывает нажатие клавиши F1 (10 функция 16 прерывание, если не ошибаюсь) и если нажата выводит сообщение, все делается под ДОС!!!
Заранее благодарен!!!

Приложение:

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

Отвечает: Евгений Иванов
Здравствуйте, Rams!
мля, вот так кури!

CSEG segment

assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG

org 100h

Start:

jmp Init
Int_16h_proc proc

cmp ah,10 ;номер перехватываемой функции 10h?

je Ok_10

jmp dword ptr cs:[Int_16h_vect]

Ok_10:

pushf
call dword ptr cs:[Int_16h_vect]

push ds
pusha
push cs
pop ds

cmp ah,3bh; скэн код клавиши f1

je pressed

continue:
popa
pop ds
iret
int_16h_proc endp

pressed:
mov ah,9
mov dx,offset Mess
int 21h
jmp continue

Int_16h_vect dd ?

Mess db 'F1 $'

Init:

;установим наш обработчик

mov ah,35h

mov al,16h

int 21h

mov word ptr Int_16h_vect,bx

mov word ptr Int_16h_vect+2,es
mov ax,2521h

mov dx,offset Int_16h_proc

int 21h

mov dx,offset Init

int 27h

CSEG ends

end Start

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 05.12.2005, 10:45
Оценка за ответ: 5


Вопрос № 30.811
Здравствуйте, уважаемые эксперты!
Помогите, пожалуйста, решить следующую задачу:
Имеется дискета с одним или несколькими физически поврежденными секторами.
Необходимо скопировать всю имеющуюся в читаемых секторах информацию на другую дискету.
В настоящее время приходится в Pascale через прерывание 13h читать дорожки (а при сбое - посекторно) в файл, а затем писать на другую дискету из файла.
Собственно вопрос: можно ли, и как выделить под переменную в Pascale или на Asme более 1 Мб или как в Delphi использовать прерывание 13h? Если можно, простейший пример.
P.S. Disccopy a: a: работает некорректно (копирует не все).
Заранее благодарю ВСЕХ за ЛЮБЫЕ ответы.
С уважением, Андрей, U1946KU@list.ru

P.P.S. Вопрос задавался уже в рассылку по Pascal, но был получен только один ответ (от эксперта Sir Henry, за что еще раз благодарю его). Однако FreePascal не решил проблему (не происходит обращения к дисководу, хотя сообщений о запрете доступа не возникает). Если есть время, скомпилируйте прогу из приложения под FreePascal - получите нули, а под TP - реальные данные сектора 0-0-1. Под Win9х можно прочитать нулевой (0-0-1) сектор жесткого диска.

Приложение:

Отправлен: 05.12.2005, 10:49
Вопрос задал: Сошников Андрей Сергеевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Евгений Иванов
Здравствуйте, Сошников Андрей Сергеевич!
я бы просто посоветовал работать с буфером размера, допустим, 64 Кб.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 05.12.2005, 12:05

Отвечает: Хузин Макс
Здравствуйте, Сошников Андрей Сергеевич!

Пример из книги (забыл автора) Delphi 5.0, может поможет.

Выделение памяти описано в книгах Зубкова С.В. "Assembler", там есть главы: Обычная память, UMB, HMA, также описаны интерфейсы EMS и XMS.

Приложение:

Ответ отправил: Хузин Макс (статус: 1-ый класс)
Отправлен: 06.12.2005, 10:19
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо!


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

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

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

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

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


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


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

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

В избранное