информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetПортрет посетителяВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Раздача вредоносных CPU-Z и HWMonitor 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
MBR... 09.02.02 22:28  
Автор: PS <PS> Статус: Elderman
Отредактировано 09.02.02 23:00  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Как загрузчик написать ?
Создал бинарник (as86 -b t1.b t1.s). Загнал его на дискету (dd if=t1.b of=/dev/fd0). Гружусь с дискеты... опс... все виснет.
Код простейший - типа такого:
mov ax, 0x0013
int 10
дальше очистка экрана
jmp start
т.е. если бы работало - увидел бы.
Всего 11ть байт.

Что не верно ?
MBR... 09.02.02 23:14  
Автор: Chingachguk <Chingachguk> Статус: Member
Отредактировано 09.02.02 23:17  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
У кода MBR есть некоторые особенности, одна из которых - загрузка его кода BIOS-ом в память 0000:7c00h. Ниже пример начала загрузчика MBR(я дизассемблировал его, он от win98):

; start at 0000:7c00h
xor ax,ax ; ax:=0
mov ss,ax ; set stack
mov sp,7c00h ; to 0000:7c00h
sti ; Interrupt enable
push ax
pop es ; es:=0000h
push ax
pop ds ; ds:=0000h
cld ; for move self code
mov si,7c1bh ; from 1bh at begin of MBR
mov di,061bh ; to 0000:061bh (before initial position)
push ax
push di ; for retf to moving code
mov cx,01e5h ; 512bytes-01bh
rep movsb
retf ; jmp to copyed code
; continue at 0000:061b
mov si,07beh ; look at disk parametrs = offset params Area
mov cl,04 ; 4 blocks, ind(si-07beh) = 0
@FindWorkDisk: ; 0620h
cmp ds:[si],ch ; with zero
jl @DiskFound ; if Disk number > 80h
jnz @StrangeDisk

Если будут какие конкретные вопросы - пиши, отвечу Ж))).
Хочешь ли ты сцепить его с родным загрузчиком ?
Лучше приведи пример ВСЕГО своего кода.
У меня ошибка была... 10.02.02 00:53  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Всего навсего решетку поставить забыл.
Вместо
mov ax, 0x0013
надо было писать
mov ax, #0x0013

Теперь вижу, что все работает :)

Спасибо за отклик.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach