При очередной установке — переустановке Visual Studio под C++, тот чего-то себя вести плохо начал : проекты не создавал, старые не открывал. В общем что то криво у него там встало и пошло, причём до этого его устанавливал — работал нормально. Вот я и «психанул», послал все эти пропиетарные Тяжёлые среды разработки, и вспомнил, что давно хотел ассемблером заняться. Да и интересно всегда было, как там всё внутри работает у больших компьютеров.
Вот и полез я значит в эти дебри, ну и вы заодно вместе со мной
Рассказ будет для самых маленьких. Писать будем на FASM. Здесь есть небольшая документация по компилятору. Отсюда брал исходный код для тестирования. Ну и самое главное, использовал для своей задачи архаичный флоппи диск, купленный на AliExress, так как есть в наличии старый ноутбук с флоппиком. И к стати да, это будет тестовая программка, которая будет лежать в загрузочном секторе флоппи диска, и её будет запускать BIOS после старта.
Исходник
use16
org 0x7c00
start:
mov ax,cs
mov ds,ax
mov si,message
cld ; направление для строковых данных
mov ah,0x0e
mov bh,0x00
puts_loop:
lodsb ; загружаем очерёдный символ в al
test al,al ; нулевой символ означает конец строки
jz puts_loop_exit
int 0x10
jmp puts_loop
puts_loop_exit:
jmp $
message:
db ‘Hello World!’,0
finish:
times 0x1fe-finish+start db 0
db 0x55,0xaa ; сигнатура загрузочного диска
Запускаем текстовый редактор компилятора (FASMW.exe) и закидываем этот небольшой демонстрационный код в него. Далее его сохраним под любым именем (у меня просто test.asm) и затем компилируем исходник. На выходе получится BIN файл. Это было не самое трудное в нашей задаче. Самое интересное — это чем всё это записать на нулевую дорожку первого сектора дискеты. Как всегда было перерыто дофига форумов и статей, и в результате поиска наконец то нашёл нужную программку DM Disk Editor. Ну и дальше в картинках:
Внимание!
При выборе диска, будьте внимательны, так как записав нашу программку не туда куда нужно, можно потерять свои разделы на жёстких дисках
Ну и как бы всё. В BIOSе выбираем загрузку с флоппи диска, и ждём результата — белые буковки на чёрном экране:
Эхх когда то я тоже увлекался программированием , Микроша , Агат , БК , но потом появились PC шки и показалось, что все уже написано за нас и на много лет вперед , но я был не прав , что все это бросил и забыл.
БКашку и я начинал программировать. Застал её уже под конец. сначала Бейсик. Потом машинные коды заносил в ОЗУшку через Монитор (это программа такая ), предварительно конечно сначала на бумажке писал на ассемблере. Так я написал и запустил Редактор дампа памяти. Ну а потом я пошёл в армию
Тренируешься в программировании , осваиваешь ассемблер 🙂
Но интересно во , что ты думаешь это развить ?
Пока не знаю Время покажет
Эхх когда то я тоже увлекался программированием , Микроша , Агат , БК , но потом появились PC шки и показалось, что все уже написано за нас и на много лет вперед , но я был не прав , что все это бросил и забыл.
БКашку и я начинал программировать. Застал её уже под конец. сначала Бейсик. Потом машинные коды заносил в ОЗУшку через Монитор (это программа такая ), предварительно конечно сначала на бумажке писал на ассемблере. Так я написал и запустил Редактор дампа памяти. Ну а потом я пошёл в армию