日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CSAPP:第三章程序的机器级表示1

發(fā)布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSAPP:第三章程序的机器级表示1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CSAPP:程序的機器級表示1

關鍵點:數(shù)據(jù)格式、操作數(shù)指示符。

數(shù)據(jù)格式訪問信息操作數(shù)指示符舉例說明

數(shù)據(jù)格式

??術語字(word)表示16位數(shù)據(jù)類型,32位數(shù)為雙字(double words),64位數(shù)為四字(quad words)。圖3-1給出了c語言的數(shù)據(jù)類型在x86-64中的大小。在64位機器中標準int為雙字,指針為8字。
??不通數(shù)據(jù)類型產(chǎn)生的匯編代碼后綴如圖所示。movb(傳送字節(jié))、movw(傳送字)、movl(傳送雙字)、movq(傳送四字)

訪問信息

??一個x86-64的中央處理單元(CPU)包含一組16個存儲64位值的通用目的寄存器,這些寄存器用來存儲整數(shù)數(shù)據(jù)和指針,圖3-2顯示了這16個寄存器。

  • 8位:%al、%bl… (movb)
  • 16位:%ax、%bx…(movw)
  • 32位:%eax、%ebx…(movl)
  • 64位:%rax、rbx…(movq)

操作數(shù)指示符

??大多數(shù)指令有一個或者多個操作數(shù),指出執(zhí)行一個操作中要使用的源數(shù)據(jù)值,以及放置結果的目的位置。各種不通的操作數(shù)可以被分為三種類型:

  • 立即數(shù):用來表示常數(shù)值。書寫方式為($0x123)。
  • 寄存器:表示某個寄存器的內容,16個寄存器的低位1字節(jié)、2字節(jié)、4字節(jié)或者8字節(jié)中的一個作為操作數(shù)這些字節(jié)分別對應于8位、16位、32位和64位。在圖3-3中用表示任意寄存器a,用引用來表示它的值。
  • 內存引用:根據(jù)計算出來的地址(通常稱為有效地址)訪問某個內存值。我們用符號表示存儲在內存中從地址Addr開始的b個字節(jié)引用。
    ??如圖3-3所示,有不通的尋址方式,允許不通形式的內存引用。表示最常用的形式。這樣的引用包括四個部分,一個立即數(shù)偏移、一個基址寄存器,一個變址寄存器和一個比例因子,這里的必須是1、2、4或者8。基址和變址寄存器必須是64位寄存器。有效地址計算為:

舉例說明

操作數(shù)類型格式操作數(shù)值尋址方式
%rax寄存器:RaR[Ra]:0x100寄存器尋址
0x104存儲器:ImmM[Imm]:0xAB絕對尋址
$108立即數(shù):$ImmImm:108立即數(shù)尋址
(%rax)存儲器:(Ra)M[R[Ra]]:0xff間接尋址
4(%rax)存儲器:Imm(Rb)M[Imm+R[Rb]]:0xAB基址+變址尋址
9(%rax,%rdx)存儲器:Imm(Rb,Ri)M[Imm+R[Rb]+R[Ri]]:0x11變址尋址
0xFC(,%rcx,4)存儲器:Imm(,Ri,s)M[Imm+R[Ri]*s]:0xff比例變址尋址
(%rax,%rdx,4)存儲器:(Rb,Ri,s)M[R[Rb]+R[Ri]*s]:0x11比例變址尋址

轉載于:https://www.cnblogs.com/ywx123/p/9903775.html

總結

以上是生活随笔為你收集整理的CSAPP:第三章程序的机器级表示1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。