Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314

Примеры работы с функцией int 2Fh

24.08.2015, 17:25. Показов 2612. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имею такую конструкцию.
Assembler
1
2
3
4
5
6
7
8
 mov     ax, 4A10h     ; AH = номер мультиплексного процесса AL = номер подфункции
loc_1013F:                              
 mov     bx, 0
 mov     cx, 0EBABh
 int     2Fh          ; если взведен флаг CF - ошибка 
loc_10147:                              
 cmp     ax, 0BABEh
 jnz     short loc_1019C
Если ничего не напутал программа устремляется на loc_1019C. Т.е. результат выполнения функции может быть каким угодно кроме как ax=0BABEh.
Что за функция с ходу не разобрался. Что то всё сухо в гуглах по теме, обработчик прерываний, изменение адреса, резидентная программа в памяти. Пазл не складывается. Если есть хороший наглядный пример, или что то совсем на пальцах. В общем что нибудь такое что бы дошло

Добавлено через 25 минут
Паровозом вот такая конструкция
Assembler
1
2
3
4
5
6
7
8
9
 cld           ; цепочка +
 mov     ecx, 80h      ; зарядить счетчик (128)
 mov     si, cx        ; si=80h
 mov     di, 767h      ; di=767h
loc_101A8:                              
 movsb
 loop    loc_101A8
 mov     ax, seg001
 mov     ds, ax
1. Если верить пособиям для быдлокодеров то
адрес источника — в пару регистров ds:esi/si (ds по умолчанию, допускается замена сегмента);
адрес приемника — в пару регистров es:edi/di (замена сегмента не допускается);
Однако есть одна задрочка - по ходу программы DS пока что ещё так и не прописан...

2. Почему loop а не rep?!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2015, 17:25
Ответы с готовыми решениями:

Код с функцией 4Dh и прерыванием INT 05h
Может у кого нибудь есть листинг программ или часть, где используется функция 4Dh прерывание INT 05h т.е. нужен код на...

Вернуть ошибку функцией int
Здравствуйте. Нужно вернуть ошибку или объяснение ошибки,код ниже. Пытался сделать с помощью структуры но не очень понял как. ...

Округлить число типа int, не пользуясь функцией math.h
Функция округляет число типа int до разряда тысяч(до 3 перед запятой).Функциями из math.h не пользоваться. Помогите,пожалуйста.

1
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
29.01.2016, 00:02
Описание этой функции у тебя есть? AH=4A10h: BX=0: CX=EBABh
Вот чё Ральф Браун про неё говорит:
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
--------c-2F4A10BX0000-----------------------
INT 2F - SMARTDRV v4.00+ - INSTALLATION CHECK AND HIT RATIOS
    AX = 4A10h
    BX = 0000h
    CX = EBABh (v4.1+; see Note), and CX <> 0EDCh
Return: AX = BABEh if installed
        DX:BX = cache hits
        DI:SI = cache misses
        CX = number of dirty cache elements
        BP = version in BCD (4.10 = 0410h)
        4.0  = 0400h (Windows 3.1)
        4.01 = 0401h (MS-DOS 6.0, 1992/07/30)
        4.10 = 0410h (1992/11/11)
        4.20 = 0420h
        5.0  = 0500h (MS-DOS 6.2)
Notes:  most of the SMARTDRV API, including this call, is supported by
      PC-Cache v8.0 and recent versions of the Norton Caches
    the internal name for SMARTDRV is "BAMBI", hence the magic "BABE".
    if DBLSPACE.BIN is installed but SMARTDRV has not yet been installed,
      then calls of this function with CX<>EBABh on entry cause
      DBLSPACE.BIN to display the error message
      "Cannot run SMARTDrive 4.0 with DoubleSpace" and abort the caller
      with INT 21/AX=4C00h
    Since the Novell DOS 7 - DR-DOS 7.03 NWCACHE supports a similar 
      install check at this function, but the returned registers
      contain different data, the caller must take the returned AX value
      into account to ensure proper interpretation of the returned info.
      The caller should ensure CX <> 0EDCh to avoid any interaction
      with the NWCACHE and COMMAND.COM special case of CX=0EDCh.
      Although this is an install check, NWCACHE always flushes delayed
      writes to disk, when calling this function with CX<>0EDCh or while
      /FLUSH:ON is active, but this is nothing to rely upon. The reason
      for this could be to get more accurate statistics, while SMARTDRV
      just takes a on-the-fly snapshot of the statistic vars.
    The private NWCACHE/NLCACHE install check INT2Fh/D8C0h does not flush
      to disk, and therefore can be used by callers that must ensure
      the buffers aren't flushed on this function (e.g. alternative
      command shells may need this to make their "flush before prompt"
      feature configurable).
    The NWCACHE 0EDCh special case will most probably vanish with
      future issues of NWCACHE (2.0+).
    SMARTDRV v3.x had a completely different API using IOCTL calls, which
      was also supported by the Norton Caches
BUG:    Although DS and ES registers are listed as unmodified, some
      releases of SMARTDRV seem to trash the DS register, at least the
      MS-DOS 6.2+ KEYB takes care to preserve the DS register when calling
      this function.
SeeAlso: AX=4A10h/BX=0001h,AX=4A10h/BX=0004h,AX=4A10h/BX=0005h
SeeAlso: AX=4A10h/BX=0007h,AX=4A10h/BX=1234h,AX=4A11h/BX=0000h
SeeAlso: INT 21/AX=4402h"SMARTDRV",INT 21/AX=4403h"SMARTDRV"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2016, 00:02
Помогаю со студенческими работами здесь

Примеры работы с SQLite
привет, а можете подсказать, я юзаю SQLiteOpenHelper, ну через наслденика естесно)) но у меня не выызваются метода onCreate, onUpgrade,...

Примеры работы с БД MS Access
Может у кого валяется простой исходник работы с БД ms access? функция простые- добавление/удаление/редактирование/фильтр/ сам бы...

Примеры работы с Zip
Я получаю InflaterInputStream и читаю из него, когда результат равен -1, следовательно все вычитали.

Примеры работы с SQLite
Можете мне дать примеры ,который я могу добавлять,удалять и изменить на БД через SQlite browser или Sqlite Manager или др.а читать будут...

Примеры работы с SQLite
можете дать ссылку или написать фрагмент кода как сохранять ссылки на файлы в базе данных?? Добавлено через 8 часов 16 минут то есть...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru