對埠的讀寫不能用mov、push、pop等這些對記憶體的操作指令,對埠的讀寫只有兩條in和out
in:讀取出埠的內容到程式中
out:寫入內容到埠中
;以下為對8為的埠進行的讀寫,如果是對16位的埠進行讀寫需要使用ax存放資料在寫入埠
;對埠號在0~255內的埠進行讀寫
in al,埠號 ;將該埠中的內容讀入al中
out 埠號,al ;將al中的內容寫入到埠中
;對埠號在256~65535內的埠進行讀寫
;需要先將埠號存入到dx中
mov dx,埠號
in al,dx ;將埠中的內容讀入al中
out dx,al ;將al中的內容寫入到埠中
下面詳細的介紹一下cpu是如何執行埠訪問的
in al,60h ;從60h號埠讀入乙個位元組
執行時匯流排相關的操作如下
cpu通過位址匯流排將資訊60h發出
cpu通過控制匯流排發出讀埠命令,選中埠所在的晶元,並通知該晶元,將要從它中讀取資料。
埠所在晶元將60h埠中的資料通過資料匯流排送入cpu。
以下為對8為的埠進行的讀寫,如果是對16位的埠進行讀寫需要使用ax存放資料在寫入埠
注意:埠號是16為的埠與16位的埠不是乙個概念
彙編指令對標誌位的影響
mov lea xchg push pop in out 傳送類指令不影響標誌位 add adc sub sbb cmp 加減法指令影響全部標誌位 inc dec 增一減一指令不影響cf neg 求補指令影響除cf外的5個標誌位,對cf位置1 mul imul 乘法指令只影響of位和cf位,對其他位...
彙編中的指令
跳轉指令用於實現程式流程的跳轉,在 arm 程式中有兩種方法可以實現程式流程的跳 1 使用專門的跳轉指令。2 直接向程式計數器 pc 寫入跳轉位址值。通過向程式計數器 pc 寫入跳轉位址值,可以實現在 4gb 的位址空間中的任意跳轉,在跳轉之前結合使用 mov lr pc 等類似指令,可以儲存下一條...
彙編的各種指令
不怎麼用就忘記了,以後每學到乙個新的指令就記錄下來 如何在64位win10系統搭載彙編環境 1 什麼是debug?debug是dos,windows都提供的實模式,程式的除錯工具,使用他,可以檢視cpu各種暫存器中的內容,記憶體中的情況和在機器碼級跟蹤程式的執行。2 我們用到的debug功能 r命令...