Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка асма в паскале, ругается паскаль на асм =) 
:(
    Опции темы
TP@MB@Y
Дата 12.5.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 2
Всего: 4



Chingachguk Спасибо! Теперь работает.

Мне уже неловко спрашивать, но я попытаюсь smile

Я из области DTA копирую имя файла в переменную:
Код

    mov ah,2fh
    int 21h
    mov cx,13
    mov si,0
    add bx,1eh
    @NAME: mov byte ptr [name_for_pack+si],es[bx+si]    //Invalid register combination
                  inc si
                  loop @NAME


Пробовал различные комбинации, все равно ругается. Что опять не так?
PM   Вверх
Chingachguk
Дата 12.5.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



эээ, нельзя память-память, только если строчные операции movs.

Используй al:

mov al,es:[bx+si]
mov name[si],al
inc si
loop xxx


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
TP@MB@Y
Дата 13.5.2005, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 2
Всего: 4



Chingachguk В который раз СПАСИБО! smile

Дописал прогу - компилиться без ошибок. Завтро тестить буду а щас спать =))
PM   Вверх
TP@MB@Y
Дата 15.5.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: 2
Всего: 4



Что то с файлами какая то ерунда получается... Написал для теста прогу, которая копирует один файл в другой - не пашет

Код

const name:string[9] = 'D:\1.txt'+#0;
      pack:string[9] = 'D:\p.txt'+#0;
var f_in,f_out:word;
    c:byte;
label ERR1,ERR2,ERR3,ERR4,AA;
begin
writeln('!!!!!!!!!');
asm
 mov dx,offset name
 mov ah,3dh
 mov al,0
 jc ERR1
 mov f_in,ax

 mov ah,3dh
 mov dx,offset pack
 mov al,1
 jc ERR2
 mov f_out,ax

 @L: mov bx,f_in
     mov cx,1
     mov dx,offset c
     mov ah,3fh
     int 21h
     cmp ax,0
     je @END
     jc ERR3

     mov bx,f_out
     mov cx,1
     mov dx,offset c
     mov ah,40h
     int 21h
     jc ERR4
     jmp @L

 @END: mov bx,f_in
       mov ah,3eh
       int 21h
       mov bx,f_out
       mov ah,3eh
       int 21h
end;
goto AA;
ERR1: writeln('Error1');
ERR2: writeln('Error2');
ERR3: writeln('Error3');
ERR4: writeln('Error4');
AA:
end.



Выдает четвертую ошибку. Почему? Файл существует и открыт на запись. Проверял ax = 6, т.е. "ошибочный логический номер файла". Но как так? почему тогда не выдалась ERR2?

PS токо что с ужасом осознал что у меня хард в NTFS и это может быть причиной... Или нет?

Это сообщение отредактировал(а) TP@MB@Y - 15.5.2005, 16:02
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0653 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.