在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

計算機啟動的細節與匯編Demo的拆解1

jf_78858299 ? 來源:硬件底褲酸奶蓋子 ? 作者:酸奶蓋子 ? 2023-02-01 15:53 ? 次閱讀

本文匯編程序是X86環境下的,移植其他平臺可能產生錯誤。

一、匯編Demo解析

在前面的文章中建立了一個簡單的匯編Demo,令虛擬機輸出一個“Helloworld!”字符串。

org 0x7c00     ;程序起始位07c00h

此處的org是Origin的縮寫,意為起源位置、起始位置。

在此前不管是桌面還是移動端,甚至是嵌入式系統的開發,工程師都是使用如C,C++Java等類似的高級語言;而撰寫好程序源文件后剩下的事情便交由編譯器去做。

類似于程序運行需要多少內存空間,分配多少時鐘周期,程序加載位置與棧內存等瑣碎的問題,我們卻不太關心。這些操作都由編譯器根據工程要求進行分配。

如果使用Windows環境,我們通過屬性可以獲取我們電腦簡單參數。如:處理器,系統版本之類的。

在其中我們必然會看到這樣一行:機帶RAM。其實這就是通常所說的運行內存,簡稱:內存。(我的機器內存8G)

我們的程序編譯好后是存放在硬盤中的。如果沒有啟用,它與其他千千萬萬個文件表現形式一樣,也沒辦法區分。

如果我們喚起該程序便會產生差異。

首先CPU向硬盤發送查詢命令,在硬盤中找尋該程序機器碼,在獲知該文件存在后硬盤向CPU報告找尋文件就緒;其次CPU向硬盤發送將該程序機器碼拷貝到運行內存(硬盤太慢);內存就緒后CPU使用IP寄存器指向該地址并步進執行。

Org作用出現在第二步,硬盤將程序復制到內存哪個位置呢?org如是說:到0x7c00處!于是便復制到此。

簡單來說org命令就是標志程序加載位置的,此前我們進行的程序設計沒有做過這類工作完全歸功于編譯器的功勞。

為什么是0x7c00處呢?深究起來也并無其他高深道理,不過是為保持兼容性,硬件廠商共同約定的事情而已。但是如系統開發不遵循這樣的約定卻又無法正常啟動。畢竟如果所有廠商都遵循的約定就會成為行業規范。

(我下一步計劃設計一個RISV指令集的CPU,到時我將不遵循這個約定。那真是海闊憑魚躍,天高任鳥飛)

在我們學習匯編寫操作系統的過程中還會有其他耐人尋味的約定,當有所涉及再進行介紹。

mov ax,cs
mov ds,ax
mov es,ax

從前面的介紹可知:

AX是通用寄存器,在此例中用來做數據拷貝。

CS是代碼段寄存器,用來存儲該段代碼的入口地址。

ES的附加段寄存器,存放當前執行程序中一個輔助數據段的段地址。

DS是數據段寄存器,在此用于標示數據段其實地址。

X86架構計算機在實模式下尋址方式是:段+偏移。而這涉及到絕對地址和邏輯地址概念,這是以后的內容,再此我們先簡單記住這三行是確保三個寄存器指向同一地址,以便后續進行數據操作能定位到正確位置。

這種操作可以總結為“寄存器對齊”。

call DispStr

Call是匯編語言中進行函數調用的助記符,該行意義是跳轉到名為DispStr的位置并繼續執行。

call DispStr
mov ax,BootMessage
mov  bp,ax                ;串地址
mov  cx,11                ;串長度
mov  ax,01301h        ;AH = 13,AL = 01h
mov  bx,000ah         ;黑底綠字
mov dl,0
int  10h                ;10h號中斷
ret

