Вопрос № 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
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) сектор жесткого диска.
Отвечает: Евгений Иванов
Здравствуйте, Сошников Андрей Сергеевич!
я бы просто посоветовал работать с буфером размера, допустим, 64 Кб.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 05.12.2005, 12:05
Отвечает: Хузин Макс
Здравствуйте, Сошников Андрей Сергеевич!
Пример из книги (забыл автора) Delphi 5.0, может поможет.
Выделение памяти описано в книгах Зубкова С.В. "Assembler", там есть главы: Обычная память, UMB, HMA, также описаны интерфейсы EMS и XMS.
Приложение:
Ответ отправил: Хузин Макс (статус: 1-ый класс)
Отправлен: 06.12.2005, 10:19 Оценка за ответ: 5 Комментарий оценки: Большое спасибо!