Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 717
от 08.04.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 368, Экспертов: 40
В номере:Вопросов: 4, Ответов: 5


Вопрос № 80791: Подскажите, пожалуйста. Моя программа должна заносить введенные символы в массив (строку), а затем при нажатии ENTER выводить полученную строку на экран. Но с выводом проблемы: выводит только последний введенный символ аж 25 раз. Где ошибка не могу п...
Вопрос № 80792: Приветствую,Стас ! Постараюсь немного уточнить вопрос: Возможно ли найти на диске (жёстком, или не очень) необходимый мне файл, допустим Nuzda.com, не используя прерываний Dos и Bios, а используя только инструкции ассемблера, написав ...
Вопрос № 80810: Не могу ни где найти системные функции ДОС! Интересует функция создания каталога и функции смены текущего дискового устройства. Помогите пожалуйста, если можно с примером. Заранее спасибо....
Вопрос № 80918: Здравствуйте. У меня появился такой вопрос. В моей программе происходит работа с файлом. Мне нужно ввести имя файла в командной строке и затем работать с этим файлом. Как можно в самой программе использовать это имя файла введенное в командной строке...

Вопрос № 80.791
Подскажите, пожалуйста. Моя программа должна заносить введенные символы в массив (строку), а затем при нажатии ENTER выводить полученную строку на экран. Но с выводом проблемы: выводит только последний введенный символ аж 25 раз. Где ошибка не могу понять.

Приложение:

Отправлен: 02.04.2007, 23:10
Вопрос задал: Zemelia (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Zemelia!

С выводом у Вас все нормально
замените строки
inc BYTE PTR [si] ;увеличиваем байт по адресу в индексном регистре,
а значение si остается неизменным
на
inc si ;увеличиваем индексный регистр
Удачи!

---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: 8-ой класс)
Ответ отправлен: 03.04.2007, 10:48


Вопрос № 80.792
Приветствую,Стас !
Постараюсь немного уточнить вопрос:
Возможно ли найти на диске (жёстком, или не очень) необходимый мне
файл, допустим Nuzda.com, не используя прерываний Dos и Bios,
а используя только инструкции ассемблера, написав к примеру собственное
прерывание и какие команды в этом случае необходимо использовать.
Возможно ли такое под Windows ? Или придётся играть по правилам этих
операционных систем используя стандартные функции работы с файлами..?
Спасибо.
Отправлен: 02.04.2007, 23:30
Вопрос задал: CrancV (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Стас
Здравствуйте, CrancV!

Cделать так чтобы чтобы всегда и везде не получится (вернее очень сложно).
Потому что прийдется изучить и написать поддержку ВСЕХ возможных операционных систем.

>не используя прерываний Dos и Bios
остаются только порты ввода/вывода.
В принципе, на самом деле все оборудование(и мат.плата ипринтер и видюха) управляются с помощью портов ввода/ввывода и иногда специальных областей памяти (например видеопамять(часть) отображена в память компа). И теоритически написать управление (чтение/запись/печать и т.п.) любым устройствой можно. Но, во первых оборудование много, часто производители вносят изменения в стандарты, не факт, что написанный тобой драйвер CD прекрасно работающий с одним CD, на другом будет работать также.
А еще прийдется писать драйвера к дискетам, к винчестерам, может быть к лентам каким нибудь, или магнитооптике, флеш.
Именно поэтому производители пишут свои дрова к устройствам, а прерывания и DOS используют их.

Так что можно попробовать написать прогу которая будет искать искать файл, но в какой-то конкретной файловой системе, на конкретных приводах.
К примеру в FAT12/16/32 на дискетке. Можно попробовать.
А вот на флешке - уже не возьмусь - USB через порты никогда не программил.
Ответ отправил: Стас (статус: Специалист)
Ответ отправлен: 04.04.2007, 12:54
Оценка за ответ: 5
Комментарий оценки:
Отлично !


Вопрос № 80.810
Не могу ни где найти системные функции ДОС! Интересует функция создания каталога и функции смены текущего дискового устройства. Помогите пожалуйста, если можно с примером. Заранее спасибо.
Отправлен: 03.04.2007, 02:04
Вопрос задал: Antoxa84 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sergijj
Здравствуйте, Antoxa84!

Функция получения текущего логического диска: AH=19h, Int 21h; Возвращает: AL=Текущий диск DOS по-умолчанию (0=A, 1=B, 2=C, и т.д.)

Функция установки текущего логического диска DOS по-умолчанию: AH=0Eh, DL=Номер диска (0=A, 1=B, 2=C, и т.д.), Int 21h; Возвращает: AL=Общее количество системных дисков (и устройств, которые проецируются на логические диски).

Функция смены директории: AH=3Bh, DS:DX=Адрес ASCIIZ-строки - имени каталога, Int 21h; Возвращает: Если CarryFlag становится в 1, то в AX=Код ошибки.

Функция создания каталога: AH=39h, DS:DX=ASCIIZ-строка (максимальная длина 64 байта) - имя каталога (с путём до него и без слэша на конце), Int 21h; Возвращает: Если CarryFlag становится в 1, то в AX=Код ошибки.

Функция получения текущего каталога: AH=47h, DL=Номер логического диска (0=A, 1=B, 2=C, и т.д.), DS:SI=Указатель на буфер для ASCIIZ-строки - имени директории; Возвращает: Если CarryFlag становится в 1, то в AX=Код ошибки.
---------
Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 9-ый класс)
Ответ отправлен: 03.04.2007, 09:29

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Antoxa84!
Как говорит Sergijj, TechHelp весьма неплохое подспорье в данном вопросе

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.04.2007, 10:39


Вопрос № 80.918
Здравствуйте. У меня появился такой вопрос. В моей программе происходит работа с файлом. Мне нужно ввести имя файла в командной строке и затем работать с этим файлом. Как можно в самой программе использовать это имя файла введенное в командной строке?
Отправлен: 03.04.2007, 20:02
Вопрос задал: LOST (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, LOST!
Если при запуске то параметр (после имени программы) размещается в префиксе PSP по адресу
80h-длина
81h-сам параметр ввиде строки
нужно только проверить 0 в конце имени файла
;для СОМ программ
org 80h
cmd_size db ?
cmd_name db 80 dup(?)
org 100h
start:
;для ЕХЕ программ
сегмент PSP можно получить функцией ДОС 62h(98)
если из работающей программы то см. приложение
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: 8-ой класс)
Ответ отправлен: 04.04.2007, 09:49
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.47 от 06.04.2007
Яндекс Rambler's Top100

В избранное