計算機的埠是暫存器的位址嗎?

時間 2021-05-07 01:18:12

1樓:默然說話

兩個埠真不是乙個意思呢。

因為暫存器沒有65535個,它們是cpu的一部分,也僅cpu可以訪問。而網路上的埠卻是外部網路訪問計算機的通道,只是乙個邏輯上的概念。

2樓:「已登出」

各種儲存器都和CPU的位址線、資料線、控制線相連,CPU在操控它們的時候都要把它們當作記憶體來對待,把它們總地會去看做是乙個由若干儲存單元組成的邏輯儲存器,這個邏輯儲存器,我們把它稱為記憶體位址空間

在PC機系統當中,和CPU通過匯流排相連的晶元除了各種的儲存器之外,其實還有些其他的晶元,比如說下面三種

1、各種介面卡(比如,網絡卡、顯示卡)上的介面晶元,它們控制介面卡進行工作2、主機板上面的介面晶元,CPU通過它們對部分外設進行訪問3、其他晶元就是用來儲存相關的系統資訊,或者進行相關的輸入輸出的處理

其實在這些晶元當中,都是有一組可用由CPU進行讀寫的暫存器的,這些暫存器,它們在物理上可能處於不同的晶元當中,它們通過晶元和CPU的匯流排相連線,CPU對它們進行讀或寫的時候都通過控制線向它們所在的晶元發出埠讀寫命令

從CPU的角度,可用將這些暫存器當作是埠,會對它們進行統一編址,從而建立了乙個統一的埠位址空間,每乙個埠在位址空間都有乙個位址

我們在訪問埠的時候其實是CPU通過埠位址來定位埠的,因為埠所在的晶元和CPU通過匯流排相連,所以埠位址和記憶體位址一樣,通過位址匯流排來傳送

對於埠的讀寫操作我們不能使用mov、push、pop等記憶體讀寫的指令,埠的讀寫指令只有兩條分別是in和out,分別是用於從埠讀取資料和往埠寫入資料

從埠讀入乙個位元組的資料,比如說從20h埠讀入乙個位元組的資料

in al,20h

執行這條指令和匯流排相關的操作如下所示

1、CPU通過位址線將位址資訊20h發出2、CPU通過控制線發出埠讀命令,選中埠所在的晶元,並且去通知它,將要從中讀取資料3、埠所在的晶元將20h埠中的資料通過資料線傳入CPU

從埠寫入乙個位元組的資料,比如說從20h埠寫入乙個位元組的資料

out 20h,al

需要注意的是在in和out指令當中,只能使用ax或者是al來存放從埠中讀入的資料或者要傳送到埠中的資料,訪問8位的埠的時候需要使用的就是al,訪問16位埠的時候就是用的是ax

3樓:快刀老五

兩個埠雖然文字描述相同,但實際上是完全不同的東西。

網路中所說的埠是TCP/IP協議的一部分,是軟體(作業系統呼叫相關網路協議的服務程式)實現的。

而彙編裡所說的埠,是硬體實現的,比如IN OUT 等彙編語句,會告訴CPU應該去什麼實體地址讀寫資料。

4樓:蹦蹦騎士

網路的埠是乙個邏輯概念,並不是物理概念,就和你的電子郵箱位址一樣雖然王爽在書中將暫存器比作埠,但是其實他們完全是不搭邊的東西。

CPU內部的暫存器相當於乙個乙個倉庫的實體,用於存放程式臨時的資料。

而TCP/UDP的埠是 TCP/UDP協議中用於資料報身份識別的一種方式方法。

JMP指令的轉移位址是暫存器定址或暫存器間接定址時,基本操作是什麼?

rayhunter jmp 有兩種常見的定址,一種是間接定址,一種直接定址。間接 jmp relN,彙編指令運算元 EB,E9 RIP RIP offset,間接定址,不直接設定PC值,將當前PC值加上一定的偏移量 直接 JMP r m,彙編指令運算元,FF 直接定址,設定PC的值,不是加乙個偏移量...

CPU暫存器到底有多大?《深入理解計算機系統》說大概有幾百位元組,可是彙編課上卻說理論上有64kb

這個因CPU廠家 型號不同不盡相同,得具體問題具體分析。就像你買車,不同廠家的車發動機型號氣缸數不盡相同,即使是同廠家同型號車也有不同的配置導致氣缸數不一樣。所以你想確定到底有多少,你先選定一片CPU然後去他們公司官網上去找datasheet,裡面會有詳盡的硬體配置資訊. starwlstar 沒有...

現代CPU的暫存器以及暫存器檔案是怎麼做的,應該不是D觸發器做的吧?

超級飛俠 籠統的說,看暫存器的多少而定。有些處理器的暫存器很多,很可能使用RAM來實現 有些比較少暫存器的會傾向於用觸發器實現。至於暫存器檔案 這個概念隱含有比較多的memory空間 幾乎沒有使用觸發器來實現的。這種情況下,相比RAM,DFF占用的物理面積太大,功耗太大了。晶元的成本直接跟面積相關。...