欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asm基礎(chǔ)——匯編指令之in/out指令

 更新時間:2020年01月20日 09:13:02   作者:jiangwei0512  
這篇文章主要介紹了asm基礎(chǔ)——匯編指令之in/out指令,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

x86中的IO端口訪問

匯編是直接面向硬件的,它可以訪問系統(tǒng)的mem空間,也可以直接訪問系統(tǒng)的io空間。

匯編中使用in/out來訪問系統(tǒng)的io空間。

IN

從端口輸入

OF

DF

IF

SF

ZF

AF

PF

CF

說明:從端口輸入一個字節(jié)或字到AL或AX中(IA-32處理器上可以輸入一個雙字到EAX)。源操作數(shù)是端口地址,可以是8位的常量或者DX中的一個16位地址。

指令格式:

in accum, imm (應(yīng)該不需要是8位,可以是16位,比如3F8h)
in accum, dx

下面是一個例子,對in做了一層包裝:

UINT8
IoRead8 (
 IN   UINTN           Port
 )
{
 UINT8  Data;
 
 __asm {
  mov dx, word ptr [Port]
  in al, dx
 
  mov Data, al
 }
 return Data;
}

OUT

輸出到端口。

OF

DF

IF

SF

ZF

AF

PF

CF

說明:將累加器中的一個字節(jié)或字輸出到端口(IA-32處理器上可以向端口輸出一個雙字)。端口地址如果在范圍0-FFh之間,可以是一個常量,也可以在DX中存放0-FFFFh之間的端口地址。

指令格式:

out imm8, accum(應(yīng)該不需要是8位,可以是16位,比如3F8h)
out dx, accum

下面是一個例子,對out做了一層包裝:

UINT8
IoWrite8 (
 IN   UINTN           Port,
 IN   UINT8           Value
 )
{
 __asm {
  mov al, byte ptr [Value]
  mov dx, word ptr [Port]
  out dx, al
 }
 return Value; 
}

注意,io地址要么是立即數(shù),要么放在dx寄存器中;而數(shù)據(jù)也都放在al/ax/eax寄存器中,不能是其他寄存器。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

    這篇文章主要介紹了匯編實現(xiàn)簡單選擇排序的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言80x86系統(tǒng)通用數(shù)據(jù)傳送指令詳解

    匯編語言80x86系統(tǒng)通用數(shù)據(jù)傳送指令詳解

    這篇文章主要為大家介紹了匯編語言80x86系統(tǒng)通用的數(shù)據(jù)傳送指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • ARM體系下的GCC內(nèi)聯(lián)匯編教程詳解

    ARM體系下的GCC內(nèi)聯(lián)匯編教程詳解

    在操作系統(tǒng)級的編程中,有時候,C語言并不能完全的使用硬件的功能,這時候就需要嵌入一些匯編代碼來實現(xiàn)功能。這篇文章主要介紹了ARM體系下的GCC內(nèi)聯(lián)匯編,需要的朋友可以參考下
    2020-02-02
  • 匯編 JMP使用詳解

    匯編 JMP使用詳解

    這篇文章主要介紹了匯編 JMP使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言 寄存器內(nèi)存訪問原理解析

    匯編語言 寄存器內(nèi)存訪問原理解析

    這篇文章主要介紹了匯編語言 寄存器內(nèi)存訪問原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • UEFI開發(fā)實戰(zhàn)用戶交互界面使用說明VFR文件

    UEFI開發(fā)實戰(zhàn)用戶交互界面使用說明VFR文件

    這篇文章主要為大家介紹了UEFI開發(fā)實戰(zhàn)用戶交互界面使用說明VFR文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 匯編語言AND指令實現(xiàn)對兩個操作數(shù)進(jìn)行邏輯(按位)與操作

    匯編語言AND指令實現(xiàn)對兩個操作數(shù)進(jìn)行邏輯(按位)與操作

    這篇文章主要介紹了匯編語言AND指令實現(xiàn)對兩個操作數(shù)進(jìn)行邏輯(按位)與操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編跳轉(zhuǎn)指令使用總結(jié)

    匯編跳轉(zhuǎn)指令使用總結(jié)

    這篇文章主要介紹了匯編跳轉(zhuǎn)指令使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編語言loop命令的具體使用

    匯編語言loop命令的具體使用

    LOOP指令是根據(jù)ECX計數(shù)器循環(huán),將語句塊重復(fù)執(zhí)行特定次數(shù),本文主要介紹了匯編語言loop命令的具體使用,感興趣的可以了解一下
    2024-03-03
  • 匯編語言中mov和lea指令的區(qū)別詳解

    匯編語言中mov和lea指令的區(qū)別詳解

    指令(instruction)是一種語句,它在程序匯編編譯時變得可執(zhí)行。本文給大家總結(jié)一下匯編語言中mov和lea指令的區(qū)別詳解,感興趣的朋友跟隨小編一起看看吧
    2020-01-01

最新評論