{"id":473441,"date":"2025-09-02T16:31:24","date_gmt":"2025-09-02T16:31:24","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=473441"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=473441","title":{"rendered":"<span>\u0421\u0432\u043e\u044f \u041e\u0421?<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0414\u0430\u0440\u043e\u0432\u0430! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u0441 \u0432\u0430\u043c\u0438 \u043e\u043f\u044b\u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u041e\u0421 \u0438, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0448\u043b\u043e. \u0417\u0430\u043f\u0430\u0441\u0430\u0439\u0442\u0435\u0441\u044c \u0447\u0430\u0439\u043a\u043e\u043c \u0441 \u043f\u0435\u0447\u0435\u043d\u044c\u043a\u0430\u043c\u0438 \u0438 \u043f\u0440\u0438\u0441\u0430\u0436\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u043e\u0443\u0434\u043e\u0431\u043d\u0435\u0435! \u041f\u043e\u0440\u0430 \u043e\u043a\u0443\u043d\u0443\u0442\u044c\u0441\u044f \u0432 16\u0442\u0438 \u0431\u0438\u0442\u043d\u044b\u0439 \u043c\u0438\u0440&#8230;<\/p>\n<hr\/>\n<h4>\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c?<\/h4>\n<p>\u042f \u043d\u0430\u0447\u0430\u043b \u0441 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u042f\u041f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430. \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f hex \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 (\u0434\u0430, \u044f \u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b) \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0434\u0438\u0441\u043a\u043e\u0432. \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u0447\u0442\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b:<\/p>\n<ul>\n<li>\n<p>HxD hex-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440<\/p>\n<\/li>\n<li>\n<p>\u042f\u041f  &#8212; fasm<\/p>\n<\/li>\n<li>\n<p>ultraISO \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0434\u0438\u0441\u043a\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>VMBox &#8212; \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0445\u043e\u0442\u044f \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445 \u0438 \u0433\u0430\u0439\u0434\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 qemu (\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441 \u043d\u0438\u043c \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f)<\/p>\n<\/li>\n<\/ul>\n<h3>\u041d\u0430_\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/h3>\n<p>\u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430? \u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c! <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a: <\/p>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p><code>Os\/<br \/>    bin\/<br \/>    obj\/<br \/>    src\/<br \/>         boot\/<br \/>    makefile.txt<\/code><\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 <code>makefile:<\/code><\/p>\n<pre><code class=\"powershell\">#################################################################################### #Create Date: 03.01.2024 18:50 #Goal: create a simple bootloader and simple core #Author: As_Almas #Description: wait for write... # #Status:  ####################################################################################  TARGET = As_OS.img  SRC_BOOT_PREF = .\/src\/boot\/  BOOT_OBJ_F  = .\/obj\/ BIN_PREFIX  = .\/bin\/  ISO_app = UltraISO.exe HEX_EDIT = HxD.exe  VBOX = VBoxManage.exe startvm  OS_NAME = \"AS_OS\"  DEBUG_FLAGS =  -E VBOX_GUI_DBG_ENABLED=true  ASM = FASM ASM_FLAGS =   boot:  $(ASM) $(ASM_FLAGS) $(SRC_BOOT_PREF)bootloader.asm $(BOOT_OBJ_F)bootloader.bin  hex: $(BOOT_OBJ_F)bootloader.bin $(HEX_EDIT) $(BIN_PREFIX)$(TARGET) $(BOOT_OBJ_F)bootloader.bin  fs: $(ISO_app) $(BIN_PREFIX)$(TARGET)  clean: del \"$(BOOT_OBJ_F)\\*.bin\"  debug: $(BIN_PREFIX)$(TARGET) $(VBOX) $(OS_NAME) $(DEBUG_FLAGS)<\/code><\/pre>\n<p>\u041d\u0443, \u044f \u0434\u0443\u043c\u0430\u044e \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e: <br \/> <code>boot<\/code> &#8212; \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0444\u0430\u0439\u043b\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u044f\u0434\u0440\u0430 (<code>bootloader<\/code> &#8212; \u043e \u043d\u0451\u043c \u043f\u043e\u0437\u0436\u0435). <br \/> <code>hex<\/code> &#8212; \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f hex-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0438 \u0441 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u044f\u044e \u0441\u0435\u043a\u0442\u043e\u0440 \u0441 bootloader&#8217;\u043e\u043c \u0432 \u043e\u0431\u0440\u0430\u0437\u0435 \u0434\u0438\u0441\u043a\u0430 \u043d\u0430 \u043c\u043e\u0439 bootloader (\u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435, \u0432\u044b \u0441\u043a\u043e\u0440\u043e \u043f\u043e\u0439\u043c\u0451\u0442\u0435 \u0447\u0442\u043e \u0437\u0430 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 bootloader&#8217;\u044b)<br \/> <code>fs<\/code> &#8212; \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430 \u0432 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430.<br \/> <code>clean<\/code> &#8212; \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 <code>obj<\/code> \u043e\u0442 \u043c\u0443\u0441\u043e\u0440\u0430 (P.S. \u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f)<br \/> <code>debug<\/code>  &#8212; \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 \u043d\u0430\u0448\u0435\u0439 \u041e\u0421 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 (<code>debug-mode<\/code>)<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430,  \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0435\u0442\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1.44\u043c\u0431. \u042f \u0441\u043e\u0437\u0434\u0430\u043b \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430 \u0442\u0430\u043a: <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 UltrsISO:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/85b\/1fc\/649\/85b1fc6497970b44a16d7e7e9b34bc5a.png\" alt=\"\u0433\u043b\u0430\u0432\u043d\u0430\u044f UltraISO\" title=\"\u0433\u043b\u0430\u0432\u043d\u0430\u044f UltraISO\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/85b\/1fc\/649\/85b1fc6497970b44a16d7e7e9b34bc5a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/85b\/1fc\/649\/85b1fc6497970b44a16d7e7e9b34bc5a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0433\u043b\u0430\u0432\u043d\u0430\u044f UltraISO<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0444\u0430\u0439\u043b -&gt; \u043d\u043e\u0432\u044b\u0439: <\/p>\n<\/div>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/35d\/ca1\/c03\/35dca1c03aa37bf930d6867d59477499.png\" alt=\"\u041c\u0435\u043d\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 UltraISO\" title=\"\u041c\u0435\u043d\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 UltraISO\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/35d\/ca1\/c03\/35dca1c03aa37bf930d6867d59477499.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/35d\/ca1\/c03\/35dca1c03aa37bf930d6867d59477499.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u043d\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 UltraISO<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0435\u0442\u044b. \u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043c\u0435\u043d\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c70\/c90\/3bc\/c70c903bcd31330cd25a3a944233618d.png\" alt=\"\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b\" title=\"\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c70\/c90\/3bc\/c70c903bcd31330cd25a3a944233618d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c70\/c90\/3bc\/c70c903bcd31330cd25a3a944233618d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c!<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u043a\u0443? <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f41\/ed0\/b05\/f41ed0b059b9845ce615bd8700f74c49.png\" alt=\"VMbox - \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b\" title=\"VMbox - \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f41\/ed0\/b05\/f41ed0b059b9845ce615bd8700f74c49.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f41\/ed0\/b05\/f41ed0b059b9845ce615bd8700f74c49.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>VMbox &#8212; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044e \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u0433\u0434\u0435 <code>\u0438\u043c\u044f<\/code> \u043f\u0438\u0448\u0435\u043c \u0447\u0442\u043e \u043f\u043e\u0436\u0435\u043b\u0430\u0435\u043c, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0441\u0442\u044b\u043c. \u0422\u0438\u043f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <code>other<\/code>, \u0430 <code>\u0432\u0435\u0440\u0441\u0438\u044e <\/code>DOS . \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u0430\u043b\u0435\u0435. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0436\u0435\u043b\u0430\u0435\u0442\u0435. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u0430\u043b\u0435\u0435, \u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u0430\u043b\u0435\u0435 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e. <br \/>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e VMbox \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c. \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <code>\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438<\/code> \u0438 \u0433\u0434\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Floppy \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0435 \u043f\u043b\u044e\u0441. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a30\/8ce\/25c\/a308ce25c1bb890d07adf116d1dcbe43.png\" alt=\"\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\" title=\"\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a30\/8ce\/25c\/a308ce25c1bb890d07adf116d1dcbe43.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a30\/8ce\/25c\/a308ce25c1bb890d07adf116d1dcbe43.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2f\/ab2\/ab8\/d2fab2ab881c210e9042f564c615fe97.png\" alt=\"\u043c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u0438\u0431\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 (\u0434\u0438\u0441\u043a\u0435\u0442\u044b)\" title=\"\u043c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u0438\u0431\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 (\u0434\u0438\u0441\u043a\u0435\u0442\u044b)\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d2f\/ab2\/ab8\/d2fab2ab881c210e9042f564c615fe97.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2f\/ab2\/ab8\/d2fab2ab881c210e9042f564c615fe97.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u043c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u0438\u0431\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 (\u0434\u0438\u0441\u043a\u0435\u0442\u044b)<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bc5\/9ac\/619\/bc59ac619b4368bb2e36a3a711a6d57e.png\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bc5\/9ac\/619\/bc59ac619b4368bb2e36a3a711a6d57e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bc5\/9ac\/619\/bc59ac619b4368bb2e36a3a711a6d57e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<\/div>\n<\/details>\n<h3>\u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u0434<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043b\u044e\u0431\u043e\u0439 \u041e\u0421 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/BIOS\" rel=\"noopener noreferrer nofollow\">bios<\/a>. \u041e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430. \u0410 \u0437\u0430\u0442\u0435\u043c \u0438\u0449\u0435\u0442 \u0441\u0440\u0435\u0434\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0436\u0451\u0441\u0442\u043a\u0438\u0435\/\u0433\u0438\u0431\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0438 \u0438 \u0442.\u043f.), \u0442\u043e\u0442, \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%B5%D0%BA%D1%82%D0%BE%D1%80_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0441\u0435\u043a\u0442\u043e\u0440\u0430<\/a> \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043e\u0432\u0430\u044f <code>0x55<\/code>, <code>0xAA<\/code>, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f, \u0447\u0442\u043e \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u044f\u0434\u0440\u0430. \u041e\u0431\u044b\u0447\u043d\u043e \u0441\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 512 \u0431\u0430\u0439\u0442, \u043d\u043e \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043e\u043e\u043e\u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0435\u043a\u0442\u043e\u0440.<\/p>\n<h4>Bootloader \u0438\u043b\u0438 \u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u044f\u0434\u0440\u0430<\/h4>\n<p>\u041a\u043e\u0440\u043e\u0442\u043a\u043e, \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u041f\u041a \u0438 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0438\u0441\u043a\u0435\u0442\u044b) \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u0434\u043e\u043c \u043f\u043e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0435 0x55, 0xAA \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430. BootLoader \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0441\u043b\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0438\u0437 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430<\/a> (<code>x16<\/code>) \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/118881\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c<\/a> (<code>x32<\/code>) \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0443.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430: <\/p>\n<pre><code class=\"assembly\">use16 ; \u043a\u043e\u0434 \u0434\u043b\u044f 16 \u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 org 0x7C00 ; \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u0441\u0430 0x7C00  start: ; \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u0434\u0430  ; ... some code  finish:      times 0x200-finish+start-2 db 0 ; \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u043e 510 \u0431\u0430\u0439\u0442\u0430 \u0432\u0441\u0451 \u043d\u0443\u043b\u044f\u043c\u0438     db 0x55, 0xAA ; \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430<\/code><\/pre>\n<p>\u0422\u0430\u043a, \u043a\u0430\u043a \u043a\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x7C00<\/code>, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u043e\u0434 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043d\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>str<\/code> \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x00CA<\/code>, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x7C00<\/code>, \u0442\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f <code>0x7CCA<\/code>. <br \/>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0443\u0441\u0442\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 510 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u043d\u0443\u043b\u044f\u043c\u0438, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 <code>0x55, 0xAA<\/code> \u0431\u044b\u043b\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u0430. <\/p>\n<pre><code class=\"assembly\">start: jmp  boot_entry nop ; \u0437\u0430\u043f\u0438\u0441\u044c BPB boot_entry: ;..<\/code><\/pre>\n<p>\u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (\u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434 <code>jmp <\/code>\u0438 <code>nop<\/code> \u0432 \u0441\u0443\u043c\u043c\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445 3 \u0431\u0430\u0439\u0442\u0430), \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0431\u0438\u043e\u0441 (<code>BPB<\/code>), \u043e \u043d\u0451\u043c  \u043f\u043e\u0439\u0434\u0451\u0442 \u0440\u0435\u0447\u044c \u0434\u0430\u043b\u0435\u0435. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b \u0447\u0443\u0434\u0438\u0442\u044c \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u043a\u0430\u043a \u043a\u043e\u0434 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 BPB, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c \u043a\u043e\u0434\u043e\u043c. <\/p>\n<details class=\"spoiler\">\n<summary>BPB<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"assembly\">; !!!! BPB BLOCK START !!!! OEM_NAME                db \"ASOS2024\" ;8 \u0431\u0430\u0439\u0442 - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 OEM BYTES_PER_SECTOR        dw 0x200 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0435\u043a\u0442\u043e\u0440 (512 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0435\u043a\u0442\u043e\u0440) SECTORS_PER_CLUSTER     db 1 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 (\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u043f\u043e\u0437\u0436\u0435) RSVD_SECTORS            dw 1 ; \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u044b (1 - \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430) FATS_CNT                db 2 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e FAT \u0442\u0430\u0431\u043b\u0438\u0446 (2 - 1 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b, 2 \u043a\u043e\u043f\u0438\u044f) ROOT_DIR_ENTRIES        dw 224 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 LOW_SECTORS_COUNT       dw 2880 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u043d\u0438\u0436\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e) MEDIA_TYPE              db 0xF0 ; \u0442\u0438\u043f \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f (0xF0 - \u0434\u0438\u0441\u043a\u0435\u0442\u0430) SECTORS_PER_FAT         dw 9 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u0443 FAT \u0442\u0430\u0431\u043b\u0438\u0446\u0443 SECTORS_PER_TRACK       dw 18 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u043e\u0440\u043e\u0436\u043a\u0443 (\u043e \u043d\u0435\u0439 \u043f\u043e\u0437\u0436\u0435) HEADS_COUNT             db 2 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0433\u043e\u043b\u043e\u0432\u043e\u043a  HEADEN_SECTORS          dd 0 ; \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u044b (\u0442\u0430\u043a\u0438\u0445 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442) HIGHT_SECTOR_COUNT      dd 0 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e) - \u0432 fat12 \u0438 fat16 - \u043f\u0443\u0441\u0442\u043e\u0435 ; !!!! BPB BLOCK END !!!!  ; !!!! EXTENDED BPB START !!!! DRIVE_NUMBER            db 0 ; \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 dl \u0431\u0438\u043e\u0441\u043e\u043c) WIN_RTFLAGS             db 0 ; \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e  BOOT_SIG                db 0x29 ; \u0441\u0430\u043c \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f, \u043d\u043e \u043f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 VOLUME_ID               dd 0 ; \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430  VOLUME_LABEL            db \"AS OS start\" ; \u043c\u0435\u0442\u043a\u0430 \u0442\u043e\u043c\u0430  SYS_LABEL               db \"FAT12   \"  ; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ; !!!! EXTENDED BPB END !!!!<\/code><\/pre>\n<p>\u0420\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u0434\u0443 \u0434\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432<\/p>\n<\/div>\n<\/details>\n<pre><code class=\"assembly\">boot_entry:     cli ; off interraps         xor ax, ax ; ax = 0         mov ds, ax ; ds = ax         mov es, ax ; es = ax         mov ss, ax ; ss = ax         mov sp, 0x7Bff ; sp = 0x7Bff      sti ; on interraps<\/code><\/pre>\n<p>\u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u0411\u044b\u0441\u0442\u0440\u043e \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c <code>\u0430\u0445<\/code> \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b. \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0435\u043a\u0430 <code>sp <\/code>\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <code>0x7Bff<\/code> &#8212; \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0430\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0410 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0435\u043a\u0430 <code>ss<\/code> \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c (\u0441\u0442\u0435\u043a \u0440\u0430\u0441\u0442\u0451\u0442 \u0432\u043d\u0438\u0437). \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. <\/p>\n<pre><code class=\"assembly\">    mov [DRIVE_NUMBER], dl ; dl have the hard-drive index from bios     jmp 0x0000:main ; jmp main | cs = 0, ip = main main:<\/code><\/pre>\n<p>\u041f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0434\u0438\u0441\u043a\u0435\u0442\u044b) \u0432 <code>DRIVE_NUMBER<\/code>  &#8212; \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u0438\u043e\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 <code>dl<\/code>. \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043d\u0430\u0448\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u0414\u043b\u0438\u043d\u043d\u044b\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b <code>cs<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c), \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448 \u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>ip<\/code>  \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. <\/p>\n<pre><code class=\"assembly\">main:   .clear_screan:         xor ax, ax ; ax = 0          int 10h ; video interrap   .on_start:<\/code><\/pre>\n<p>\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>40x25 <\/code>\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. <code>ah = 0<\/code> &#8212; \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/INT_10H\" rel=\"noopener noreferrer nofollow\"><code>int 10h<\/code><\/a>, \u0430 <code>al = 0<\/code> &#8212; \u043a\u043e\u0434 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0433\u043e <a href=\"https:\/\/mendelson.org\/wpdos\/videomodes.txt\" rel=\"noopener noreferrer nofollow\">\u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0436\u0438\u043c\u0430<\/a>.<\/p>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u043d\u0430\u0434\u043e \u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c. \u0418\u043d\u0430\u0447\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a, \u0430 \u0435\u0440\u0443\u043d\u0434\u0430 \u043a\u0430\u043a\u0430\u044f-\u0442\u0430. \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/LBA\" rel=\"noopener noreferrer nofollow\">LBA <\/a>\u0437\u0430\u043f\u0438\u0441\u044c, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043a\u0430\u043a \u0431\u0438\u043e\u0441 \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/CHS\" rel=\"noopener noreferrer nofollow\">CHS<\/a>. LBA &#8212; \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 0 \u0438 \u0438\u0434\u0451\u0442 \u0434\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435. CHS &#8212; \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0430\u044f \u0432 \u0441\u0435\u0431\u044f, \u043d\u043e\u043c\u0435\u0440 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043d\u043e\u043c\u0435\u0440 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440) \u0438 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430. \u041d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 CHS \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 1. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c LBA, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f LBA \u0432 CHS. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0435\u0441\u0442\u044c! <br \/>\u041a\u043e\u0434 \u0432 \u0441\u0442\u0443\u0434\u0438\u044e:<\/p>\n<pre><code class=\"assembly\">; ax = lba ; es:bx = read data start addr (in) read_sector:     .LBA_to_CHS: ; linear sector address to  address of cylinder, head and sector     ; s = (LBA % SECTORS_PER_TRACK) + 1     ; h = ((LBA - (s-1)) \/ SECTORS_PER_TRACK) % HEADS_COUNT     ; c = ( (LBA - (s-1) - h*S) \/ (HEADS_COUNT*SECTORS_PER_TRACK) )         push ax ; save ax         push ax ; save ax         xor dx, dx  ; find 's'         mov cx, [SECTORS_PER_TRACK]         div cx          pop ax ; ret ax value         inc dx         mov [sector], dx ; sector = s         dec dx ; dx = s - 1                  sub ax, dx ; ax = LBA - (s-1)         push ax ; save ax          xor dx, dx         mov cx, [SECTORS_PER_TRACK]         div cx ; ax = ((LBA - (s-1)) \/ SECTORS_PER_TRACK)          mov cl, [HEADS_COUNT]         div cl          mov [head], ah ; head = h          xor ah, ah ; cylinder = c         mov cx, [SECTORS_PER_TRACK]         mul cx ; ax = h * SECTORS_PER_TRACK         pop cx ; ax value to cx = ( LBA - (s-1))         sub cx, ax ; cx = (LBA - (s-1) - h*SECTORS_PER_TRACK)         push cx ; save cx         mov ax, [SECTORS_PER_TRACK]         mov cl, [HEADS_COUNT]         mul cl ; ax = SECTORS_PER_TRACK * HEADS_COUNT                  mov cx, ax          pop ax          xor dx, dx          div cx  ; c = cylinder     .read:<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0443\u043b\u044f\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>dx <\/code>(\u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432 \u043a\u043e\u0434\u0435). \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u0439\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 (<code>s+1<\/code>), \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u0445. \u0414\u0430\u043b\u0435\u0435 \u0441\u0442\u043e\u0438\u0442 \u0435\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0438 \u0442\u0430\u043a \u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c. \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u043e\u043c\u0435\u0440 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430. \u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0435\u0442\u0443, \u0432\u0441\u0451 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c. \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0435\u0449\u0451 \u0432\u043f\u0435\u0440\u0435\u0434\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u0424\u043e\u0440\u043c\u0443\u043b\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 LBA \u0432 CHS<\/summary>\n<div class=\"spoiler__content\"><img decoding=\"async\" class=\"formula\" source=\"sector = (LBA \\mod S) + 1 \" alt=\"sector = (LBA \\mod S) + 1 \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91e\/dbc\/1d7\/91edbc1d71e54b28c573e5098b378e82.svg\" width=\"249\" height=\"22\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91e\/dbc\/1d7\/91edbc1d71e54b28c573e5098b378e82.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91e\/dbc\/1d7\/91edbc1d71e54b28c573e5098b378e82.svg 781w\" loading=\"lazy\" decode=\"async\"\/><img decoding=\"async\" class=\"formula\" source=\"head = \\frac{LBA - (sector - 1)}{S}\\mod H\" alt=\"head = \\frac{LBA - (sector - 1)}{S}\\mod H\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/188\/f57\/b58\/188f57b586a69e4e5bce31001a0f85aa.svg\" width=\"321\" height=\"45\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/188\/f57\/b58\/188f57b586a69e4e5bce31001a0f85aa.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/188\/f57\/b58\/188f57b586a69e4e5bce31001a0f85aa.svg 781w\" loading=\"lazy\" decode=\"async\"\/><img decoding=\"async\" class=\"formula\" source=\"cylinder = \\frac{LBA - (sector-1) -head \\times S}{H \\times S}\" alt=\"cylinder = \\frac{LBA - (sector-1) -head \\times S}{H \\times S}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/05\/05c\/05c6ca7deb530d18817588d2debe23ba.svg\" width=\"344\" height=\"32\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/05\/05c\/05c6ca7deb530d18817588d2debe23ba.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/05\/05c\/05c6ca7deb530d18817588d2debe23ba.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435 S &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u043e\u0440\u043e\u0436\u043a\u0443 (\u0446\u0438\u043b\u0438\u043d\u0434\u0440), H &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/p>\n<\/div>\n<\/details>\n<p>\u0421 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0430 \u043a\u0430\u043a \u0436\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0438\u0441\u043a\u0430? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 <code>int 13h<\/code> \u0438 \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/INT_13H#INT_13h_AH=02h:_Read_Sectors_From_Drive\" rel=\"noopener noreferrer nofollow\"><code>0x02<\/code><\/a>:<\/p>\n<pre><code class=\"assembly\">.read:          mov dl, [DRIVE_NUMBER]         mov dh, [head]         mov cx, ax ; cylinder         shl cx, 6 ; cx &lt;&lt; 6         or cx, [sector] ; hight 10 bits - cylinder; low 6 bits - sector         mov ax, 0x0201 ; al - count to read; ah - interrap function         int 13h ; read         jb _err ; on read error         pop ax ; ax = LBA ret<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">\u0440\u0435\u0433\u0438\u0441\u0442\u0440<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">dl<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0434\u0438\u0441\u043a\u0430), \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">dh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0433\u043e\u043b\u043e\u0432\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">al<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043a \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">ah<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (<code>0x02 <\/code>&#8212; \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0441 \u0434\u0438\u0441\u043a\u0430)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">es:bx<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0430\u0434\u0440\u0435\u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u0443\u0434\u0430 \u0437\u0430\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"113\" width=\"113\">\n<p align=\"center\">cx<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435:) \u0441\u0442\u0430\u0440\u0448\u0438\u0435 10 \u0431\u0438\u0442 &#8212; \u043d\u043e\u043c\u0435\u0440 \u0434\u043e\u0440\u043e\u0436\u043a\u0438; cl &#8212; \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u042d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451. \u0427\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441 \u0434\u0438\u0441\u043a\u0430, \u0430 \u043d\u0435 1? \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043a \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044e \u0432 <code>al<\/code> \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e, \u041d\u041e, \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0435 \u0438\u043b\u0438 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u043e\u0439 \u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0439, \u0442\u043e \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430! \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430:<\/p>\n<pre><code class=\"assembly\">;ax = lba ;es:bx = read data start addr (in) ;cx = count of sectors to read read_sectors:      .read_loop:         push cx          call read_sector         inc ax          add bx, [BYTES_PER_SECTOR]         pop cx          loop .read_loop     ret<\/code><\/pre>\n<p><code>cx<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0441\u0442\u0435\u043a\u0435, \u0430 <code>ax<\/code> \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e ax \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>read_sector<\/code>.<\/p>\n<p>\u0421 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c,  \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u043a\u0430\u043a \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u044f\u0434\u0440\u0430. <\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0430\u0440\u0443 \u0441\u043b\u043e\u0432 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412 \u043c\u0438\u0440\u0435 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u0430\u0439\u043b\u043e\u0432). \u0411\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/FAT#%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8\" rel=\"noopener noreferrer nofollow\">FAT<\/a>. \u0410 \u0442\u043e\u0447\u043d\u0435\u0435 \u0435\u0433\u043e \u0432\u0435\u0440\u0441\u0438\u044e FAT12. <br \/>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 FAT &#8212; \u044d\u0442\u043e FAT \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 (\u043e\u0434\u0438\u043d \u043a\u043b\u0430\u0441\u0442\u0435\u0440 &#8212; \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445  \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0439 \u0444\u0430\u0439\u043b\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442), \u0430 \u0442\u0430\u043a \u0436\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0432 <code>BPB<\/code>.  \u0412 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0444\u0430\u0439\u043b\u0430\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0445 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u0438\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f. \u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0444\u0430\u0439\u043b\u044b \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0444\u043b\u0430\u0433\u0430\u0445 \u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435. \u0410 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435  \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430-&#171;\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f&#187; \u0438 \u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 ( <code>.<\/code> &#8212; \u0441\u0430\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433, <code>..<\/code> &#8212; \u043a\u0430\u0442\u0430\u043b\u043e\u0433-\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c, \u043d\u043e \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u044d\u0442\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0435\u0442).<br \/>\u0424\u0430\u0439\u043b\u043e\u0432\u043e\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 (\u0437\u0430\u043f\u0438\u0441\u044c) \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 32 \u0431\u0430\u0439\u0442:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"center\">\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 (\u0431\u0430\u0439\u0442)<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">\u0440\u0430\u0437\u043c\u0435\u0440 (\u0431\u0430\u0439\u0442)<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">0<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">11<\/p>\n<\/td>\n<td>\n<p align=\"left\">8 &#8212; \u0431\u0430\u0439\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430, 3 \u0431\u0430\u0439\u0442\u0430 &#8212; \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435. \u0422\u043e\u0447\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">11<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0435\u0440\u0445\u043d\u0438\u0435 \u0434\u0432\u0430 \u0431\u0438\u0442\u0430 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u0437\u0430 \u0440\u0435\u0434\u043a\u0438\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c &#8212; \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u044b. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <code>0x01 <\/code>&#8212; \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f, <code>0x02<\/code> &#8212; \u0441\u043a\u0440\u044b\u0442\u044b\u0439, <code>0x04<\/code> &#8212; \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439, <code>0x20<\/code> &#8212; \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0439, <code>0x10<\/code> &#8212; \u043a\u0430\u0442\u0430\u043b\u043e\u0433, <code>0x08<\/code> &#8212; \u043c\u0435\u0442\u043a\u0430 \u0442\u043e\u043c\u0430, <code>0x0F<\/code> &#8212; \u0447\u0430\u0441\u0442\u044c \u0438\u043c\u0435\u043d\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (\u043e\u0431 \u044d\u0442\u043e\u043c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443), <code>0x40<\/code> &#8212; \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e (\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e).<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">NT_byte<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">12<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0434\u043b\u044f Windows NT<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u043c\u0441.<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">13<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u0427\u0430\u0441\u0442\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u0441.<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">14<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0432 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u0434\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">16<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0434\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">18<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0434\u0430\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443 (\u0447\u0442\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u0442.<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">20<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0430\u0440\u0448\u0438\u0435 \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430. \u0412 FAT12 \u0438 FAT16 \u0440\u0430\u0432\u0435\u043d 0. P.S. \u0427\u0438\u0441\u043b\u043e \u043f\u043e\u0441\u043b\u0435 FAT \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 FAT<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u0440\u0435\u043c\u044f<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">22<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0430\u0439\u043b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u0442\u0430<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">24 <\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0434\u0430\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0430\u0439\u043b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043c\u043b.<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">26<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043c\u043b\u0430\u0434\u0448\u0438\u0435 \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 FAT<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"124\" width=\"124\">\n<p align=\"left\">\u0440\u0430\u0437\u043c\u0435\u0440<\/p>\n<\/td>\n<td data-colwidth=\"90\" width=\"90\">\n<p align=\"center\">28<\/p>\n<\/td>\n<td data-colwidth=\"66\" width=\"66\">\n<p align=\"center\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 FAT \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0444\u0430\u0439\u043b\u0430. \u041d\u043e\u043c\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 FAT \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442. \u0415\u0441\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0443\u0441\u0442\u043e\u0439, \u0442\u043e \u043e\u043d \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 FAT \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u043f\u0443\u0441\u0442\u043e\u0439 (\u0442\u043e \u0435\u0441\u0442\u044c 0), \u0435\u0441\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0451\u043d, \u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>0x0FF7<\/code>, \u0435\u0441\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 &#8212; \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0444\u0430\u0439\u043b\u0430, \u0442\u043e \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u044b\u043c <code>0x0FF8<\/code>. \u042d\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 FAT12, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433:<\/p>\n<pre><code class=\"assembly\">.on_start:         mov dl, [DRIVE_NUMBER]     .loadRoot:         xor ax, ax          mov al, [FATS_CNT]         mov cx, [SECTORS_PER_FAT]         mul cx    ; dx:ax = FATS_CNT*SECTORS_PER_FAT = size of fat in sectors         add ax, [RSVD_SECTORS] ; ax =rootDirPos-hideSectors         add ax, word [HEADEN_SECTORS] ; ax = rootDirPos         push ax ; save ax                  mov ax, [ROOT_DIR_ENTRIES]         mov cx, 32          mul cx ; dx:ax = 32*ROOT_DIR_ENTRIES         mov cx, [BYTES_PER_SECTOR] ; 512b         div cx ; ax = (32*ROOT_DIR_ENTRIES):BYTES_PER_SECTOR         pop cx          xchg ax, cx          mov bx, 0x0500 ; es:bx = 0x0000:0x0500 | ax = rootDirPos | cx = rootDirSize         call read_sectors ; read root dir .find_file:<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430. \u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446 FAT. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446 FAT, \u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440, \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u044b \u0438 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u044b. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435, \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 (\u0443 \u043d\u0430\u0441 1 \u0441\u0435\u043a\u0442\u043e\u0440 = 1 \u043a\u043b\u0430\u0441\u0442\u0435\u0440). \u0422\u0430\u043a, \u043a\u0430\u043a \u0432 BPB \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 32 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u043d\u0443\u0436\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x0000:0x0500<\/code>.<\/p>\n<p>\u0417\u043d\u0430\u044f, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0444\u0430\u0439\u043b\u0430 \u044f\u0434\u0440\u0430 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 (\u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b  \u044f\u0434\u0440\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435):<\/p>\n<pre><code class=\"assembly\">.find_file:         mov ax, bx ; mov ax - rootDir max addr in the memory         mov bx, 0x0500 ; bx = rootDir min addr in the memory         .check_name:             mov cx, 10 ; kernel name length             mov si, sys  ; kernel name pos             .lp1:                 push bx ; save last position of bx                 add si, cx ; si - symbol position in sys                 add bx, cx ; bx - symbol position in rootDirAddr (bx)                 mov dl, [si] ; dl - symbol from si                 mov dh, [bx] ; dh - symbol from bx                 cmp dl, dh ; check symbols (strcmp)                 pop bx ; recive last position of bx                 jne .next_fn                 mov si, sys ; kernel name pos                 loop .lp1 ; loop while cx &gt; 0             mov dl, [si] ; check last symbol             mov dh, [bx] ; check last symbol             cmp dh, dl ; check last symbol             jne .next_fn ; if not equal             mov ax, [bx + 26] ; ax = firstFileClusterAddr             push ax ; save cluster addr             .load_fat: ; load fat addr table ;.................... \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u043a\u043e\u0434 (\u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0435\u0433\u043e \u043d\u0438\u0436\u0435) ...............;         .next_fn:                  cmp ax, bx                  jb _err                 add bx, 32                  jmp .check_name ; some code.... sys db \"SYSTEM16BIN\"<\/code><\/pre>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 <code>bx<\/code>  \u0430\u0434\u0440\u0435\u0441 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0432 <code>ax<\/code> \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u0430 (\u043a\u043e\u043d\u0446\u0430) \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430. \u041f\u0440\u043e\u0439\u0434\u0451\u043c\u0441\u044f \u043f\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (\u0444\u0430\u0439\u043b\u0430 \u044f\u0434\u0440\u0430). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e: \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 <code>dh<\/code> \u0441\u0438\u043c\u0432\u043e\u043b \u0438\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>sys<\/code> (\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430) \u0441\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c <code>cx<\/code> , \u0430 \u0432 <code>dl<\/code> \u0441\u0438\u043c\u0432\u043e\u043b \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043f\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e <code>cx<\/code>. \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044c \u043e\u0434\u0438\u043d \u0441\u0438\u043c\u0432\u043e\u043b \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0438 \u0442\u0430\u043a \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0451\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u0430, \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 <code>ax<\/code> \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439:<\/p>\n<pre><code class=\"assembly\">_err:     mov ax, 0x0E45     mov bx, 0x0007     int 10h ; \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u0438\u043c\u0432\u043e\u043b \"E\"     jmp _end <\/code><\/pre>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436, \u0444\u0430\u0439\u043b \u043d\u0430\u0439\u0434\u0435\u043d, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0435\u0433\u043e \u0441 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c:<\/p>\n<pre><code class=\"assembly\">.load_fat: ; load fat addr table    mov ax, [SECTORS_PER_FAT]     mov cl, [FATS_CNT]    mul cl ; ax = FATs size    mov cx, ax     mov ax, [RSVD_SECTORS]     mov bx, 0x0500 ; cx - fats size; ax - fats LBA; bx - load addr    call read_sectors ; load FAT table to 0x0000:0x0500     mov bx, 0x7E00   .next_Clust:       pop si ; si = firstFileClusterAddr or fileNextClusterAddr       add si, 0x0500 ; si = file cluster position in FAT table - 1       inc si ; si = = file cluster position in FAT table       mov ax, [si] ; ax = FAT[fileClusterAddr]       sub si, 0x0500       test si, 1 ; check odd or even       jz .even       and ax, 0x0fff ; if odd: to null higth 4 bits       jmp .load ; load cluster from disc       .even:            and ax, 0xfff0 ; if even: to null low 4 bits           shr ax, 4 ; ax &gt;&gt; 4   .load: ; load file sector       ; .... \u0437\u0434\u0435\u0441\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0434\u0430\u043b\u0435\u0435 ....       cmp ax, 0x0ff7 ; cmp to last cluster       mov si, ax ; si = NextFileClustAddr       jc .next_Clust ; if not endClust<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 FAT: \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446 FAT \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0438\u0445 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x0500<\/code>. \u0417\u0434\u0435\u0441\u044c \u0432 <code>bx<\/code> \u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0435\u0442 &#171;\u043b\u0435\u0436\u0430\u0442\u044c&#187; \u043d\u0430\u0448\u0435 \u044f\u0434\u0440\u043e &#8212; <code>0x7E00<\/code>.  \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u0437 \u0441\u0442\u0435\u043a\u0430 \u0432 <code>si<\/code> \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 (\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0438 \u0435\u0433\u043e \u0432 \u0441\u0442\u0435\u043a \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043a\u043e\u0434\u0435), \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 FAT <span class=\"habrahidden\">(\u0441\u043e\u043c\u043d\u0435\u0432\u0430\u044e\u0441\u044c \u0447\u0442\u043e \u043d\u0430\u0434\u0451\u0436\u043d\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u043d\u043e \u044f \u0431\u043e\u043b\u0442 \u043a\u043b\u0430\u043b)<\/span>. \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043d\u0430 1 (\u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 LBA), \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 <code>ax<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435  \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 (\u043d\u043e\u043c\u0435\u0440 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430) \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b FAT. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0447\u0451\u0442\u043d\u044b\u043c \u0438\u043b\u0438 \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u043c (\u0432 FAT12 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e), \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0439 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u0448\u0438\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0438\u0442\u0430, \u0430 \u0435\u0441\u043b\u0438 \u0447\u0451\u0442\u043d\u044b\u0439 &#8212; \u043c\u043b\u0430\u0434\u0448\u0438\u0435 4 \u0431\u0438\u0442\u0430 \u0438 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c &#171;\u0432\u043f\u0440\u0430\u0432\u043e&#187; \u043d\u0430 4 \u0431\u0438\u0442\u0430. \u0412\u043e\u0442 \u043c\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0430\u0434\u0440\u0435\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b FAT. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 (\u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0434\u0430\u043b\u0435\u0435) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u043e\u043c \u0437\u0430 \u043d\u0438\u043c \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043a\u043b\u0430\u0441\u0442\u0435\u0440: \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 FAT \u0441 <code>0x0ff7<\/code>, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e &#8212; \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0444\u0430\u0439\u043b\u0430, \u0435\u0441\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 &#8212; \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e, \u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b \ud83d\ude42<\/p>\n<p>\u041e\u0442 <code>si<\/code> (\u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432 <code>si<\/code>, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432 <code>ax<\/code>) \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 FAT. \u0418 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u043d\u0430\u0447\u043d\u0451\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"assembly\">  .load: ; load file sector     push ax ; save next cluster addr     sub si, 3 ; cluster addr -&gt; LBA     mov ax, [ROOT_DIR_ENTRIES] ; ax = ROOT_DIR_ENTRIES * 32 \/ 512     mov cx, 32 ; \/     mul cx  ; \/     mov cx, [BYTES_PER_SECTOR] ;      div cx ; ax = count of sectors for ROOT_DIR     push ax ; save ROOT_DIR_SECTORS_CNT     mov ax, [SECTORS_PER_FAT] ; ax = FATS_CNT * SECTORS_PER_FAT     mov cl, [FATS_CNT]     mul cl ; ax = FAT_SIZE     add ax, [RSVD_SECTORS] ; ax = FATS + RSVDS     add ax, si ; ax = LBA + ax     pop cx ; pop ROOT_DIR_SECTORS_CNT     add ax, cx ; ax = ax + ROOT_DIR_SECTORS_CNT | READ CLUSER NUM     mov cx, 1 ; sectors to read     call read_sectors ; read file sector     pop ax ; pop NextFileClustAddr ; ............... \u041e\u0442\u0440\u0435\u0437\u043e\u043a \u043a\u043e\u0434\u0430 \u043d\u0438\u0436\u0435 - \u0443\u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438 ...............     cmp ax, 0x0ff7 ; cmp to last cluster     mov si, ax ; si = NextFileClustAddr     jc .next_Clust ; if not endClust  ; ............... \u041e\u0442\u0440\u0435\u0437\u043e\u043a \u043a\u043e\u0434\u0430 \u0432\u044b\u0448\u0435 - \u0443\u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438 ...............     .start_kernel: ; startup kernel <\/code><\/pre>\n<p>\u041e\u0442\u043d\u0438\u043c\u0430\u0435\u043c \u043e\u0442 <code>si<\/code> 3 &#8212; \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 FAT \u0437\u0430\u043d\u044f\u0442\u044b \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u0438 \u043c\u0435\u0442\u043a\u043e\u0439 \u0442\u043e\u043c\u0430, \u0430 \u0442\u0440\u0438 \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u043c \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u043b\u0438 <code>si<\/code> \u043d\u0430 1 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043a\u043e\u0434\u0435 (\u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b). \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a <code>si<\/code> \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446 FAT \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0443 \u043c\u0435\u043d\u044f 1 \u0441\u0435\u043a\u0442\u043e\u0440 = 1 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443). \u0412\u043e\u0442 \u043c\u044b \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0438 LBA \u0430\u0434\u0440\u0435\u0441 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043d\u0430\u043c\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u0430. \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 (\u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430) \u0430\u0434\u0440\u0435\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 FAT.  \u041f\u043e\u0441\u043b\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438\u0437 \u0441\u0442\u0435\u043a\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043b\u0438 \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438 \u0432\u0441\u0451 &#171;\u043f\u043e \u043d\u043e\u0432\u043e\u0439&#187;, \u0430 \u0435\u0441\u043b\u0438  \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044f\u0434\u0440\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0435\u0440\u0435\u0434 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044f\u0434\u0440\u0443 \u0441\u0442\u043e\u0438\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c (\u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>GDT<\/code> \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 (\u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043d\u0435\u0439 \u043d\u0438\u0436\u0435) \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0431\u0438\u0442 <code>\u043020<\/code> \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 (\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043b\u0438\u043d\u0438\u044e <code>\u043020<\/code>):<\/p>\n<pre><code class=\"assembly\">.start_kernel: ; startup kernel    cli  ; off interraps   xor eax, eax ; eax = 0   mov ax, ds ; ax = ds (0)   shl eax, 4 ; ax &lt;&lt; 4   add eax, START_gdt ; ax = ds &lt;&lt; 4 + START_gdt   mov [GDTR_+2], eax ; save gdt linear addr   mov eax, END_gdt    sub eax, START_gdt ; eax = gdt_end - gdt_start \/|\\ gdt_start   mov [GDTR_], ax ; save gdt_size   lgdt [GDTR_] ; load gdt    mov eax, cr0 ; go to 32bit mode   or al, 1 ; cr0 last byte on   mov cr0, eax ; 32 bit mode - turn on    jmp 08h:0x7E00 .next_fn: ; ... \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438 \u0432\u044b\u0448\u0435 ...  START_gdt:     .null   dq 0     .Kcode  dq 0x00CF9A000000ffff     .Kdata  dq 0x00CF92000000ffff END_gdt:  GDTR_:     dw 0     dd 0 <\/code><\/pre>\n<p>\u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>eax<\/code>, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 <code>ax<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (<code>ds<\/code>), \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c &#171;\u0432\u043b\u0435\u0432\u043e&#187; <code>eax<\/code> \u043d\u0430 4 \u0431\u0438\u0442\u0430. \u041a \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u043c\u0443\u0441\u044f \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <code>GDT<\/code> \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042d\u0442\u0438 \u0432\u0441\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 <code>GDT<\/code>  \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u0432 32-\u0431\u0438\u0442\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>GDTR_<\/code> (\u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>gdt<\/code> \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>lgdt<\/code>). \u0412 \u043f\u0435\u0440\u0432\u043e\u043c, 16-\u0431\u0438\u0442\u043d\u043e\u043c \u043f\u043e\u043b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>GDTR_<\/code> \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0432 \u0431\u0430\u0439\u0442\u0430\u0445) <code>gdt<\/code> &#8212; \u0435\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435: \u043e\u0442\u043d\u0438\u043c\u0430\u0435\u043c \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043e\u043d\u0446\u0430<code>gdt<\/code>  \u0430\u0434\u0440\u0435\u0441 \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u043f\u043e\u043b\u0435. \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>eax<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <a href=\"https:\/\/wiki.osdev.org\/CPU_Registers_x86#CR0\" rel=\"noopener noreferrer nofollow\"><code>cr0<\/code><\/a> , \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u043b\u0430\u0434\u0448\u0438\u0439 \u0431\u0438\u0442 \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 (\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043b\u0438\u043d\u0438\u044e <code>a20<\/code>) \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 <code>cr0<\/code> \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412\u0441\u0451, \u043c\u044b 32 \u0431\u0438\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0443 \u0438 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0443, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0434\u0430\u043b\u044c\u043d\u0438\u0439 \u043f\u0440\u044b\u0436\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0434\u0451\u0442 \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 <code>gdt<\/code> , \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u0439 = \u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. <\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 gdt<\/summary>\n<div class=\"spoiler__content\">\n<p>\u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0432\u0435\u0449\u044c, \u043d\u043e \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c (\u043c\u043d\u0435 \u0442\u043e\u0436\u0435) \u043f\u043e\u0440\u043e\u0439 \u0431\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0443\u0434\u043d\u043e \u0432 \u043d\u0435\u0439 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f.  \u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. <\/p>\n<p><code>GDT<\/code> \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f, \u043a\u0430\u043a \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u043e\u0432. \u042d\u0442\u043e \u0434\u0432\u043e\u0438\u0447\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u0430\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0441 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 <code>IA-32<\/code> \u0438 <code>x86-64<\/code>. \u0412 \u043d\u0435\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 (\u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u0441\u0435\u0431\u0435 \u044d\u0442\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u043a \u043d\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 <code>gdt<\/code> \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0441\u0430\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0435\u0451 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445. <\/p>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 <code>gdt<\/code> \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 8-\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043f\u0435\u0440\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e (\u0438\u043d\u043e\u0433\u0434\u0430 \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442, \u043a\u0430\u043a \u043d\u0435\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0441\u0430\u043c\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043d\u043e \u044f \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0439\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0430). <\/p>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439: \u0431\u0430\u0437\u0430 &#8212; \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438; \u043b\u0438\u043c\u0438\u0442 &#8212; 20-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 (\u0431\u0430\u0437\u0430+\u043b\u0438\u043c\u0438\u0442) \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 (\u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c &#171;\u043f\u043e\u0442\u043e\u043b\u043e\u043a&#187; \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430);\u0431\u0430\u0439\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 4 \u0431\u0438\u0442\u0430 \u0444\u043b\u0430\u0433\u043e\u0432. \u0411\u0430\u0439\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">\u0431\u0438\u0442<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">0 (A)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0431\u0438\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f CPU. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u0433\u043e \u0432 0 \u0438  \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">1 (RW)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u043b\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430: 0 &#8212; \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e, 1 &#8212; \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e.<br \/>\u0435\u0441\u043b\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u044b\u0445: 0 &#8212; \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430, 1 &#8212; \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">2 (DC)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u043b\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u044b\u0445: 0 &#8212; \u0441\u0435\u0433\u043c\u0435\u043d\u0442 &#171;\u0440\u0430\u0441\u0442\u0451\u0442&#187; \u0432\u0432\u0435\u0440\u0445, 1 &#8212; \u0441\u0435\u0433\u043c\u0435\u043d\u0442 &#171;\u0440\u0430\u0441\u0442\u0451\u0442&#187; \u0432\u043d\u0438\u0437 \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0441\u0442\u0435\u043a\u0443 (\u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0430\u0437\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043b\u0438\u043c\u0438\u0442\u0430). <br \/>\u0435\u0441\u043b\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430: 0 &#8212; \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d (\u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d) \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 <code>DPL<\/code>, \u043a\u0430\u043a \u0443 \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430, 1 &#8212; \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u0438\u043b\u0438 \u043d\u0438\u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 (DPL).<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">3 (E)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u043b\u0438 0 &#8212; \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u044b\u0445, \u0435\u0441\u043b\u0438 1 &#8212; \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">4 (S)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u043b\u0438 0 &#8212; \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 (<a href=\"https:\/\/wiki.osdev.org\/Task_State_Segment\" rel=\"noopener noreferrer nofollow\">\u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438<\/a>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440), 1 &#8212; \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">5-6 (DPL)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430, \u0433\u0434\u0435 0 &#8212; \u0432\u044b\u0441\u0448\u0438\u0435 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 (\u044f\u0434\u0440\u043e\/\u0441\u0438\u0441\u0442\u0435\u043c\u0430), 3 &#8212; \u043d\u0438\u0437\u0448\u0438\u0435 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\">7 (P)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e (\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0433\u043e) \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 &#8212; 1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0411\u0438\u0442\u044b \u0444\u043b\u0430\u0433\u043e\u0432:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"127\" width=\"127\">\n<p align=\"center\">\u0431\u0438\u0442<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"127\" width=\"127\">\n<p align=\"center\">1 (RESERVED)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0432 0 \u0438 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"127\" width=\"127\">\n<p align=\"center\">2 (L)<\/p>\n<\/td>\n<td>\n<p align=\"left\">1 &#8212; \u0441\u0435\u0433\u043c\u0435\u043d\u0442 64-\u0431\u0438\u0442\u043d\u044b\u0439; 0 &#8212; \u0434\u0440\u0443\u0433\u0430\u044f \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"127\" width=\"127\">\n<p align=\"center\">3 (DB)<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 &#8212; 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442; 1 &#8212; 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"127\" width=\"127\">\n<p align=\"center\">4 (G)<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 &#8212; \u0447\u0438\u0441\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432 \u043b\u0438\u043c\u0438\u0442\u0435, \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0431\u0430\u0439\u0442\u0430\u0445; 1 &#8212; \u0447\u0438\u0441\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432 \u043b\u0438\u043c\u0438\u0442\u0435, \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0431\u043b\u043e\u043a\u0430\u0445 \u043f\u043e 4 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430. <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"https:\/\/wiki.osdev.org\/Global_Descriptor_Table\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0435 32-\u0431\u0438\u0442\u043d\u043e\u0435 \u044f\u0434\u0440\u043e:<\/p>\n<pre><code class=\"assembly\">use32  org 0x7E00  _main:     mov ax, 0x10     mov fs, ax     mov ds, ax      mov es, ax      mov gs, ax      push ax     pop ss     mov sp, 0x7Bff  .white_screen:     mov eax, 40      mov ecx, 25     mul ecx      mov ecx, 2     mul ecx     mov bx, 0x7700     mov ecx, eax      .cycle:         mov eax, [VideoTextAddr]         add eax, ecx          mov [eax], bx         cmp ecx, 0          je .end         sub ecx, 2         jmp .cycle     .end:      push Hi_MSG     mov eax, 13     push eax      mov eax, 11     push eax     call print_str      jmp $ ; args: strAddr (4bytes) | xPos(4bytes) | yPos(4bytes) print_str:      push ebp     mov ebp, esp      push ecx     push edx      ; calc the CONSOLE_MAX_SIZE     sub esp, 4 ; ebp-4 = CONSOLE_SIZE = var1     mov eax, 40 ; columns (X)     mov ecx, 25 ; rows (Y)     mul ecx ; 40 * 25     mov ecx, 2 ; bytes per symbol in console     mul ecx ; eax = CONSOLE_SIZE     add eax, [VideoTextAddr] ;      mov [ebp-4], eax ; var1 = CONSOLE_SIZE      ; calc the cursor position in 40x25 console     mov ecx, [ebp+8]     mov eax, 40     mul ecx      add eax, dword [ebp+12]     mov ecx, 2      mul ecx       add eax, [VideoTextAddr] ; done      mov ecx, [ebp+16] ; strAddr     ; output string while cycle not meet 0-terminator     .while:         mov edx, [ebp-4] ; edx = MAX_CONSOLE_SIZE         cmp eax, edx  ; eax = CURRENT_POSITION | edx = MAX_CONSOLE_SIZE         jnb .err1_print_exit ; if eax &gt;= edx         push eax ; save current position         mov al, byte [ecx] ; al = string symbol         cmp al, 0 ;          je .print_exit ; if al == 0         mov ah, 0xf0 ; ah = symbol color ( ax = color+symbol)         inc ecx ; *strAddr++;          pop edx ; edx = current position          mov word [edx], ax         mov eax, edx          add eax, 2         jmp .while          .err1_print_exit:         mov eax, 0xffffffff     .print_exit:         xor eax, eax         add esp, 4         pop edx         pop ecx         mov esp, ebp         pop ebp     ret  VideoTextAddr dd 0x000B8000 Hi_MSG db \"HELLO WORLD!!!\",0<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e: \u0441\u043d\u0430\u0447\u0430\u043b\u0430  \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 <code>gdt<\/code>. \u0414\u0430\u043b\u0435\u0435, \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u0444\u043e\u043d\u0430 \u0435\u0433\u043e \u043d\u0430 \u0431\u0435\u043b\u044b\u0439 (\u044d\u043a\u0440\u0430\u043d \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u043b\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c). \u041d\u0430\u0447\u0430\u043b\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043c\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <a href=\"https:\/\/mendelson.org\/wpdos\/videomodes.txt\" rel=\"noopener noreferrer nofollow\"><code>0xB80000<\/code><\/a>. \u041d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e 2 \u0431\u0430\u0439\u0442\u0430 &#8212; 1 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 \u0441\u0430\u043c \u0441\u0438\u043c\u0432\u043e\u043b. \u0414\u0430\u043b\u0435\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 11 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0438 13 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>Hi_MSG<\/code>.<\/p>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439: <code>FASM.exe system16.asm system16.bin<\/code> \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 \u0434\u0438\u0441\u043a\u043e\u0432 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0444\u0430\u0439\u043b \u043d\u0430 \u043e\u0431\u0440\u0430\u0437. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0438 \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043a\u0440\u043e\u043f\u043e\u0442\u043b\u0438\u0432\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430! <\/p>\n<hr\/>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0443\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0432\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0447\u0430\u044f \u0438 \u043a\u043e\u043d\u0444\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438! <br \/>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c) \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/Progrocher\/self-OS\/tree\/main\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0445\u043e\u0434\u0443 \u0441\u0442\u0430\u0442\u044c\u0438. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u0441\u043e\u0432\u0435\u0442\u0430\u043c \u0438\u043b\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0440\u0438\u0442\u0438\u043a\u0435. \u0414\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><\/p>\n<div class=\"tm-article-poll-container\"><!--[--><\/p>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/921490\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0423 \u0432\u0430\u0441 \u043a\u043e\u0433\u0434\u0430 \u043b\u0438\u0431\u043e \u0431\u044b\u043b \u043e\u043f\u044b\u0442 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0439 \u041e\u0421?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">18.97%<\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">22<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 18.97%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">56.03%<\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">65<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 56.03%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">25%<\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0443\u043c\u0430\u044e \u043d\u0430\u0434 \u044d\u0442\u0438\u043c<\/span><span class=\"tm-article-poll__answer-votes\">29<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 25%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 116 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 13 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<p><!--]--><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/921490\/\"> https:\/\/habr.com\/ru\/articles\/921490\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0414\u0430\u0440\u043e\u0432\u0430! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u0441 \u0432\u0430\u043c\u0438 \u043e\u043f\u044b\u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u041e\u0421 \u0438, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0448\u043b\u043e. \u0417\u0430\u043f\u0430\u0441\u0430\u0439\u0442\u0435\u0441\u044c \u0447\u0430\u0439\u043a\u043e\u043c \u0441 \u043f\u0435\u0447\u0435\u043d\u044c\u043a\u0430\u043c\u0438 \u0438 \u043f\u0440\u0438\u0441\u0430\u0436\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u043e\u0443\u0434\u043e\u0431\u043d\u0435\u0435! \u041f\u043e\u0440\u0430 \u043e\u043a\u0443\u043d\u0443\u0442\u044c\u0441\u044f \u0432 16\u0442\u0438 \u0431\u0438\u0442\u043d\u044b\u0439 \u043c\u0438\u0440&#8230;<\/p>\n<hr\/>\n<h4>\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c?<\/h4>\n<p>\u042f \u043d\u0430\u0447\u0430\u043b \u0441 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u042f\u041f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430. \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f hex \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 (\u0434\u0430, \u044f \u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b) \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0434\u0438\u0441\u043a\u043e\u0432. \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u0447\u0442\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u043d\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b:<\/p>\n<ul>\n<li>\n<p>HxD hex-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440<\/p>\n<\/li>\n<li>\n<p>\u042f\u041f  &#8212; fasm<\/p>\n<\/li>\n<li>\n<p>ultraISO \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0434\u0438\u0441\u043a\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>VMBox &#8212; \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0445\u043e\u0442\u044f \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445 \u0438 \u0433\u0430\u0439\u0434\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 qemu (\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441 \u043d\u0438\u043c \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f)<\/p>\n<\/li>\n<\/ul>\n<h3>\u041d\u0430_\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/h3>\n<p>\u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430? \u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c! <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a: <\/p>\n<details class=\"spoiler\">\n<summary>\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p><code>Os\/<br \/>    bin\/<br \/>    obj\/<br \/>    src\/<br \/>         boot\/<br \/>    makefile.txt<\/code><\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 <code>makefile:<\/code><\/p>\n<pre><code class=\"powershell\">#################################################################################### #Create Date: 03.01.2024 18:50 #Goal: create a simple bootloader and simple core #Author: As_Almas #Description: wait for write... # #Status:  ####################################################################################  TARGET = As_OS.img  SRC_BOOT_PREF = .\/src\/boot\/  BOOT_OBJ_F  = .\/obj\/ BIN_PREFIX  = .\/bin\/  ISO_app = UltraISO.exe HEX_EDIT = HxD.exe  VBOX = VBoxManage.exe startvm  OS_NAME = \"AS_OS\"  DEBUG_FLAGS =  -E VBOX_GUI_DBG_ENABLED=true  ASM = FASM ASM_FLAGS =   boot:  $(ASM) $(ASM_FLAGS) $(SRC_BOOT_PREF)bootloader.asm $(BOOT_OBJ_F)bootloader.bin  hex: $(BOOT_OBJ_F)bootloader.bin $(HEX_EDIT) $(BIN_PREFIX)$(TARGET) $(BOOT_OBJ_F)bootloader.bin  fs: $(ISO_app) $(BIN_PREFIX)$(TARGET)  clean: del \"$(BOOT_OBJ_F)\\*.bin\"  debug: $(BIN_PREFIX)$(TARGET) $(VBOX) $(OS_NAME) $(DEBUG_FLAGS)<\/code><\/pre>\n<p>\u041d\u0443, \u044f \u0434\u0443\u043c\u0430\u044e \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e: <br \/> <code>boot<\/code> &#8212; \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0444\u0430\u0439\u043b\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u044f\u0434\u0440\u0430 (<code>bootloader<\/code> &#8212; \u043e \u043d\u0451\u043c \u043f\u043e\u0437\u0436\u0435). <br \/> <code>hex<\/code> &#8212; \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f hex-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0438 \u0441 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u044f\u044e \u0441\u0435\u043a\u0442\u043e\u0440 \u0441 bootloader&#8217;\u043e\u043c \u0432 \u043e\u0431\u0440\u0430\u0437\u0435 \u0434\u0438\u0441\u043a\u0430 \u043d\u0430 \u043c\u043e\u0439 bootloader (\u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435, \u0432\u044b \u0441\u043a\u043e\u0440\u043e \u043f\u043e\u0439\u043c\u0451\u0442\u0435 \u0447\u0442\u043e \u0437\u0430 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 bootloader&#8217;\u044b)<br \/> <code>fs<\/code> &#8212; \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430 \u0432 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430.<br \/> <code>clean<\/code> &#8212; \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 <code>obj<\/code> \u043e\u0442 \u043c\u0443\u0441\u043e\u0440\u0430 (P.S. \u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f)<br \/> <code>debug<\/code>  &#8212; \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 \u043d\u0430\u0448\u0435\u0439 \u041e\u0421 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 (<code>debug-mode<\/code>)<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430,  \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0435\u0442\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1.44\u043c\u0431. \u042f \u0441\u043e\u0437\u0434\u0430\u043b \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430 \u0442\u0430\u043a: <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 UltrsISO:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0433\u043b\u0430\u0432\u043d\u0430\u044f UltraISO<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0444\u0430\u0439\u043b -&gt; \u043d\u043e\u0432\u044b\u0439: <\/p>\n<\/div>\n<figure class=\"full-width\">\n<div><figcaption>\u041c\u0435\u043d\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 UltraISO<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0435\u0442\u044b. \u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043c\u0435\u043d\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c!<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u043a\u0443? <\/p>\n<figure class=\"full-width\">\n<div><figcaption>VMbox &#8212; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044e \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u0433\u0434\u0435 <code>\u0438\u043c\u044f<\/code> \u043f\u0438\u0448\u0435\u043c \u0447\u0442\u043e \u043f\u043e\u0436\u0435\u043b\u0430\u0435\u043c, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0441\u0442\u044b\u043c. \u0422\u0438\u043f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <code>other<\/code>, \u0430 <code>\u0432\u0435\u0440\u0441\u0438\u044e <\/code>DOS . \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u0430\u043b\u0435\u0435. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0436\u0435\u043b\u0430\u0435\u0442\u0435. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u0430\u043b\u0435\u0435, \u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u0430\u043b\u0435\u0435 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e. <br \/>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e VMbox \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c. \u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 <code>\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438<\/code> \u0438 \u0433\u0434\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Floppy \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442\u0435 \u043f\u043b\u044e\u0441. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\">\n<div><figcaption>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>\u043c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u0438\u0431\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 (\u0434\u0438\u0441\u043a\u0435\u0442\u044b)<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><\/figure>\n<\/div>\n<\/details>\n<h3>\u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u0434<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043b\u044e\u0431\u043e\u0439 \u041e\u0421 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/BIOS\" rel=\"noopener noreferrer nofollow\">bios<\/a>. \u041e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430. \u0410 \u0437\u0430\u0442\u0435\u043c \u0438\u0449\u0435\u0442 \u0441\u0440\u0435\u0434\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0436\u0451\u0441\u0442\u043a\u0438\u0435\/\u0433\u0438\u0431\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0438 \u0438 \u0442.\u043f.), \u0442\u043e\u0442, \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%B5%D0%BA%D1%82%D0%BE%D1%80_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0441\u0435\u043a\u0442\u043e\u0440\u0430<\/a> \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0432\u0443\u0445\u0431\u0430\u0439\u0442\u043e\u0432\u0430\u044f <code>0x55<\/code>, <code>0xAA<\/code>, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f, \u0447\u0442\u043e \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u044f\u0434\u0440\u0430. \u041e\u0431\u044b\u0447\u043d\u043e \u0441\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 512 \u0431\u0430\u0439\u0442, \u043d\u043e \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043e\u043e\u043e\u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0435\u043a\u0442\u043e\u0440.<\/p>\n<h4>Bootloader \u0438\u043b\u0438 \u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u044f\u0434\u0440\u0430<\/h4>\n<p>\u041a\u043e\u0440\u043e\u0442\u043a\u043e, \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u041f\u041a \u0438 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0438\u0441\u043a\u0435\u0442\u044b) \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u0434\u043e\u043c \u043f\u043e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0435 0x55, 0xAA \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430. BootLoader \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0441\u043b\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0438\u0437 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430<\/a> (<code>x16<\/code>) \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/118881\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c<\/a> (<code>x32<\/code>) \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0443.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430: <\/p>\n<pre><code class=\"assembly\">use16 ; \u043a\u043e\u0434 \u0434\u043b\u044f 16 \u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 org 0x7C00 ; \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u0441\u0430 0x7C00  start: ; \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u0434\u0430  ; ... some code  finish:      times 0x200-finish+start-2 db 0 ; \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u043e 510 \u0431\u0430\u0439\u0442\u0430 \u0432\u0441\u0451 \u043d\u0443\u043b\u044f\u043c\u0438     db 0x55, 0xAA ; \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430<\/code><\/pre>\n<p>\u0422\u0430\u043a, \u043a\u0430\u043a \u043a\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x7C00<\/code>, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u043e\u0434 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043d\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>str<\/code> \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x00CA<\/code>, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x7C00<\/code>, \u0442\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f <code>0x7CCA<\/code>. <br \/>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0443\u0441\u0442\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 510 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u043d\u0443\u043b\u044f\u043c\u0438, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 <code>0x55, 0xAA<\/code> \u0431\u044b\u043b\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0432\u0443\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u0430. <\/p>\n<pre><code class=\"assembly\">start: jmp  boot_entry nop ; \u0437\u0430\u043f\u0438\u0441\u044c BPB boot_entry: ;..<\/code><\/pre>\n<p>\u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (\u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434 <code>jmp <\/code>\u0438 <code>nop<\/code> \u0432 \u0441\u0443\u043c\u043c\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445 3 \u0431\u0430\u0439\u0442\u0430), \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0431\u0438\u043e\u0441 (<code>BPB<\/code>), \u043e \u043d\u0451\u043c  \u043f\u043e\u0439\u0434\u0451\u0442 \u0440\u0435\u0447\u044c \u0434\u0430\u043b\u0435\u0435. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b \u0447\u0443\u0434\u0438\u0442\u044c \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u043a\u0430\u043a \u043a\u043e\u0434 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 BPB, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c \u043a\u043e\u0434\u043e\u043c. <\/p>\n<details class=\"spoiler\">\n<summary>BPB<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"assembly\">; !!!! BPB BLOCK START !!!! OEM_NAME                db \"ASOS2024\" ;8 \u0431\u0430\u0439\u0442 - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 OEM BYTES_PER_SECTOR        dw 0x200 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0435\u043a\u0442\u043e\u0440 (512 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0441\u0435\u043a\u0442\u043e\u0440) SECTORS_PER_CLUSTER     db 1 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 (\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u043f\u043e\u0437\u0436\u0435) RSVD_SECTORS            dw 1 ; \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u044b (1 - \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430) FATS_CNT                db 2 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e FAT \u0442\u0430\u0431\u043b\u0438\u0446 (2 - 1 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b, 2 \u043a\u043e\u043f\u0438\u044f) ROOT_DIR_ENTRIES        dw 224 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 LOW_SECTORS_COUNT       dw 2880 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u043d\u0438\u0436\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e) MEDIA_TYPE              db 0xF0 ; \u0442\u0438\u043f \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f (0xF0 - \u0434\u0438\u0441\u043a\u0435\u0442\u0430) SECTORS_PER_FAT         dw 9 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u0443 FAT \u0442\u0430\u0431\u043b\u0438\u0446\u0443 SECTORS_PER_TRACK       dw 18 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u043e\u0440\u043e\u0436\u043a\u0443 (\u043e \u043d\u0435\u0439 \u043f\u043e\u0437\u0436\u0435) HEADS_COUNT             db 2 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0433\u043e\u043b\u043e\u0432\u043e\u043a  HEADEN_SECTORS          dd 0 ; \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u044b (\u0442\u0430\u043a\u0438\u0445 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442) HIGHT_SECTOR_COUNT      dd 0 ; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e) - \u0432 fat12 \u0438 fat16 - \u043f\u0443\u0441\u0442\u043e\u0435 ; !!!! BPB BLOCK END !!!!  ; !!!! EXTENDED BPB START !!!! DRIVE_NUMBER            db 0 ; \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 dl \u0431\u0438\u043e\u0441\u043e\u043c) WIN_RTFLAGS             db 0 ; \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e  BOOT_SIG                db 0x29 ; \u0441\u0430\u043c \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f, \u043d\u043e \u043f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 VOLUME_ID               dd 0 ; \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430  VOLUME_LABEL            db \"AS OS start\" ; \u043c\u0435\u0442\u043a\u0430 \u0442\u043e\u043c\u0430  SYS_LABEL               db \"FAT12   \"  ; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 ; !!!! EXTENDED BPB END !!!!<\/code><\/pre>\n<p>\u0420\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u0434\u0443 \u0434\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432<\/p>\n<\/div>\n<\/details>\n<pre><code class=\"assembly\">boot_entry:     cli ; off interraps         xor ax, ax ; ax = 0         mov ds, ax ; ds = ax         mov es, ax ; es = ax         mov ss, ax ; ss = ax         mov sp, 0x7Bff ; sp = 0x7Bff      sti ; on interraps<\/code><\/pre>\n<p>\u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u0411\u044b\u0441\u0442\u0440\u043e \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c <code>\u0430\u0445<\/code> \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b. \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0435\u043a\u0430 <code>sp <\/code>\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <code>0x7Bff<\/code> &#8212; \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0430\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0410 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0435\u043a\u0430 <code>ss<\/code> \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c (\u0441\u0442\u0435\u043a \u0440\u0430\u0441\u0442\u0451\u0442 \u0432\u043d\u0438\u0437). \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. <\/p>\n<pre><code class=\"assembly\">    mov [DRIVE_NUMBER], dl ; dl have the hard-drive index from bios     jmp 0x0000:main ; jmp main | cs = 0, ip = main main:<\/code><\/pre>\n<p>\u041f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0434\u0438\u0441\u043a\u0435\u0442\u044b) \u0432 <code>DRIVE_NUMBER<\/code>  &#8212; \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u0438\u043e\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043d\u043e\u043c\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 <code>dl<\/code>. \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043d\u0430\u0448\u0438\u043c \u043a\u043e\u0434\u043e\u043c. \u0414\u043b\u0438\u043d\u043d\u044b\u0439 \u043f\u0440\u044b\u0436\u043e\u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b <code>cs<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c), \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448 \u043a\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 <code>ip<\/code>  \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. <\/p>\n<pre><code class=\"assembly\">main:   .clear_screan:         xor ax, ax ; ax = 0          int 10h ; video interrap   .on_start:<\/code><\/pre>\n<p>\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>40x25 <\/code>\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. <code>ah = 0<\/code> &#8212; \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/INT_10H\" rel=\"noopener noreferrer nofollow\"><code>int 10h<\/code><\/a>, \u0430 <code>al = 0<\/code> &#8212; \u043a\u043e\u0434 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0433\u043e <a href=\"https:\/\/mendelson.org\/wpdos\/videomodes.txt\" rel=\"noopener noreferrer nofollow\">\u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0436\u0438\u043c\u0430<\/a>.<\/p>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u043d\u0430\u0434\u043e \u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c. \u0418\u043d\u0430\u0447\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a, \u0430 \u0435\u0440\u0443\u043d\u0434\u0430 \u043a\u0430\u043a\u0430\u044f-\u0442\u0430. \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/LBA\" rel=\"noopener noreferrer nofollow\">LBA <\/a>\u0437\u0430\u043f\u0438\u0441\u044c, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u043a\u0430\u043a \u0431\u0438\u043e\u0441 \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/CHS\" rel=\"noopener noreferrer nofollow\">CHS<\/a>. LBA &#8212; \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 0 \u0438 \u0438\u0434\u0451\u0442 \u0434\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435. CHS &#8212; \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0430\u044f \u0432 \u0441\u0435\u0431\u044f, \u043d\u043e\u043c\u0435\u0440 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043d\u043e\u043c\u0435\u0440 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430 (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440) \u0438 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430. \u041d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 CHS \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 1. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c LBA, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f LBA \u0432 CHS. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0435\u0441\u0442\u044c! <br \/>\u041a\u043e\u0434 \u0432 \u0441\u0442\u0443\u0434\u0438\u044e:<\/p>\n<pre><code class=\"assembly\">; ax = lba ; es:bx = read data start addr (in) read_sector:     .LBA_to_CHS: ; linear sector address to  address of cylinder, head and sector     ; s = (LBA % SECTORS_PER_TRACK) + 1     ; h = ((LBA - (s-1)) \/ SECTORS_PER_TRACK) % HEADS_COUNT     ; c = ( (LBA - (s-1) - h*S) \/ (HEADS_COUNT*SECTORS_PER_TRACK) )         push ax ; save ax         push ax ; save ax         xor dx, dx  ; find 's'         mov cx, [SECTORS_PER_TRACK]         div cx          pop ax ; ret ax value         inc dx         mov [sector], dx ; sector = s         dec dx ; dx = s - 1                  sub ax, dx ; ax = LBA - (s-1)         push ax ; save ax          xor dx, dx         mov cx, [SECTORS_PER_TRACK]         div cx ; ax = ((LBA - (s-1)) \/ SECTORS_PER_TRACK)          mov cl, [HEADS_COUNT]      <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-473441","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/473441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=473441"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/473441\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=473441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=473441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=473441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}