{"id":30,"date":"2013-10-15T13:07:38","date_gmt":"2013-10-15T10:07:38","guid":{"rendered":"http:\/\/www.scozturk.com\/?p=30"},"modified":"2025-08-27T12:28:18","modified_gmt":"2025-08-27T12:28:18","slug":"asm-ile-kendi-isletim-sistemimizi-yazalim-1","status":"publish","type":"post","link":"http:\/\/18.193.70.38\/?p=30&lang=tr","title":{"rendered":"ASM \u0130le Kendi \u0130\u015fletim Sistemimizi Yazal\u0131m (1)"},"content":{"rendered":"<p><strong>1- Giri\u015f:<\/strong><\/p>\n<p>Bu makale \u201cASM ile Kendi \u0130\u015fletim Sistemimizi Yazal\u0131m\u201d makalelerimin ilkidir. Bu makalelerde ASM kullanarak basit bir i\u015fletim sisteminin nas\u0131l yaz\u0131labilece\u011fini g\u00f6rece\u011fiz. \u0130\u015fletim sistemimiz disketten \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r, seri ileti\u015fim, y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckte resim g\u00f6sterimi, metin d\u00fczenleyicisi ve benzer \u00f6zelliklere sahip olacakt\u0131r.<\/p>\n<p>Makalelerde x86 ASM dilini tan\u0131tmayaca\u011f\u0131z. Yani MOV, ADD, JMP gibi komutlar\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 bilmeniz gerekmektedir.<\/p>\n<p>\u0130leride bu makale dizisindeki bilgiler biraz daha geli\u015ftirilip \u201ci\u015fe yarar\u201d bir proje ortaya \u00e7\u0131kabilir, mesela oyun konsolu projeme uyarlanabilir.<\/p>\n<p><strong>2- Tan\u0131m:<\/strong><\/p>\n<p>\u0130\u015fletim sistemi yazarken FASM\u2019\u0131 kullanaca\u011f\u0131z. Bunun d\u0131\u015f\u0131nda da herhangi bir yaz\u0131l\u0131m kullanmam\u0131za \u015fu a\u015famada gerek yok. \u0130\u015fletim sistemini biraz tan\u0131mlayacak olursak:<\/p>\n<ol>\n<li>\u00d6n y\u00fckleyicisi olacak,<\/li>\n<li>Genel bir men\u00fcs\u00fc olacak,<\/li>\n<li>Seri \u0130leti\u015fim yaz\u0131l\u0131m\u0131 olacak,<\/li>\n<li>Hesap makinas\u0131 olacak,<\/li>\n<li>Metin d\u00fczenleyici olacak ve<\/li>\n<li>Y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckte resim g\u00f6sterme yaz\u0131l\u0131m\u0131 bulunacak.<\/li>\n<\/ol>\n<p>\u0130\u015fletim sistemi tamamen disketten \u00e7al\u0131\u015facak. Bu y\u00fczden elinizdeki bilgisayarda bir disket okuyucu\/yaz\u0131c\u0131 bulunmal\u0131d\u0131r. Ayr\u0131ca tabii ki birka\u00e7 diskete ihtiyac\u0131n\u0131z var. \u0130\u015fletim sistemimizi yazd\u0131\u011f\u0131m\u0131zda diskete y\u00fcklemek i\u00e7in bir de bir y\u00fckleyiciye ihtiyac\u0131m\u0131z var ama bunu da biz kendimiz yazaca\u011f\u0131z.<\/p>\n<p>Disket \u00fczerine FAT32 gibi bir sistem kurmayaca\u011f\u0131z \u00e7\u00fcnk\u00fc b\u00f6yle bir dosyalama sistemi kullanmayaca\u011f\u0131z. Bizim dosyalama sistemimiz tamamen sekt\u00f6r tabanl\u0131 olacak. Bu konuya ileride zaman\u0131 geldi\u011finde yeniden de\u011finece\u011fim.<\/p>\n<p>\u015eimdi \u00f6ncelikle i\u015fletim sistemimizin yukar\u0131da belirtti\u011fim 6 par\u00e7as\u0131n\u0131 tan\u0131mlayal\u0131m.<\/p>\n<p><strong>3- \u00d6n Y\u00fckleyici<\/strong><\/p>\n<p>\u0130\u015fletim sistemimizin disketten \u00e7al\u0131\u015faca\u011f\u0131n\u0131 s\u00f6ylemi\u015ftik. Bunun i\u00e7in bir \u00f6ny\u00fckleyiciye (bootloader) ihtiyac\u0131m\u0131z var. \u00d6ny\u00fckleyiciler disketlerin ilk sekt\u00f6r\u00fcnde bulunur ve as\u0131l yaz\u0131l\u0131m\u0131 y\u00fcklerler. Bizim \u00f6ny\u00fckleyimiz bilgisayar \u00e7al\u0131\u015ft\u0131r\u0131l\u0131p, disket okundu\u011funda otomatik olarak \u201cGenel Men\u00fc\u201d yaz\u0131l\u0131m\u0131m\u0131z\u0131 \u00e7al\u0131\u015ft\u0131racakt\u0131r.<\/p>\n<p><strong>4- Genel Men\u00fc<\/strong><\/p>\n<p>Genel Men\u00fc yaz\u0131l\u0131m\u0131m\u0131z\u0131n g\u00f6revi di\u011fer yaz\u0131l\u0131mlar\u0131 istendi\u011finde \u00e7al\u0131\u015ft\u0131rmakt\u0131r. \u00c7al\u0131\u015ft\u0131r\u0131lan yaz\u0131l\u0131mlar sonland\u0131\u011f\u0131nda ise Genel Men\u00fcye geri d\u00f6n\u00fclecektir.<\/p>\n<p><strong>5- Seri \u0130leti\u015fim Yaz\u0131l\u0131m\u0131<\/strong><\/p>\n<p>Seri ileti\u015fim yaz\u0131l\u0131m\u0131 sayesinde di\u011fer bilgisayarlarla sohbet edebilece\u011fiz.<\/p>\n<p><strong>6- Hesap Makinas\u0131 Yaz\u0131l\u0131m\u0131<\/strong><\/p>\n<p>A\u0131ndan da anla\u015f\u0131ld\u0131\u011f\u0131 gibi bu yaz\u0131l\u0131m bir hesap makinas\u0131d\u0131r. Ekrandan se\u00e7ilen say\u0131lar ve i\u015flemler yerine getirilmektedir.<\/p>\n<p><strong>7- Metin D\u00fczenleyici Yaz\u0131l\u0131m\u0131<\/strong><\/p>\n<p>Bu yaz\u0131l\u0131m basit bir metin d\u00fczenleyicidir.<\/p>\n<p><strong>8- Y\u00fcksek \u00c7\u00f6z\u00fcn\u00fcrl\u00fckte Resim G\u00f6sterme Yaz\u0131l\u0131m\u0131<\/strong><\/p>\n<p>Bu yaz\u0131l\u0131m sayesinde 1024\u00d7768 24bit renk \u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fcndeki bir ekrana istedi\u011fimiz resimi bast\u0131rabiliriz.<\/p>\n<p><strong>9- Son<\/strong><\/p>\n<p>\u201cASM \u0130le Kendi \u0130\u015fletim Sistemimizi Yazal\u0131m (1)\u201d\u2018in sonuna geldik. Bir sonraki yaz\u0131da disket y\u00fckleyicimizi kodlayaca\u011f\u0131z. Herkese kolay gelsin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1- Giri\u015f: Bu makale \u201cASM ile Kendi \u0130\u015fletim Sistemimizi Yazal\u0131m\u201d makalelerimin ilkidir. Bu makalelerde ASM kullanarak basit bir i\u015fletim sisteminin nas\u0131l yaz\u0131labilece\u011fini g\u00f6rece\u011fiz. \u0130\u015fletim sistemimiz disketten \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r, seri&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[233,225],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-assembly-tr","category-programlama-tr"],"_links":{"self":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30"}],"version-history":[{"count":1,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/30\/revisions"}],"predecessor-version":[{"id":1161,"href":"http:\/\/18.193.70.38\/index.php?rest_route=\/wp\/v2\/posts\/30\/revisions\/1161"}],"wp:attachment":[{"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/18.193.70.38\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}