匯編指令入門級整理 匯編指令( 二 )


我們常說32位和64位CPU指的是數據總線的寬度或數量,寄存器是暫時存儲數據和中間結果的單元 。所以寄存器的位數,也就是處理數據的長度,和數據總線的數量是一樣的,所以32位CPU對應的寄存器也應該是32位的 。
常用寄存器用法
上面提到的八個寄存器都有其特定的用途 。讓我們以32位CPU為例,簡要說明這些寄存器的功能,并在下表中進行排序:
語域EAX、AX、AH和AL的關系
在上面的圖標中,每個常用寄存器后面都有其他名稱,它們是同一寄存器在不同用途下的不同名稱 。例如,在32位CPU上,e AX是32位寄存器,而AX是EAX的低16位,AH是AX的高8位,AL是AX的低8位 。它們的對比關系如下:
00000000 00000000 00000000 00000000|===============EAX===============|---4個字節|======AX=======|---2個字節|==AH===|-----------1個字節|===AL==|---1個字節
匯編語言指令
最后,我們討論常見的組裝說明 。因為linux和windows下的匯編語法有些不同,我們先來學習windows下的匯編指令,然后對比一下兩者的區別 。
數據移動指令
算術運算指令
邏輯運算指令
循環控制指令
自反序
Linux和windows匯編的區別
如前所述,linux和windows下的匯編語法是不同的 。事實上,這兩種語法差異和系統差異之間并沒有絕對的關系 。一般在linux上使用gcc/g++編譯器,而在windows上使用微軟的cl,即MSBUILD 。因此,不同的編譯器會產生不同的代碼 。gcc下采用AT T的匯編語法格式,MSBUILD采用英特爾的匯編語法格式 。
摘要
匯編指令是機器指令的助記符,與機器指令一一對應 。
at的匯編語法格式與英特爾不同 。
通用登記冊:EAX、EBX、ECX、EDX、電子數據交換、環境信息系統、EBP、特別程序
訪問速度從高到低依次為:寄存器一級緩存二級緩存三級緩存內存硬盤 。
常用的組裝說明:mov、je、jmp、call、add、sub、inc、dec和或
版權聲明:本文系CSDN博主“AlbertS”原創文章,遵循CC 4.0 BY-SA版權協議 。轉載請附上原始來源鏈接和本聲明 。
原文:https://blog.csdn.net/albertsh/article/details/106041560
?華為全球分析師大會:HMS Core全球開發者應用集成的數量加速增長,打造全場景智慧體驗?騰訊人均月薪 8 萬,恍恍惚惚,又被平均了??200 萬年薪請不到!清華姚班到底有多牛?| 原力計劃?量子計算與AI“雙拳”出擊,他們鎖定38種潛在抗疫藥物?我們已經不用AOP做操作日志了!| 原力計劃?國外這三位帥小伙,居然搞了個用比特幣付款、無人機運送的水培沙拉項目?
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人 。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任 。如發現本站有涉嫌抄襲侵權/違法違規的內容,請發送郵件至 2672143071@qq.com 舉報,一經查實,本站將立刻刪除 。

推薦閱讀