Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование атрибутов файла 
V
    Опции темы
Teranko
Дата 2.6.2009, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.5.2009

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



Доброго времени суток, у меня имеется такое задание

Реализуйте программу, которая с помощью прерываний DOS, выполняет следующий набор действий:
1) Создать на диске С директорию TEMP.
2) Создать в этой директории файл temp.txt.
3) Записать в этот файл атрибуты файла c:\io.sys.
4) Скопировать созданный файл в корневой каталог диска С.
5) Удалить исходный файл и исходную директорию.
6) Записать в скопированный файл версию DOS.
7) Переименовать файл в dos.dat.
8) Завершить программу

Код программы таков:
Код

model small
.data
  iof db 'C:\io.sys',0
  atr dw ?
  db ' ',0
    dir db 'D:\TEMP',0
    adr db 'D:\TEMP\temp.txt',0
    file db 'temp.txt',' ',0
    nadr db 'D:\dos.dat',0
    ver db 3 dup(?)
    db 0
.stack 32h
.code
main proc
    mov ax,@data
    mov ds,ax
    mov es,ax
;Получаем версию ДОСа
    mov ah,30h
    int 21h
    add ax,3030h
    mov ver[2],ah
    mov ver[1],'.'
    mov ver[0],al
;Создаем папку
    mov ah,39h
    lea dx,dir
    int 21h
;Создаем файл
    mov ah,3ch
    lea dx,adr
    int 21h
;Получаем атрибуты файла
    mov bx,ax
    mov ah,43h
    mov al,0
    lea dx,iof
    int 21h
    mov atr,cx
;Пишем атрибуты в файл
    mov ah,40h
    mov cx,3
    lea dx,atr
    int 21h
;Пишем версию ДОСа в файл
    mov ah,40h
    mov cx,3
    lea dx,ver
    int 21h
;Закрываем файл
    mov ah,3eh
    int 21h
;Перемещаем файл и переименовываем
    mov ah,56h
    lea dx,adr
    lea di,nadr
    int 21h
;Удаляем папку
    mov ah,3ah
    lea dx,dir
    int 21h
;Закрываем программу
    mov ah,4ch
    mov al,0
    int 21h
main endp
end main



проблема заключается в куске начинающегося с "Пишем версию ДОСа в файл", а в частности просто не записываются атрибуты файла io.sys в файл dos.dat

помогите разобратся, за ранее спасибо 
PM MAIL   Вверх
Akina
Дата 2.6.2009, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Маны надо ЧИТАТЬ!!!
Цитата

INT 21 - DOS 2+ - GET/PUT FILE ATTRIBUTES (CHMOD)

        AH = 43h
        AL =
            0 = get file attributes
            1 = put file attributes
               CX = file attribute bits
                   0 = read only
                   1 = hidden file
                   2 = system file
                   3 = volume label
                   4 = subdirectory
                   5 = written since backup
        DS:DX = pointer to ASCIZ file name
Return: CF = 1 if error
            AX = Error Code if any
        CX = file attributes on get



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
aleksejj
Дата 10.6.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.6.2009

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



Цитата(Akina @ 2.6.2009,  09:14)
Маны надо ЧИТАТЬ!!!
Цитата

INT 21 - DOS 2+ - GET/PUT FILE ATTRIBUTES (CHMOD)

        AH = 43h
        AL =
            0 = get file attributes
            1 = put file attributes
               CX = file attribute bits
                   0 = read only
                   1 = hidden file
                   2 = system file
                   3 = volume label
                   4 = subdirectory
                   5 = written since backup
        DS:DX = pointer to ASCIZ file name
Return: CF = 1 if error
            AX = Error Code if any
        CX = file attributes on get

http://forum.vingrad.ru/forum/topic-262733.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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