Мета роботи:
Ознайомлення з послідовністю дій при завантажені ОС. Анализ коду завантаження, що знаходиться в BIOS, в головному секторі завантаження
(MBR) та в секторі завантаження розділу (BOOT).
Хід роботи:
BIOS:
-u f000:f5be f5d9
F000:F5BE B80102 MOV AX,0201
F000:F5C1 B90100 MOV CX,0001
F000:F5C4 CD13 INT 13
F000:F5C6 7243 JB F60B
F000:F5C8 F6C280 TEST DL,80
F000:F5CB 740B JZ F5D8
F000:F5CD 26 ES:
F000:F5CE 81BFFE0155AA CMP WORD PTR [BX+01FE],AA55
F000:F5D4 7418 JZ F5EE
F000:F5D6 EB62 JMP F63A
F000:F5D8 26 ES:
F000:F5D9 8B07 MOV AX,[BX]
-a 7000:0
7000:0000 int 13
7000:0002
-r ax
AX 0000
:0201
-r cx
CX 0000
:1
-r dx
DX 0000
:0080
-r es
ES 1F5A
:6000
-g=7000:0 7000:2
AX=0000 BX=0000 CX=0002 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1F5A ES=6000 SS=1F5A CS=7000 IP=0002 NV UP DI PL ZR NA PE NC
7000:0002 CD21 INT 21
-u 6000:0 0086
6000:0000 FA CLI
6000:0001 33C0 XOR AX,AX - обнуляем
6000:0003 8ED0 MOV SS,AX - в ss 0
6000:0005 BC007C MOV SP,7C00 - настройка смещения ист
6000:0008 8BF4 MOV SI,SP - передача смещения
6000:000A 50 PUSH AX - в стек 0
6000:000B 07 POP ES - настройка сегмента прием
6000:000C 50 PUSH AX - в стек 0
6000:000D 1F POP DS - настройка сегмента ист
6000:000E FB STI
6000:000F FC CLD - режим передачи
6000:0010 BF0006 MOV DI,0600 - настройка смещения прием
6000:0013 B90001 MOV CX,0100 - 256
6000:0016 F2 REPNZ - пока не равно 0
6000:0017 A5 MOVSW - пересылаем 512 байт
6000:0018 EA1D060000 JMP 0000:061D
6000:001D BEBE07 MOV SI,07BE - на-ка на 1 б табл. раздел
6000:0020 B304 MOV BL,04 - кол-во разделов
6000:0022 803C80 CMP BYTE PTR [SI],80
6000:0025 740E JZ 0035
6000:0027 803C00 CMP BYTE PTR [SI],00
6000:002A 751C JNZ 0048
6000:002C 83C610 ADD SI,+10 - следующая таблица
6000:002F FECB DEC BL - в bl 3, 2
6000:0031 75EF JNZ 0022 - зацикливаем
6000:0033 CD18 INT 18 - стандартн. загрузчик
6000:0035 8B14 MOV DX,[SI]
6000:0037 8B4C02 MOV CX,[SI+02]
6000:003A 8BEE MOV BP,SI
6000:003C 83C610 ADD SI,+10 - следующая таблица
6000:003F FECB DEC BL - в bl 1, 0
6000:0041 741A JZ 005D - когда в bl 0 - прыжок
6000:0043 803C00 CMP BYTE PTR [SI],00
6000:0046 74F4 JZ 003C - зацикливаем
6000:0048 BE8B06 MOV SI,068B - на-ка смещения ист.
6000:004B AC LODSB - загрузить байт в al
6000:004C 3C00 CMP AL,00 - сравнение с 0
6000:004E 740B JZ 005B - если там 0 - прыжок
6000:0050 56 PUSH SI - SI в стек
6000:0051 BB0700 MOV BX,0007
6000:0054 B40E MOV AH,0E
6000:0056 CD10 INT 10
6000:0058 5E POP SI - SI из стека
6000:0059 EBF0 JMP 004B
6000:005B EBFE JMP 005B - задержка
6000:005D BF0500 MOV DI,0005
6000:0060 BB007C MOV BX,7C00 - смещение источника
6000:0063 B80102 MOV AX,0201 -2 функ. 1 сектор
6000:0066 57 PUSH DI - DI в стек
6000:0067 CD13 INT 13
6000:0069 5F POP DI - DI из стека
6000:006A 730C JNB 0078
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.