久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

asm基礎——匯編指令之in/out指令

這篇文章主要介紹了asm基礎——匯編指令之in/out指令,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習

x86中的IO端口訪問

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

匯編中使用in/out來訪問系統的io空間。

IN

從端口輸入

OF

DF

IF

SF

ZF

AF

PF

CF

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

指令格式:


in accum, imm (應該不需要是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

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

指令格式:


out imm8, accum(應該不需要是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地址要么是立即數,要么放在dx寄存器中;而數據也都放在al/ax/eax寄存器中,不能是其他寄存器。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持html5模板網。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了C 表達式中的匯編指令,需要的朋友可以參考下
dup它有多種意義,包括Linux c 函數、C語言函數DUP、匯編指令、化學物質DUP。這篇文章主要介紹了匯編語言 dup偽指令的相關知識,需要的朋友可以參考下
這篇文章主要介紹了常用的匯編指令與技巧,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
主站蜘蛛池模板: 久久久久久国产精品免费免费狐狸 | 国产精品欧美一区二区 | 在线天堂免费中文字幕视频 | 在线观看亚洲专区 | 一区免费 | 久久精品这里 | 一区二区三区中文字幕 | 国产精品久久久久久福利一牛影视 | 午夜免费观看 | 日本大香伊一区二区三区 | 久久国产一区二区 | 99久久久无码国产精品 | 无码一区二区三区视频 | 色吧综合| 亚洲黄色一区二区三区 | 亚洲欧美国产视频 | 日本韩国电影免费观看 | 免费精品 | 亚洲一区二区视频在线播放 | 成人亚洲性情网站www在线观看 | 男女网站视频 | 欧美一区2区三区4区公司二百 | 亚洲欧美日韩在线 | 亚洲欧美中文字幕 | 一区二区三区欧美 | 日日射影院 | 午夜爽爽男女免费观看hd | 国产精品久久国产精品久久 | 一区二区精品 | 成人福利片| 亚洲网在线 | 中文字幕免费在线 | 亚洲精品一区二区 | 亚洲精品黄色 | 中文字幕精品一区久久久久 | aⅴ色国产 欧美 | 麻豆av免费观看 | 一区在线观看 | 国产精品视频一区二区三区, | 国产精品久久片 | 91中文字幕在线 |