久久久久久久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偽指令的相關知識,需要的朋友可以參考下
這篇文章主要介紹了常用的匯編指令與技巧,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
主站蜘蛛池模板: 99reav| 久久久久久久国产 | 日韩在线视频一区 | 午夜免费福利电影 | 精品久久国产 | 亚洲电影免费 | 国产美女h视频 | 操久久 | 午夜伊人| 久久久久久国产精品免费免费男同 | 中文字幕精品一区二区三区精品 | 一道本视频 | 精品免费国产一区二区三区四区介绍 | jvid精品资源在线观看 | 欧美日韩高清一区 | 国产福利网站 | 国产三级精品视频 | 欧美成人性生活 | 亚洲精品在线91 | 中文字幕 亚洲一区 | 99久久婷婷 | 亚洲一区欧美一区 | 国产黄色大片 | 中文字幕视频一区二区 | 毛片一级片 | 午夜精品一区二区三区在线观看 | 精品久久久久久红码专区 | 黄色av网站免费看 | 亚洲国产欧美一区 | 欧美aaaaaaaaaa | 亚洲美女视频 | 最近最新中文字幕 | 日本国产高清 | 午夜精品视频一区 | 九九一级片 | 国产精品久久国产愉拍 | 国产日屁 | 婷婷综合| 精品国产一区二区三区久久 | 色婷婷婷婷色 | 国产午夜精品久久久 |