我是組裝新手。這讓我很困擾:如果處理器沒有輸入和輸出的特殊指令怎么辦?
uj5u.com熱心網友回復:
x86的in和out指令或多或少是mov指令的特殊情況:
您可能會說M//IO運行在“min”模式下的 8088 CPU 的 pin 實際上是 pin /A20。在這種情況下,該指令mov al, [si]用于從地址范圍 0-0FFFFFhin al, dx中讀取一個位元組,并用于從地址范圍 100000h-10FFFFh 中讀取一個位元組。
mov [si], al和也是如此out dx, al。
所以8088可以訪問地址范圍0-10FFFFh。而一個80386可以訪問和地址范圍0-10000FFFFh。
但是,實際上,您不會談論“地址范圍 100000h-10FFFFh”,而是談論“I/O 地址范圍”。但原理是一樣的。
沒有inorout指令的 CPU(ARM、PowerPC、MIPS、TriCore、V850、m68k、680x、6502 ...)只有一個地址范圍。
連接到這樣一個 CPU 的所有設備(鍵盤、UART、滑鼠......)在這個單一地址范圍內都有一個地址。
在這種情況下,使用等于 x86 指令的指令mov al, [si]而不是指令in al, dx(在此類 CPU 上不存在)來訪問這些設備。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/420273.html
標籤:
上一篇:如何根據C反匯編確定此字串值?