上述便是DispStr主體,在程序末位我們使用BootMessage替代"Helloworld!"字符串,此時BootMessage為存儲Helloworld!內存的首地址。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7636

    瀏覽量

    90251
  • 匯編
    +關注

    關注

    2

    文章

    214

    瀏覽量

    26441
  • 虛擬機
    +關注

    關注

    1

    文章

    963

    瀏覽量

    29103
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    計算機安全使用常識

    計算機安全使用常識 (1)使用符合額定電壓的電源。電壓高于額定電壓會燒毀硬件,低于額定電壓計算機不能正常啟動或系統運行不正常,甚至也會燒毀硬件。(2)正確開關
    發表于 03-10 12:10

    歐盟為計算機計算機服務器出臺新生態設計要求

    、2014年7月1日和 2016年7月1日。涉及的產品包括可以直接從交流電網取電(包括外部或內部電源供應): ?● 臺式計算機● 一體式計算機 ● 筆記本
    發表于 03-31 18:14

    什么是微型計算機?微型計算機有什么用處?

    匯編語言是什么?什么是微型計算機?微型計算機有什么用處?
    發表于 07-16 09:59

    什么是計算機系統、計算機硬件和計算機軟件?

    第一章 計算機系統概論1. 什么是計算機系統、計算機硬件和計算機軟件?硬件和軟件哪個更重要?解:P3計算
    發表于 07-22 09:06

    計算機開機啟動過程詳解 精選資料分享

    計算機的開機啟動過程(1) 啟動過程總攬(二)詳細說明1、CPU 供電按下主機的電源鍵后,計算機
    發表于 07-23 09:18

    計算機組成期末復習 精選資料分享

    計算機組成原理期末考試復習題,很給力的!!!一、選擇題(c)1、在下列四句話中,最能準確反映計算機主要功能的是下面哪項。A.計算機可以存儲大量信息B.
    發表于 07-26 07:14

    微型計算機原理及應用

    前言微機原理主要內容包括微型計算機體系結構、8088微處理器和指令系統、匯編語言設計以及微型計算機各個組成部分介紹等內容。微機原理接口技術是一門實踐性強的學科,不但要求較高的理論水平,而且還要求有實際的動手能力。這次項目設計的主
    發表于 09-10 07:38

    計算機應用

    1、第一臺計算機:1946年2月14日,在美國賓西尼亞大學的莫爾電機學院,世界第一臺現代電子計算機“埃尼阿克”ENIAC誕生,重達30t,在1s內能進行5000次加法運算和500次乘法
    發表于 09-10 08:17

    計算機組成原理與匯編語言程序設計

    計算機組成原理與匯編語言程序設計是為中央電大計算機組成原理與匯編語言程序設計課程編寫的教材。在開始學習本書之前,請大家務必先認真閱讀這篇前言,它將告訴你本課
    發表于 10-21 17:56 ?0次下載
    <b class='flag-5'>計算機</b>組成原理與<b class='flag-5'>匯編</b>語言程序設計

    計算機組成原理與匯編語言習題一

    計算機組成原理與匯編語言習題一   硬盤低格格式化是對硬盤最徹底的初始化方式,經過低格后的硬盤,原來保護的數據將全部丟失
    發表于 04-15 16:16 ?572次閱讀

    計算機學習教程之指令系統與匯編語言程序設計課件免費下載

    本文檔的主要內容詳細介紹的是計算機學習教程之指令系統與匯編語言程序設計課件免費下載包括了:1.匯編語言程序設計,2.程序設計舉例,
    發表于 01-03 08:00 ?0次下載

    構建 4 位計算機匯編語言和匯編器(第 2 部分)

    一旦我們構建了一臺計算機,下一步就是開發一種匯編語言,然后是一個可以匯編我們程序的匯編器。 ? 在我 之前的專欄 中,我們介紹了在計算機內存
    發表于 08-01 17:52 ?994次閱讀
    構建 4 位<b class='flag-5'>計算機</b>:<b class='flag-5'>匯編</b>語言和<b class='flag-5'>匯編</b>器(第 2 部分)

    構建 4 位計算機匯編語言和匯編器(第 1 部分)

    我們已經到了需要為 4 位 HRRG 計算機定義匯編語言的地步,但首先我們需要考慮某些概念。 如今,我們習慣于使用 C/C++、Java、Python 等高級語言對我們的計算機和微控制器進行編程,但
    發表于 08-01 17:39 ?1199次閱讀
    構建 4 位<b class='flag-5'>計算機</b>:<b class='flag-5'>匯編</b>語言和<b class='flag-5'>匯編</b>器(第 <b class='flag-5'>1</b> 部分)

    計算機啟動細節匯編Demo拆解2

    本文匯編程序是X86環境下的,移植其他平臺可能產生錯誤。 一、匯編Demo解析 在前面的文章中建立了一個簡單的匯編Demo,令虛擬機
    的頭像 發表于 02-01 15:53 ?806次閱讀
    <b class='flag-5'>計算機</b><b class='flag-5'>啟動</b>的<b class='flag-5'>細節</b>與<b class='flag-5'>匯編</b><b class='flag-5'>Demo</b>的<b class='flag-5'>拆解</b>2

    計算機啟動細節匯編Demo拆解3

    本文匯編程序是X86環境下的,移植其他平臺可能產生錯誤。 一、匯編Demo解析 在前面的文章中建立了一個簡單的匯編Demo,令虛擬機
    的頭像 發表于 02-01 15:53 ?851次閱讀
    主站蜘蛛池模板: 国产片一级特黄aa的大片 | 免费一级网站 | 天天综合网站 | 久久视频精品36线视频在线观看 | 日韩在线视频www色 日韩在线视频免费观看 | 好紧好爽水真多18 | 色噜噜狠狠成人中文小说 | 久久午夜精品视频 | 97精品伊人久久大香线蕉 | 永久免费看的啪啪网站 | 在线观看免费视频国产 | 久久婷婷是五月综合色狠狠 | 综合一区| 激情有码 | 国产精品夜色一区二区三区 | 高清在线观看视频 | 午夜毛片视频高清不卡免费 | 黄色香蕉网站 | 高清国产亚洲va精品 | 护士一级aaaaaa毛片 | 天堂在线中文字幕 | 亚洲欧洲日韩综合 | 日韩成人免费一级毛片 | 国产精品欧美精品国产主播 | 色婷婷国产| 天天艹天天操 | 亚洲国产一区二区三区在线观看 | 国产精品天天看天天爽 | 中国一级特黄特级毛片 | 天天想天天干 | 奇米一区二区三区四区久久 | 国产亚洲婷婷香蕉久久精品 | 国语自产自拍秒拍在线视频 | 久久是精品 | 788gao这里只有精品 | 久久夜夜操 | 中文字幕三级久久久久久 | 女人张开腿让男人桶免费最新 | 操久久久| 欧美性色欧美a在线观看 | 欧美三级一区二区三区 |