我很抱歉這個難以理解的標題 - 我無法彌補一個更好的。
我想學習程序集(AT & T)並且有關於寄存器的問題:
是否每個寄存器名稱都訪問完全不同和獨立的內存?或者他們是否允許訪問一個寄存器的特定小部分,並因此尋址相同的內存?例如:al是尋址ax的最低8位,eax & rax,以便修改ah修改ax的位9-16,eax & rax?或者是啊,al,ax,eax & rax所有不同的獨立寄存器?
在此先感謝
莫里茨CPU註冊個人或尋址部分
回答
寄存器使用某種類型的稱爲觸發器的電子週期,觸發器是存儲0或1並保持其存儲的週期。一個N大小的寄存器是一組N個觸發器。觸發器看起來像這樣:
- 時鐘:是一個觸發器,當它被激活的數據被傳遞,所以沒有數據,0或1,由上升的存儲。它由CPU中的控制單元控制。
- 輸入:是1位微小線路的輸入,在觸發器中存儲0或1。
- 輸出:輸出可以讀取數據的位置。
在32位寄存器中,這32箇中有32位輸入和32位輸出的一個塊被對準:
通知,在該寄存器不存在子寄存器,像eax
,ax
,ah
,al
。我想英特爾球員不得不用4位時鐘,而不是1爲:
- 第一個時鐘,激活所有的32位觸發器,
eax
。 - 第二個時鐘,只激活較低的16位觸發器,
ax
。 - 第三個時鐘,只激活第二個8位,
ah
。 - 第四個時鐘,只激活前8位,
al
。
像(8 FF,8個觸發器,並且點表示線路連接有):
現在,當所述處理器解碼指令,它可以告訴哪個指令您想和您註冊目標,觸發它的時鐘,使用指令的操作碼:
[b0] ff mov $0xff, %al
[b4] ff mov $0xff, %ah
[66 b8] ff ff mov $0xffff, %ax
[b8] ff ff ff ff mov $0xffffffff, %eax
的物業可能會有所不同,但原理是一樣的。你可以在任何邏輯設計或計算機體系結構書中閱讀關於這個東西的更多信息,但你不需要它在程序集中啓動程序,但它可以幫助你瞭解東西的工作原理。
只是要清楚:寄存器做沒有駐留在內存中,並沒有一個地址。
是的,AX
是EAX
寄存器的低16位。 AH
和AL
是來自AX
的較高和較低的8位。這是所有具有不同名稱的單個寄存器,用於訪問它的不同方式。這是用於x86:
圖片從:http://www.c-jump.com/CIS77/CPU/x86/lecture.html#X77_0070_gp_registers
謝謝你的好解釋和圖像。你能告訴它適用於x86_64 RAX(etc ..)寄存器嗎? –
@MoritzPetersen是的,它也適用於64位寄存器以及 – jalf
除了通用寄存器部件之間的重疊時,mm
寄存器別名x87堆棧,和xmm
寄存器重疊ymm
寄存器(其中適用)。
- 1. 部署或註冊失敗
- 2. 清理部分註冊
- 3. Autofac - 註冊(部分)Open Generic。
- 4. 尋求一個「弱的Lua註冊表」
- 5. 尋找C#註冊表類
- 6. django註冊網址
- 7. Wordpress多人註冊
- 8. 描述和註冊旁邊eachother:2部分內div,1部分2 divs或?
- 9. 是否有Windows註冊表「字典」,解釋了Windows註冊表的整個(或大部分)?
- 10. 爲任何cpu部署應用程序。閱讀HKLM註冊表
- 11. rails設計 - 多個註冊網址
- 12. 將div分成兩部分,用於多個註冊表單
- 13. 會員「是-A」人或人「有-A」註冊
- 14. PHP註冊個人資料信息
- 15. Web API個人帳戶註冊用戶
- 16. 註冊表中的個人照片WordPress
- 17. LLDB - 評估地址註冊
- 18. 註冊表的MAC地址
- 19. 註冊變量地址
- 20. WordPress註冊與用戶註冊分離
- 21. 外部JavaScript註冊
- 22. 如何在運行部分之前處理註冊表部分?
- 23. 防止「註冊機器人」?
- 24. 從主機名獲取註冊人地址?
- 25. Chromecast設備註冊是否會接受私人網址?
- 26. 註冊的IP地址,但不包括機器人
- 27. 尋找域名是否已經註冊?
- 28. 使用ROW_NUMBER() - 尋找最大註冊
- 29. 註冊服務並尋找服務
- 30. Verilog註冊分配?
謝謝 - 這使得它更容易理解。記憶是否以相同的方式工作? –
@MoritzPetersen不完全一樣,一般來說,存儲器具有用於將數據寫入位單元的地址的輸入端口,用於讀取和寫入的輸出以及用於讀取和寫入的時鐘,存儲器的類型很多,每種存儲器都以不同的方式存儲存儲器單元,您可以查找*內存數組*或查看本教程的[幻燈片](https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxkcmFib3VlbG1hYXR5fGd4OjFiMWI5MGYyNDBkZjE3N2M)中的內存數組部分,這對我幫助很大。 – 2013-11-03 17:10:29