最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

UEFI開(kāi)發(fā)基礎(chǔ)匯編代碼的使用

 更新時(shí)間:2022年06月06日 10:39:13   作者:jiangwei0512  
這篇文章主要為大家介紹了UEFI開(kāi)發(fā)基礎(chǔ)匯編代碼使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

UEFI中使用匯編代碼

EDK代碼中包含一部分匯編代碼,目前支持的有.S、.asm和.nasm格式的匯編(第一個(gè)是AT&T匯編,后兩個(gè)是Intel匯編,只是使用的匯編樣式稍有不同,.nasm是開(kāi)源和免費(fèi)的,更加的通用),如果是在Windows下編譯,一般使用的是NASM編譯器,所以會(huì)使用.nasm格式的匯編文件,而編譯工具也是免費(fèi)的,可以在https://www.nasm.us/下載,并放到C:\Nasm目錄,之后就可以在EDK代碼中使用。

下面是一個(gè)示例,它是一個(gè)庫(kù)模塊:

首先創(chuàng)建inf文件:

[Defines]
  INF_VERSION                       = 0x00010005
  BASE_NAME                         = AsmLib
  FILE_GUID                         = 2A3061AF-740E-4B62-B900-FC24AF9B072E
  MODULE_TYPE                       = BASE
  VERSION_STRING                    = 1.0
  LIBRARY_CLASS                     = AsmLib
#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES              = IA32 X64 IPF EBC
#
[Sources.X64]
  X64/AsmLib.nasm
[Packages]
  MdePkg/MdePkg.dec
  BeniPkg/BeniPkg.dec

這里的代碼跟普通inf沒(méi)有區(qū)別,只是指定的源文件Sources稍有不同,通常會(huì)去指定時(shí)Ia32還是X64。

匯編代碼編寫(xiě):

  SECTION .text
;------------------------------------------------------------------------------
; VOID
; EFIAPI
; AsmNop (
;   VOID
;   );
;------------------------------------------------------------------------------
global ASM_PFX(AsmNop)
ASM_PFX(AsmNop):
  nop
  ret

SECTION .text指定了代碼段,之后的就是匯編代碼了。

global ASM_PFX指定了全局的函數(shù),可以在外部調(diào)用,當(dāng)然同時(shí)也需要增加頭文件:

/**
  Code for nothing.
  @param  NA
  @retval  NA
**/
VOID
EFIAPI
AsmNop (
  VOID
  );

之后就可以使用該函數(shù)了,這跟普通的函數(shù)使用沒(méi)有區(qū)別。

下面是另一個(gè)例子,用于向Legacy串口輸出一個(gè)字符:

global ASM_PFX(AsmSerialIo)
ASM_PFX(AsmSerialIo):
  mov dx, 03f3h
  mov eax, 0
loop:
  in  al, dx
  bt  eax, 5
  jnc loop      ; Wait until ready
  mov dx, 03f8h
  mov ax, cx    ; cx is the input parameter
  out dx, ax    ; Output the character
  ret

測(cè)試代碼可以在BeniPkg\DynamicCommand\TestDynamicCommand\Test.c中找到。

以上就是UEFI開(kāi)發(fā)基礎(chǔ)匯編代碼使用的詳細(xì)內(nèi)容,更多關(guān)于UEFI開(kāi)發(fā)匯編代碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 匯編中的數(shù)組分配和指針的實(shí)現(xiàn)代碼

    匯編中的數(shù)組分配和指針的實(shí)現(xiàn)代碼

    這篇文章主要介紹了匯編中的數(shù)組分配和指針的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Windows10下利用DOSBOX和MASM32搭建匯編語(yǔ)言開(kāi)發(fā)環(huán)境

    Windows10下利用DOSBOX和MASM32搭建匯編語(yǔ)言開(kāi)發(fā)環(huán)境

    這篇文章主要介紹了Windows10下利用DOSBOX和MASM32搭建匯編語(yǔ)言開(kāi)發(fā)環(huán)境,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 匯編語(yǔ)言指令集之串處理指令講解

    匯編語(yǔ)言指令集之串處理指令講解

    這篇文章主要介紹了匯編語(yǔ)言指令集之串處理指令講解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • libAccessibility通知Crash排查記錄分析

    libAccessibility通知Crash排查記錄分析

    這篇文章主要為大家介紹了libAccessibility通知Crash排查記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 匯編語(yǔ)言Debug命令詳解教程

    匯編語(yǔ)言Debug命令詳解教程

    這篇文章主要為大家介紹了匯編語(yǔ)言Debug命令的教程,文中對(duì)Debug的命令進(jìn)行了全面的講解有需要的朋友可以借鑒參考共同學(xué)習(xí)下,希望能夠有所幫助
    2021-11-11
  • 匯編實(shí)現(xiàn)簡(jiǎn)單選擇排序的方法示例

    匯編實(shí)現(xiàn)簡(jiǎn)單選擇排序的方法示例

    這篇文章主要介紹了匯編實(shí)現(xiàn)簡(jiǎn)單選擇排序的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 計(jì)算機(jī)系統(tǒng)匯編語(yǔ)言和機(jī)器語(yǔ)言深入理解

    計(jì)算機(jī)系統(tǒng)匯編語(yǔ)言和機(jī)器語(yǔ)言深入理解

    這篇文章主要為大家介紹了計(jì)算機(jī)系統(tǒng)匯編語(yǔ)言和機(jī)器語(yǔ)言深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 詳解匯編語(yǔ)言MOV指令

    詳解匯編語(yǔ)言MOV指令

    在匯編語(yǔ)言中,MOV指令是數(shù)據(jù)傳送指令,也是最基本的編程指令,這篇文章主要介紹了匯編語(yǔ)言MOV指令,需要的朋友可以參考下
    2020-01-01
  • 匯編語(yǔ)言段定義的使用

    匯編語(yǔ)言段定義的使用

    匯編語(yǔ)言源程序的基本結(jié)構(gòu)是段,一個(gè)匯編語(yǔ)言源程序由若干個(gè)代碼段,本文主要介紹了匯編語(yǔ)言段定義的使用,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 匯編 JCC指令表與筆記

    匯編 JCC指令表與筆記

    這篇文章主要介紹了匯編 JCC指令表與筆記,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

荔浦县| 古田县| 萨迦县| 古丈县| 石狮市| 凤阳县| 花垣县| 浦江县| 汝州市| 岳池县| 呈贡县| 正安县| 文昌市| 广元市| 思南县| 达拉特旗| 霞浦县| 永昌县| 拉萨市| 贞丰县| 伊金霍洛旗| 库尔勒市| 湾仔区| 酒泉市| 韶山市| 诏安县| 大方县| 体育| 会昌县| 四平市| 永靖县| 邵东县| 马关县| 桃园市| 安乡县| 大洼县| 临泽县| 南康市| 沙雅县| 永嘉县| 泸西县|