IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Создание программы на Pascal с использованием процедур на asm., Создание программы на Pascal с использованием процедур на asm.
vasiliy_09_05
сообщение 27.12.2012 7:04
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Доброго всем времени суток. smile.gif
Дамы и господа, прошу Вашей помощи в написании программы на Pascal.
Имеется листинг процедур для непосредственной работы с контроллером жестких дисков ATA: 1) ЧТЕНИЕ СЕКТОРА ЖЕСТКОГО ДИСКА В РЕЖИМЕ LBA, 2) ПОСЛАТЬ КОМАНДУ ЗАДАННОМУ ДИСКУ, 3) ЧТЕНИЕ ИДЕНТИФИКАТОРА ЖЕСТКОГО ДИСКА. Необходимо, используя эти процедуры, написать программу на Pascal'е.
Так как опыта работы в асме у меня нет sad.gif то при создании pas-файла, Turbo Pascal выдал кучу ошибок.
1) Pushad/popad (Error 5: Syntax error) - Я как понимаю TP не меняет размещение стеков? ТО есть данные команды в TP неприемлемы?
2) строка
mov EAX,[SectorAddress]
и все подобные строки с регистром EAX (Error 3:Unknown identifier) - Если честно, вот это совсем не понял, почему TP ругается на регистр?
3) call SendCommandToHDD (Error 3:Unknown identifier) - здесь вызов процедуры, сегодня буду читать как из под asm вызывать процедуры ;
4) mov AX,[CS:MainDataSeg] (Error 3:Unknown identifier)- Как я понимаю идет обращение к разделу DATASEG, но у меня его нет, так как я его заменил паскалевскими переменными, какую именно переменную ему нужно я не пойму ;
5) mov AX,[BX+StandardHDDBases] (Error 155: Invalid combination of opcode and operands) - Видимо несоответствие переменных. Как я понимаю значение переменной берется в прямоугольные скобки, видимо StandardHDDBases - это ссылка а не значение;
По второй проблеме - TP 16-разрядная система, а EAX - регистр 32 разряда.
Скачал и установил Free Pascal, но там ошибок еще больше sad.gif
Буду очень благодарен за помощь в создании исполняемого файла smile.gif



Прикрепленные файлы
Прикрепленный файл  LIST6_07.INC.doc ( 50 килобайт ) Кол-во скачиваний: 111
Прикрепленный файл  HDD1.PAS ( 5.28 килобайт ) Кол-во скачиваний: 152
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 7:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"