久久久久久久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偽指令的相關知識,需要的朋友可以參考下
這篇文章主要介紹了常用的匯編指令與技巧,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
主站蜘蛛池模板: 亚洲人成人一区二区在线观看 | 久久久久国 | 国产视频中文字幕 | 日韩电影免费在线观看中文字幕 | 精品91久久| 中国一级特黄真人毛片 | 中文字幕免费 | 在线成人免费视频 | 成人精品一区二区三区中文字幕 | 黄色免费观看 | 国产一区二区三区 | 成人免费一区二区三区视频网站 | 中文字幕av亚洲精品一部二部 | 欧美a在线看 | 日韩久久久久久久 | 久久精品网 | 一区二区三区中文字幕 | 二区三区视频 | 欧美成人精品欧美一级 | 欧美一级高清片 | 欧美一区二区三区在线观看 | 亚洲一区视频在线 | 欧美一级二级三级视频 | 久在线| 午夜小影院 | 一区二区三区在线免费观看 | 欧洲一区二区三区 | 免费一区二区 | 91超碰在线观看 | 久久噜噜噜精品国产亚洲综合 | av一级一片 | 日韩视频在线播放 | 亚洲 欧美 日韩在线 | 欧美一区二区网站 | 久久精品91久久久久久再现 | 天堂av资源 | 91在线精品视频 | 91精品国产色综合久久不卡98 | 亚洲日韩欧美一区二区在线 | 国产最新网址 | 国产精品久久久久久久久久久久久久 |