2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Вывести на экран содержимое сектора диска A [Упр. BIOS]
Сообщение07.06.2011, 07:05 


21/05/11
8
я начал писать и вроде считывает с сектора но не то наверное.и не знаю как вывести на экран,не работает правильно(
если возможно помогите пожалуйста.
код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
begin
asm
mov al,01h
mov ah,02h

mov ch, 00h
mov cl, 01h
mov dh, 00h
mov dl, 00h

mov ax,cs
mov es,ax
{mov ah, 02h
mov al, 01h}


int 13h

mov si,bx

mov di,2
mov cx,di
lea dx,cx

{mov ah,09h
lea dx,es
int 21h}


mov ah,40h
int 21h

end;
 

 Профиль  
                  
 
 Re: вывести на экран содержимое сектора диска A(Floppy)
Сообщение07.06.2011, 11:19 


21/07/10
555
А почему именно floppy - 13-е прерывание позволяет читать любые диски/блочные устройства. А флоппи сейчас днем с огнем не сыщешь.

 Профиль  
                  
 
 Re: вывести на экран содержимое сектора диска A(Floppy)
Сообщение07.06.2011, 14:15 


21/05/11
8
можно и на флешку,я не знал что прокатит.я не знаю как вывести на экран содержимое.

 Профиль  
                  
 
 Re: вывести на экран содержимое сектора диска A(Floppy)
Сообщение08.06.2011, 12:36 


16/06/10
199
zombie2478 в сообщении #454986 писал(а):
я начал писать и вроде считывает с сектора но не то наверное
При вызове функции чтения секторов (int 13h, ah=02h), необходимо в регистровой паре es:bx передать указатель (far ptr) на буфер чтения.
Выводить содержимое сектора можно, конечно, как у Вас (нужно только правильно определить значения регистров при вызове: bx=1 (stdout), ds:dx - указатель на буфер вывода, cx - количество байт для вывода). В итоге имеем:
код: [ скачать ] [ спрятать ]
Используется синтаксис ASM
    mov ax, cs
    mov es, ax
    mov bx, offset buf
    mov ax, 0201h  ; чтение сектора, кол-во секторов
    mov cx, 1      ; дорожка, сектор
    mov dx, 0      ; головка, номер устройства
    int 13h
    jc err         ; ошибка?
    push ds
    mov ax, cs
    mov ds, ax
    mov dx, bx
    mov bx, 1      ; stdout
    mov cx, 512
    mov ah, 040h
    int 21h
    pop ds
err:ret
buf:db 512 dup(?)
 
Но это хорошо, если в считанном секторе печатаемые символы, например, какой-либо текст. А в общем случае выводят т.н. дамп (пример - команда D утилиты debug).

 Профиль  
                  
 
 Re: вывести на экран содержимое сектора диска A(Floppy)
Сообщение08.06.2011, 21:45 


21/05/11
8
спасибо

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: maxal, Toucan, PAV, Karan, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group