硬編碼學習(五)

2021-07-02 19:43:10 字數 1570 閱讀 5766

不確定長度編碼

0x88

mov eb,gb

0x89

mov ev,gv

0x8a

mov gb,eb

0x8b

mov gv,ev

最短是2個位元組,gb代表通用單位元組暫存器(al到bh)

gv代表通用雙/四位元組暫存器

eb/ev代表記憶體位址或暫存器

8800

0000

0000

00(mod) 000(opcode/reg) 000(r/m)

00 (00

0111

10)000(硬編碼或暫存器:8個暫存器 000~111)

000(r/m 暫存器或記憶體單元)

0x88

00000

0000x00

mov byte ptr ds:[eax],al

00000

0010x01

mov byte ptr ds:[ecx],al

00000

0100x02

mov byte ptr ds:[edx],al

00000

0110x03

mov byte ptr ds:[ebx],al

-------沒按要求給出 下

00000

1000x04

mov byte ptr ds:[esp],al

00000

1010x05

mov byte ptr ds:[ebp],al

100101 這兩個數要做特殊處理

--------沒按要求給出 上

00000

1100x06

mov byte ptr ds:[esi],al

00000

1110x07

mov byte ptr ds:[edi],al

00001

0000x08

mov byte ptr ds:[eax],cl

00010

0000x10

mov byte ptr ds:[eax],dl

例題:0x88

0x23

23= 0010

0011

00100

011mov byte ptr ds:[ebx],ah

0000 al

1001 cl

2010 dl

3011 bl

4100 ah

5101 ch

6110 dh

7111 bh

01100

0110x63

mov byte ptr ds:[ebx+3c],ah 加乙個位元組

10100

0110xa3

mov byte ptr ds:[ebx+12345678],ah 加四個位元組

11100

0110xe3

mov bl,ah 兩個暫存器

硬編碼 and 軟編碼

硬編碼 什麼是 硬編碼 硬 顧名思義,就是死板,一次性的意思。其定義也就是 將可變變數用乙個固定數值表示 這種方式在編碼的過程中會導致變數很難修改。因此通常採用的方式都是軟編碼的方式,軟編碼 通過乙個標記取代變數名稱,而這個標記的值是可以不斷變化的。但標記名稱卻是不變的,從而實現了 以不變應萬變 硬...

硬編碼和軟編碼

1 電腦科學中bai,只有硬編碼 hardcode 以及非硬編碼,有人也成為 軟編碼 2 硬編碼和軟dao編碼的區別是 軟編碼可以在執行時確定,修改 而硬編碼是不能夠改變的。所有的硬編碼和軟編碼的區別都可以有這個意思擴充套件開。3 在電腦程式或文字編輯中,硬編碼是指將可變變數用乙個固定值來代替的方法...

Android 硬編碼設定TextView字型大小

使用如下 時,發現字型大小不會變大,反而會變小 size int mtext.gettextsize 1 mtext.settextsize size 後來發現gettextsize返回值是以畫素 px 為單位的,而settextsize 是以sp為單位的,兩者單位不一致才造成這樣的結果。這裡可以用...