|
2 / 1 / 1
Регистрация: 27.10.2015
Сообщений: 35
|
||||||
FASM При создании директории название обрезается (int 21h ah=39h)30.01.2021, 14:18. Показов 3963. Ответов 10
1) почему при создании директории название обрезается до "temporar"?
2) где найти хороший справочник по 21h? (обычно в гугле находится список из десятки самых часто-используемых, и порой не всегда правильно описывается ввод\вывод) Например узнать поподробнее про команду 30h 3) как указать откуда начинать программу при директиве use16 и указать сегменты? (если возможно) использую fasm 1.73.16 и DosBox 0.74-3
0
|
||||||
| 30.01.2021, 14:18 | |
|
Ответы с готовыми решениями:
10
Ввод строки при помощи int 21h ah=06h Почему с AH=2\Int 1ah работает, а с AH=2ch\Int 21h нет При помощи функции 0Ah int 21h ввести строчку с клавиатуры, а потом вывести ее на экран |
|
Native x86
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
|
|
| 30.01.2021, 15:05 | |
Сообщение было отмечено ФедосеевПавел как решение
Решение
1. В системе DOS имя файла или каталога не может иметь более 8 символов в имени и более 3 символов в расширении.
2
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||
| 30.01.2021, 15:39 | |||
Сообщение было отмечено Shin0_kaze как решение
Решение3)Если org 100h, ENTRY указывать не нужно. 2) Ralf Brown's Interrupt List. 1) На DosBox сильно не надейтесь, DosBox - эмулятор, т.е. Гость и не всегда ОСь-Хозяйка позволить ОСи-Гостье у себя командовать.
2
|
|||
|
2 / 1 / 1
Регистрация: 27.10.2015
Сообщений: 35
|
|
| 30.01.2021, 18:15 [ТС] | |
|
а если очень хочется указать entry point? но при use16 слово entry выдает illegal instruction.
0
|
|
|
Модератор
|
||||||||||||||||
| 30.01.2021, 20:12 | ||||||||||||||||
|
В DOS есть несколько типов исполняемых программ - DOS COM и DOS EXE.
Они в исходнике различаются структурой оформления, а в исполняемом виде - количеством памяти и организацией этой памяти. FASM DOS COM
2
|
||||||||||||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 30.01.2021, 20:34 | ||
1
|
||
|
Модератор
|
|
| 30.01.2021, 21:16 | |
|
Давно читал мануал к FASM, уже забыл, что exe и com там разъясняются.
1
|
|
|
2 / 1 / 1
Регистрация: 27.10.2015
Сообщений: 35
|
|
| 31.01.2021, 14:40 [ТС] | |
|
Спасибо за ответы.
Мануал я читал, мне просто интересно есть ли у COM формата аналог entry ![]() (как всегда можно просто прыжком перейти на нужную строчку) https://fasmworld.ru/uchebnyj-... dresaciya/ Про сегменты немного не понял, в начале говорится, что есть сегменты code, data, stack, extra а потом во втором примере он просто называет seg1, seg2, seg3, seg4... насколько я знаю в других "asm" есть assume, где можно установить соответствие между ds, es, ss, cs регистрами и сегментами. Играет ли это какую то важную роль? Еще долго мучаюсь вопросом как лучше организовать прыжки, их конечно можно сделать по разному. например после каждой команды делать миниатюрный обработчик ошибок, или в конце программы сделать один большой обработчик. (Кому то может это показаться ерундой, но я часто на таких вопросах выбора надолго застреваю.)
0
|
|
|
Модератор
|
|
| 31.01.2021, 15:18 | |
|
Есть книга по ассемблеру для DOS
Питер Абель. Ассемблер и программирование для IBM PC В ней рассматривается разница между DOS COM и DOS EXE программами. В общих чертах, DOS COM примитивный формат - чистый образ программы, не настраивается ни точка входа, ни размеры памяти для сегментов - только в самом начале отводится 256 (100h) байт для PSP, чтобы хоть немного похволить взаимодействовать с операционной системой. Сегменты - начало деления на сегменты идёт из программной модели i8086 - опять же, есть у Абеля. Assume - директива компилятора, которая упрощает для компилятора (упрощает логику работы компилятора) вычисления смещений переменных, полей в структурах данных. Т.е. assume показывает, от какого базового адреса вычислять смещения и подставлять их в виде констант в инструкции. Эту директиву требуют tasm и masm, остальные компиляторы как-то без неё обходятся. Обработчик ошибок - делайте как угодно, хоть сразу проверяйте и реагируйте, хоть в какой-то общий отправляйте, хоть исключения реализуйте. Для почти вышедшего из обихода DOS это ничего не изменит, а вы потренируетесь.
1
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
| 05.02.2021, 16:49 | |
|
Если нужна точка входа, просто в начале кода делаете
jmp Метка.А дальше уже размещаете данные, процедуры и пр. Так иногда делают, но смысла в этом, как правило, нет (в boot-секторе, например, смысл есть, или при создании TSR – резидентных программ). Проще точку входа сделать в начале, а всё остальное – после.
1
|
|
|
2 / 1 / 1
Регистрация: 27.10.2015
Сообщений: 35
|
|
| 08.02.2021, 17:14 [ТС] | |
|
Я так и делаю
дебажить функции по одной удобно например.
0
|
|
| 08.02.2021, 17:14 | |
|
Помогаю со студенческими работами здесь
11
Атрибуты прав при создании директории Действие int 21h Перехват int 21h Перехват int 21h Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
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 и по. . .
|