主要內容
開發環境搭建
認識引導程式
nasm彙編
編寫第乙個啟動程式
一、開發環境的搭建
我們將使用兩種虛擬機器visual pc2004和vmware
visual pc2004是微軟推出的虛擬機器軟體我們用它來啟動我們自己編寫的啟動程式
vmware虛擬機器軟體,我們在上面安裝linux。利用nasm彙編器在linux上進行啟動程式的編譯工作
啟動程式演示
讓visual pc開啟我們自己編寫好的啟動盤映象檔案,讓虛擬機器從我們編寫的軟盤映象中啟動
二、知識預備
理解計算機加電過程
bios對系統記憶體的分配
認識引導程式的概念
使用nasm進行編譯
製作軟盤映象
1.計算機加電過程
當我們按下電源按鈕後,計算機是如何從無到有將作業系統執行起來的?
按下開機按鈕後,將傳送電訊號給bios
bios獲得電訊號後將啟動自檢查程式,檢查周邊裝置是否通電完畢
檢查完畢後自檢程式把控制權交還bios,bios將讀取引導驅動器中的啟動程式
2.系統的記憶體安排
在系統加電時最初的1mb記憶體是bios為我們準備好的,它的分布情況如右圖
三、認識引導程式
什麼樣的程式才能成為引導程式?
bios將所檢查啟動磁碟的第乙個扇區521位元組載入記憶體,放於記憶體0x0000:0x07c00處
如果第一扇區最後兩個位元組是55aa那麼它就是乙個引導程式
引導程式的特點:
它的大小是512位元組,不能多也不能少因為bios唯讀512b到記憶體中
它結尾必須是55aa,這是引導扇區的標誌
它總是放在磁碟第乙個扇區上(0磁頭0磁軌1扇區)因為bios只讀取第乙個扇區
四、nasm彙編
nasm是乙個為可移植性與模組化而設計的乙個80x86的彙編器。它支援相當多的目標檔案格式包括linux和windows
如何用nasm編寫乙個引導程式?
什麼是nasm它和masm有什麼區別?
nasm擁有乙個相當簡單的記憶體引用規則,是任何對記憶體中內容的訪問操作必須要在位址上加上方括號。但任何對地質值的操作不需要
比如『mov ax,bar』的指令表示把bar的位址賦給ax暫存器,這相當於masm中mov ax,offset bar要獲得bar變數的值mov ax,[bar]
masm mov ax,es:di = nasm mov ax,[es:di]
如何在linux下安裝nasm?
如何用nasm編譯自己編寫的彙編**?
redis常用功能 緩一緩存一存
1.redis是一種基於鍵值對的nosql資料庫,它提供了對多種資料型別 字串 雜湊 列表 集合 有序集合 點陣圖等 的支援,能夠滿足很多應用場景的需求。redis將資料放在記憶體中,因此讀寫效能是非常驚人的。使用redis的主要優點 redis的讀寫效能極高,並且有豐富的特性 發布 訂閱 事務 通...
彙編(一)組合語言簡介
本系列將簡單介紹組合語言的基礎知識,目的是為編譯原理課程打下基礎,因此涉及的內容相對淺顯,不作過高要求。本篇將對組合語言進行簡單介紹,分析組合語言的特點並熟悉計算機的軟硬體系統及暫存器組。組合語言vs高階程式語言 1 組合語言的通用性 可移植性較差。高階語言可以在多種計算機上編譯後執行。2 組合語言...
彙編基礎一
第乙個問題 資料存在 1.絕大部分機器指令都是進行資料處理的指令,處理大致可分為3類 讀取 寫入 運算。在機器指令這一層來講,並不關心資料的值的多少,而關心指令執行前的一刻,它將要處理的資料所在的位置。指令在執行前,所要處理的資料可以在3個地方 cpu內部 記憶體 埠。在組合語言中如何表達資料的位置...