Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919
TASM

Чтение CD Rom функцией ah=42h int 13h

03.04.2021, 00:07. Показов 1719. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Есть такой код на TASM и не хочет компилироваться в двух строках (я отметил). Как исправить? Заранее спасибо.

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
.MODEL SMALL
.STACK 100h
.DATA
    buffer db 2048 dup (?)
.CODE
START:
 
    mov dl, 0E0h
    mov [edd_segment], @data    ;тут ошибка компиляции
    mov [edd_offset], offset buffer   ;тут ошибка компиляции
    mov ax, offset edd_packet;
    mov si, ax;
    mov ah, 042h 
    int 13h
 
    mov ah,4ch
    int 21h
 
edd_packet:
    edd_len:    db  16,0
    edd_nsecs:  dw  1
    edd_offset: dw  0
    edd_segment:dw  0
    edd_lba:    dq  16
 
END START
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.04.2021, 00:07
Ответы с готовыми решениями:

Чтение сектора CD-ROM функцией BIOS (ah=42h int 13h)
.MODEL SMALL .STACK 5000h .DATA debug_found db "debug found!", 13, 10, 0 drive_not_ready db "Drive not ready!", 0 ...

Чтение DVD функцией 42h прерыванием 13h
Никак не могу разобраться с функцией 42h прерывания 13h. Уже код готовый списывал - всё равно никак. Помогите пожалуйста. Это мне нужно...

Одолеть 42h int 13h
Прошу форумчан указать на ошибку! Пытаюсь оседлать загрузчик с флешки и камнем преткновения стала функция 42h int 13h. Ну никак не могу...

5
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 854
03.04.2021, 07:20
kurlyak, двоеточия убери в строках 20-24.

Добавлено через 6 минут
Листинг
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Turbo Assembler  Version 4.1        04/03/21 07:14:32       Page 1
1.ASM
 
 
 
      1 0000                 .MODEL SMALL
      2 0000                 .STACK 100h
      3 0000                 .DATA
      4 0000  0800*(??)          buffer db 2048 dup (?)
      5 0800                 .CODE
      6 0000                 START:
      7
      8 0000  B2 E0          mov  dl, 0E0h
      9 0002  2E: C7 06 0023r     +  mov  [edd_segment], @data    ;тут ошибка компиляции
     10       0000s
     11 0009  2E: C7 06 0021r     +  mov  [edd_offset], offset buffer   ;тут ошибка    компиляции
     12       0000r
     13 0010  B8 001Dr           mov  ax, offset edd_packet;
     14 0013  8B F0          mov  si, ax;
     15 0015  B4 42          mov  ah, 042h
     16 0017  CD 13          int  13h
     17
     18 0019  B4 4C          mov  ah,4ch
     19 001B  CD 21          int  21h
     20
     21 001D                 edd_packet:
     22 001D  10 00          edd_len     db  16,0
     23 001F  0001           edd_nsecs   dw  1
     24 0021  0000           edd_offset  dw  0
     25 0023  0000           edd_segment dw  0
     26 0025  0000000000000010       edd_lba     dq  16
     27
     28                  END START
Turbo Assembler  Version 4.1        04/03/21 07:14:32       Page 2
Symbol Table
 
 
 
 
Symbol Name           Type   Value
 
??DATE                Text   "04/03/21"
??FILENAME            Text   "1   "
??TIME                Text   "07:14:32"
??VERSION             Number 040A
@32BIT                Text   0
@CODE                 Text   _TEXT
@CODESIZE             Text   0
@CPU                  Text   0101H
@CURSEG               Text   _TEXT
@DATA                 Text   DGROUP
@DATASIZE             Text   0
@FILENAME             Text   1
@INTERFACE            Text   000H
@MODEL                Text   2
@STACK                Text   DGROUP
@WORDSIZE             Text   2
BUFFER                Byte   DGROUP:0000
EDD_LBA               Qword  _TEXT:0025
EDD_LEN               Byte   _TEXT:001D
EDD_NSECS             Word   _TEXT:001F
EDD_OFFSET            Word   _TEXT:0021
EDD_PACKET            Near   _TEXT:001D
EDD_SEGMENT           Word   _TEXT:0023
START                 Near   _TEXT:0000
 
Groups & Segments         Bit Size Align  Combine Class
 
DGROUP                Group
  STACK               16  0100 Para   Stack   STACK
  _DATA               16  0800 Word   Public  DATA
_TEXT                 16  002D Word   Public  CODE
1
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919
03.04.2021, 08:43  [ТС]
Сделал вот так тоже не работает:

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
.MODEL SMALL
.STACK 1000h
.DATA
 
edd_packet struc    
    edd_len db  16
    edd_reservred db 0
    edd_nsecs   dw  1
    edd_offset  dw  0
    edd_segment dw  0
    edd_lba dq  16
edd_packet ends
    
    buffer db 2048 dup (20)
 
    Packet edd_packet <10h,00h, 01h,00h,00h,10h>
 
.CODE
START:
 
    
    mov dl, 0E0h
    mov Packet.edd_segment, @data
    mov Packet.edd_offset, offset buffer;
    mov ax,@data
    mov ds,ax
    mov si, offset Packet
    mov ah, 042h 
    int 13h
    
    mov ah,4ch
    int 21h
 
END START
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8659 / 4494 / 1669
Регистрация: 01.02.2015
Сообщений: 13,907
Записей в блоге: 12
03.04.2021, 11:27
Можно инициализировать сразу
Assembler
1
    Packet edd_packet <10h,00h, 01h,buffer,@data,10h>
А что не работает - не понятно, и как проверяется тоже.
1
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919
03.04.2021, 13:11  [ТС]
Ну что не работает? Код выполняется но CD Rom не заводиться, и не мигает. Я пробовал ставить mov dl, 0 то есть дисковод трехдюймовый, так в этом случае дисковод завелся, и начал читать с диска. А CD Rom не хочет я указал mov dl, 0E0h. Но код без ошибок компилируется, выполняется.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
03.04.2021, 15:10
Значит BIOS, или другая программа, которая обрабатывает INT 19, присвоила CD-ROMу другой номер или не присвоила вовсе.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2021, 15:10
Помогаю со студенческими работами здесь

Про то как DIV подрезает работу функции 42h int 13h
Привет, ребята! Хочу на Fasm'e сделать загрузчик с флешки, который использует FAT 16. Сам разбираюсь и людям хочу помочь. Хоть тема не...

Реализация функции 42h прерывания 13h на FASM
Реализация функции 42h прерывания 13h на FASM. Как это реализовать? Номер устройства при загрузке в регистре dl. Я думаю что так: ...

Int 13h и пародия на ОС
Здравствуйте! Решил написать ОС с по-настоящему красивыми обоями. Имеется первичный загрузчик loader0.asm: org 0x7C00 section...

Форматирование дискеты (int 13h)
Как отформатировать только первую сторону дискеты с размером сектора 512? Вот есть код форматирования ВСЕЙ дискеты. Подскажите что нужно...

Форматирование дискеты(1.44) int 13h
Здравствуйте! Есть задание: Форматировать дорожку № 7 нижней поверхности дисковода с размером секторов 256. Все необходимые для...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru