成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

網(wǎng)絡(luò)安全編程:x86匯編語言之寄存器

安全
任何程序的執(zhí)行,歸根結(jié)底,都是存放在存儲器里的指令序列執(zhí)行的結(jié)果。寄存器用來存放程序運行中的各種信息,包括操作數(shù)地址、操作數(shù)及運算的中間結(jié)果等。下面來熟悉各種寄存器。

 [[389551]]

任何程序的執(zhí)行,歸根結(jié)底,都是存放在存儲器里的指令序列執(zhí)行的結(jié)果。寄存器用來存放程序運行中的各種信息,包括操作數(shù)地址、操作數(shù)及運算的中間結(jié)果等。下面來熟悉各種寄存器。

1. CPU工作模式

x86體系的CPU有兩種基本的工作模式,分別是實模式和保護模式。

實模式也稱為實地址模式,實現(xiàn)了Intel 8086處理器的程序設(shè)計環(huán)境。該模式被早期的Win 9x和DOS所支持。實模式下可以訪問的內(nèi)存為1MB。實模式可以直接訪問硬件,比如直接對端口進行操作,對中斷進行操作。現(xiàn)在的CPU仍然支持實模式,一是為了與早期的CPU架構(gòu)保持兼容,二是因為所有的x86架構(gòu)處理器都是從實模式引導(dǎo)起來的。

保護模式是處理器主要的工作模式,Linux和Windows NT內(nèi)核的系統(tǒng)都工作在x86的保護模式下。保護模式下,每個進程可以訪問的內(nèi)存地址為4GB,且進程間是隔離的。

2. 基本寄存器

寄存器是CPU內(nèi)部的高速存儲單元,訪問速度比內(nèi)存快得多,而價格也高很多(在單位價格內(nèi),寄存器的價格要比內(nèi)存貴,內(nèi)存要比硬盤貴)。CPU中,常用的寄存器分為4類,分別是8個通用寄存器、6個段寄存器、1個標(biāo)志寄存器和1個指令指針寄存器,如圖1所示。

圖1  x86處理器的基本寄存器

(1)通用寄存器

通用寄存器主要用于各種運算和數(shù)據(jù)的傳送,每個寄存器都可以作為一個32位、16位或8位來使用,如圖2所示。

圖2  通用寄存器示意圖(一)

對于圖2來說,可以將一個寄存器分別當(dāng)8位、16位或32位來使用。EAX寄存器可以存儲32位的數(shù)據(jù)。EAX的低16位可以表示為AX,可以存儲16位的數(shù)據(jù)。AX寄存器又可分為AH和AL兩個8位的寄存器,AH對應(yīng)AX寄存器的高8位,AL對應(yīng)AX寄存器的低8位。

只有數(shù)據(jù)存儲寄存器可以按照這樣的方式進行使用。由圖1可知,數(shù)據(jù)存儲寄存器有EAX、EBX、ECX和EDX 4個。

(2)通用寄存器的使用方式及特殊用途

指針變址寄存器可以按照32位或16位進行使用,如圖3所示。

圖3  通用寄存器示意圖(二)

對于圖3來說,只可以將一個寄存器分為32位或16位進行使用。ESI寄存器可以存儲32位的指針,其中低16位可以表示為SI,存儲16位的指針,但是無法像AX那樣能拆分成高8位和低8位。

各通用寄存器可以使用的方式如圖4所示。

圖4  各通用寄存器可以使用的方式

關(guān)于通用寄存器中有部分寄存器有特殊用途:

① EAX在乘法和除法指令中被自動使用;

② CPU自動使用ECX作為循環(huán)計數(shù)器;

③ ESP尋址堆棧(準(zhǔn)確地講,應(yīng)該是棧,其實“堆”是“堆”,“棧”是“棧”,就如同“刀劍”雖然合起來稱呼,其實是兩種不同的兵器)上的數(shù)據(jù),ESP寄存器一般不參與算數(shù)運算,通常稱為棧指針寄存器;

④ ESI和EDI通常用于內(nèi)存數(shù)據(jù)的高速傳送,被稱為源指針寄存器和目的指針寄存器;

⑤ EBP由高級語言用來引用參數(shù)和局部變量,通常被稱為棧幀基址指針寄存器。

(3)指令指針寄存器

指令指針寄存器EIP是一個32位的寄存器。在16位的環(huán)境中,其名稱為IP。EIP寄存器通常保存著下一條要執(zhí)行的指令的地址。下一條指令的地址為當(dāng)前指令的地址加當(dāng)前指令的長度。

特殊(其實也算不上通常與特殊)情況是當(dāng)前指令為一條轉(zhuǎn)移指令,比如JMP、JE、LOOP等指令,會改變EIP的值,導(dǎo)致CPU執(zhí)行指令產(chǎn)生跳躍性執(zhí)行,從而構(gòu)成分支與循環(huán)的程序結(jié)構(gòu)。

EIP中的值始終在引導(dǎo)CPU的執(zhí)行。

(4)段寄存器

段寄存器被用于存放段的基地址,段是一塊預(yù)分配的內(nèi)存區(qū)域。有些段存放有程序的指令,有些則存放有程序的變量,另外還有其他的段,如堆棧段存放著函數(shù)變量和函數(shù)參數(shù)等。在16位CPU中,段寄存器只有4個,分別是CS(代碼段)、DS(數(shù)據(jù)段)、SS(堆棧段)和ES(附加段)。

在32位CPU中,段寄存器從4個擴展為6個,分別是CS、DS、SS、ES、FS和GS。FS和GS段寄存器也屬于附加的段寄存器。

(5)標(biāo)志寄存器

在16位CPU中,標(biāo)志寄存器稱為FLAGS(有的書上是PSW,即程序狀態(tài)字寄存器)。在32位CPU中,標(biāo)志寄存器也隨之?dāng)U展為32位,被稱為EFLAGS。

關(guān)于標(biāo)志寄存器,16位CPU中的標(biāo)志已經(jīng)滿足于日常的程序設(shè)計所用,這里主要介紹16位CPU中的標(biāo)志。標(biāo)志寄存器如圖5所示。

圖5  16位的標(biāo)志寄存器

圖5說明,標(biāo)志寄存器中的每一個標(biāo)志位只占1位,而16位的標(biāo)志寄存器并沒有全部使用。16位的標(biāo)志寄存器分為兩部分,分別是條件標(biāo)志和控制標(biāo)志。

條件標(biāo)志寄存器說明如下。

① OF(Overflow Flag):溢出標(biāo)志位,溢出時為1,否則為0。

② SF(Sign Flag):符號標(biāo)志,運算結(jié)果為負(fù)時,為1,否則為0。

③ ZF(Zero Flag):零標(biāo)志,運算結(jié)果為0時,為1,否則為0。

④ (Auxiliary carry Flag):輔助進位標(biāo)志,記錄運算時第3位(半字節(jié))產(chǎn)生的進位,有進位時為1,否則為0。

⑤ (Parity Flag):奇偶標(biāo)志,結(jié)果操作數(shù)中1的個數(shù)為偶數(shù)時,為1,否則為0。

⑥ CF(Carry Flag):進位標(biāo)志,產(chǎn)生進位時為1,否則為0。

控制標(biāo)志寄存器說明如下。

① DF(Direction Flag):方向標(biāo)志,在串處理指令中用于控制方向。

② IF(Interrupt Flag):中斷標(biāo)志。

③ TF(Trap Flag):陷阱標(biāo)志。

在日常的使用過程中,較為常用的標(biāo)志有CF、PF、ZF、SF、DF和OF。

16位CPU中的標(biāo)志在32位CPU中繼續(xù)使用,32位擴展了4個新的標(biāo)志位。 

 

責(zé)任編輯:龐桂玉 來源: 計算機與網(wǎng)絡(luò)安全
相關(guān)推薦

2011-01-14 14:08:17

Linux匯編語言

2011-01-14 14:39:32

Linux匯編語言

2011-01-14 14:15:11

Linux匯編語言

2011-01-14 14:22:50

Linux匯編語言

2011-01-14 13:44:45

Linux匯編語言

2012-02-09 09:00:54

匯編語言

2016-10-13 13:23:48

服務(wù)器

2023-09-14 12:35:28

寄存器

2014-12-24 09:41:05

x86C#

2021-03-03 12:20:42

網(wǎng)絡(luò)安全DLL編程

2016-09-22 09:37:14

GCC內(nèi)聯(lián)語法

2012-06-28 10:38:45

Web

2014-03-14 09:58:49

服務(wù)器ARMx86

2011-12-01 11:09:48

AMDx86服務(wù)器英特爾

2021-03-05 13:46:56

網(wǎng)絡(luò)安全遠(yuǎn)程線程

2021-01-26 13:45:03

網(wǎng)絡(luò)安全Winsock編程

2014-09-18 10:33:44

2021-04-14 15:53:58

網(wǎng)絡(luò)安全C語言wcslen

2021-02-21 18:19:43

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全編程創(chuàng)建進程

2021-02-23 10:20:07

網(wǎng)絡(luò)安全進程代碼
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲综合在线一区二区 | 亚洲国产欧美在线人成 | 午夜寂寞影院在线观看 | 成人欧美一区二区三区黑人孕妇 | 91久久精品国产91久久性色tv | 日韩中字幕 | 日韩在线免费电影 | 91在线精品视频 | 欧美在线色 | 久久久精品视频免费看 | 日本久久精品视频 | 91精品国产一区二区在线观看 | 精品www | 综合一区二区三区 | 国产日韩一区二区三免费高清 | 国产精品一区二区三 | 波多野结衣中文字幕一区二区三区 | 波多野结衣亚洲 | 日韩一区二区三区精品 | 欧美成人精品激情在线观看 | 中文字幕av一区 | 欧美日本一区二区 | 老牛嫩草一区二区三区av | 黄视频网址 | 中文字幕日韩欧美一区二区三区 | 91中文字幕在线观看 | 久久久精品网站 | 免费视频成人国产精品网站 | 国产精品大片在线观看 | 欧洲精品在线观看 | 国产精品视频偷伦精品视频 | 91视频在线看 | 自拍视频一区二区三区 | 密色视频 | 日韩国产精品一区二区三区 | 日韩精彩视频 | 99精品欧美一区二区三区 | 操操日| 精品视频一区二区三区 | 在线视频国产一区 | 国产精品日韩欧美一区二区三区 |