官术网_书友最值得收藏!

2.6.2 間接尋址

間接尋址使用寄存器來指定地址。所用寄存器包括16位通用寄存器(如[ax])和32位通用寄存器(如[eax])。但是,8位通用寄存器(如al、bh等)和特殊寄存器不能用于尋址。

示例:指針

許多編程語言都使用指針(pointer)的概念,有些是直接使用,有些則在幕后運行。直接使用和操作指針是C/C++數據類型進行間接尋址的一個例子。C程序中可能會有這樣的代碼:int x=1; int*p=&x;。在這里,指針p被設定為指向x。即使你對C語言不熟悉,也不用擔心,你只需知道p保存的是x在內存中的地址。

然而,p的值可能會改變以指向其他事物,因此它的目標地址并不固定。要在匯編中訪問p指示的值,首先要將p加載到一個寄存器中,然后用這個寄存器來查找我們想要的值。這一過程在以下的x86指令中有所展示:

主站蜘蛛池模板: 正阳县| 塔城市| 禹城市| 瑞金市| 兴国县| 晋州市| 合作市| 松滋市| 威远县| 垦利县| 博客| 确山县| 喀喇| 铁力市| 昌图县| 栾川县| 福海县| 孟村| 辽中县| 东安县| 博兴县| 盐亭县| 乐山市| 寿宁县| 河间市| 西乌| 玉溪市| 临邑县| 天津市| 巨野县| 左云县| 崇文区| 大关县| 淳安县| 甘南县| 新郑市| 喀什市| 利辛县| 阿鲁科尔沁旗| 邹城市| 玉环县|