arm64彙編篇 014 指標的運算

2021-08-20 15:17:20 字數 727 閱讀 1411

指標的寬度

1.寫入下面**真機執行:

void func()
2.得出結果為8即指標在64位中的寬度為8個位元組。

指標的運算

void func()
2.解析:

1.a為指標

2.將100強轉(int *)指標賦值給a

3.a自增

4.列印a

得出結果為104。

由此得出:指標的運算結果由器所指向的資料型別寬度決定(資料型別看其去掉乙個*看左邊的型別)

3.由此得將上文換成char *結果為101:

void func()
5.如果在char* 後面再加個*是多少呢?

答案是108,char *去掉乙個*後為char 為乙個指標,指標的寬度為8個位元組所以輸出結果為108。

void func()
2.輸出結果為:

-25

3.解析:

1). 指標的計算的結果由其資料型別的寬度決定的

2). int型別的寬度為4

3). 最終結果為-100 / 4 為-25(不討論溢位情況)

總結

Arm64彙編 BFXIL指令

下屬專案 測試用例數量 問題背景無0 解決方法無1 總結無0復現一套加密演算法時,遇到了bfxil指令。ida中顯示情況如下 bfxil w9,w16,2 2 ida使用fn f5操作得到偽 如下 v4 v4 v8 0xfc 2 3 其中v4就是w9,v8 0xfc 這個整體就是w16,定義如下 u...

arm64彙編篇 12Switch底層執行原理

1 假設switch語句的分支比較少的時候 例如3,少於4的時候沒有意義 沒有必要使用此結構,相當於if。2 各個分支常量的差值較大的時候,編譯器會在效率還是記憶體進行取捨,這個時候編譯器還是會編譯成類似於if,else的結構。三個及以下case 1.建立工程在main函式頁面寫下如下 void f...

vc 學習篇(四 指標

今天看了一本關於vc 的書,上面將的是一些簡單的 以前沒有注意以為很簡單,在家沒有事情可做,就對這些東西重新詳細的看了一邊,發現有一些問題是需要注意的,比如 指標。以前認為指標很少我能用上,但是現在才發現原來這個東西也是如此的好用,所以在網上找了一些資料,溫習一下。c c 中的指標 在學習c c 過...