Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/35: Рейтинг темы: голосов - 35, средняя оценка - 4.97
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628

Вывод текущей директории и смена ее

01.12.2011, 12:45. Показов 6853. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня такой вопрос, как можно получить текущую директорию(вернее я знаю как ее получить, но не знаю, как записать ее в переменную, чтобы затем вывести ее в текстовый файл) и как сменить текущую директорию на другую?
почти все уже сделала и создание файла и открытие его и т.д. но все что надо в файл выводит, а вот директорию выводить не хочет, точно так же как и поменять не могу... обычно начинает ругаться и выдавать ошибки...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2011, 12:45
Ответы с готовыми решениями:

Вывод текущей даты
Всем привет! Есть классический вопрос - Вывод текущей даты. Есть программа которая выводит день недели, в таком же формате хотелась бы...

Определение текущей директории. DOS 47H
При запуске через dosbox не выдает результата. Может есть ошибки в коде? .MODEL tiny .code .386 org 100h start: mov ah,47h ...

Вывод всех файлов и поддиректорий в заданной директории (добавить в код ввод директории)
.586p .model flat, stdcall std_output_handle equ -11 std_input_handle equ -10 extern wsprintfA:near extern CharToOemA@8:near ...

12
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
01.12.2011, 13:23
Chertenok_n_13, а я вот не знаю как получить текущую директорию и если ты напишешь как, то я помогу тебе записать ее в переменную, делись, не бойся

Мдя! Не дождался, 3 минуты поиска GOOGL'ом при помощи строки "получить текущую директорию в DOS" и находим, что функция 47h прерывания 21h - Определить текущую директорию
Вход: АН=47h
DL номер диска (00h - текущий, 01h - A и т.д.)
DS: DX 64-байтный буфер для текущего пути (ASCIZ-строка без имени диска, первого и последнего символов \)
Выход: CF=1 и АХ = 0100h, если операция выполнена
CF=1 и АХ = 0Fh, если указан несуществующий диск
и пишем программу, которая после запуска выводит текущую дирректорию на экран
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
; masm dos com #
    .model  tiny
    .code
    ORG 100h    
start:  mov ax,3;стираю с экрана
    int 10h
;----------------------------------------
    mov ah,47h      ;АН = 47h
    mov si,offset buf   ;Адрес буфера
    mov dl,0        ;Выбираем текущий диск
    int 21h         ;Вызов функции 47h                
;------------------------------------------------------------------------
    mov ah,9        ;Выводим строку, которая содержит
    mov dx,offset buf   ;путь к текущей директории
    int 21h
;-------------------------------------------------------    
    mov ah,0;жду нажатия на любую клавишу
    int 16h
;-------------------------------
    RET             ;завершение программы
;-------------------------------
buf DB   64 dup('$')    
        END      start
Всё это чрезвычайно сложно?
1
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
01.12.2011, 13:26  [ТС]
ну, не знаю на сколько это верно, но я нашла вот такой код
Assembler
1
2
3
4
mov ah, 47h
mov si, offset directoria
mov dl,0
int 21h
только проблема в том, что он в эту переменную ничего не записывает почему-то...
выходит, что записывать не так надо...

Добавлено через 1 минуту
я именно по этому и делала, но он мне вместо адреса в файле абы что выводит...
и в командную строку пыталась вывести, думала, что кодировка для дос просто, и там тоже самое... один мусор
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
01.12.2011, 13:28
Chertenok_n_13, у меня же выводит...
0
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
01.12.2011, 13:30  [ТС]
ладно, спасибо большое) делаем выводы, что это у меня немного глюченый эмулятор...
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
01.12.2011, 13:36
Chertenok_n_13, у меня ком-программа (CS=SS=ES=DS), если у тебя должен быть ЕХЕ то обрати внимание на фразу "DS: DX 64-байтный буфер для текущего пути (ASCIZ-строка без имени диска, первого и последнего символов \)" то есть в начале должно быть обязательно mov ax,@data/mov ds,ax иначе программа будет записывать неизвестно куда
0
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
01.12.2011, 13:50  [ТС]
все, спасибо) вроде бы заработало)
0
1 / 1 / 1
Регистрация: 22.03.2014
Сообщений: 27
27.04.2014, 21:47
а как вывести весь путь с указанием диска в котором находиться каталог примерно вот так:'C:\TASM\STUD\NEWDІR', 0
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
27.04.2014, 23:22
0 меняете на $ и выводите всю строку с помощью функции AH = 9 INT 21h или посимвольно до 0 с помощью AH = 2 INT 21h
0
2 / 2 / 0
Регистрация: 29.04.2020
Сообщений: 17
17.05.2020, 17:38
AFP, как изменить путь к текущей директории?
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
22.05.2020, 04:11
Функция 3Вh (Сменить директорию)
Вход: АН 3Bh
DS-DX адрес 64-байтного ASCIZ-буфера с путем, который станет текущей директорией
Выход: CF=0 если директория изменена
CF=1 и АХ = 3, если путь не найден
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
22.05.2020, 15:10
Цитата Сообщение от teddy777 Посмотреть сообщение
'C:\TASM\STUD\NEWDІR', 0
Цитата Сообщение от AFP Посмотреть сообщение
0 меняете на $
не забываем про колючки, тьфуты кавычки..
Assembler
1
'C:\TASM\STUD\NEWDІR', '$'
0
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
19.02.2022, 16:35
Chertenok_n_13
Функция 47h возвращает в строку 0 если текущее оглавление корневое. Актуально если вы используете dosbox, и монтируете текущую папку как диск, к примеру вызывая .com файл с помощью cmd -> dosbox test.com
Я сталкивался с этой проблемой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2022, 16:35
Помогаю со студенческими работами здесь

Заменить расширения всех файлов в текущей директории на расширение “.cul”
Задание: Заменить расширения все файлов в текущей директории на расширение “.cul”. Если переименовываемый файл уже существует, то...

Модифицируйте программу так, чтобы она меняла в текстовых файлах текущей директории все латинские буквы “А” на “К”
; замещает российскую "Н" на латинские "H" во всех файлах с расширением .TXT в ; текущей директории .model tiny .code ...

Смена текущей директории "по умолчанию" и загрузка/сохранение файлов
Приветствую вас, товарищи! Столкнулся с следующей проблемой - не получается сменить текущую директорию "по умолчанию". ...

Запуск второго приложения с параметрами из текущей директории и вывод на передний план
Какой из функций это реализовать? Через CreateProcess не хочет запускать из текущей директории и нужно указывать полный путь. Через...

Создание файла с именем текущей даты и вывод в него информации о заданной директории
Помогите, как разработать пакетный файл для создания файла с именем текущей даты и вывод в него информации о заданной директории?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru