一條指令的定址方式決定了這個操作如何利用指令中所攜帶的資料
去尋找真正的運算元據。這裡,按最直觀的理解分做4大類。
(1)立即定址:真正的運算元就包含在指令當中。
mov eax,1
這條指令的寫法就是立即定址,運算元就是1,指令的含義是把1賦給eax。
(2)暫存器定址:運算元據在暫存器內。
mov eax,ebx
這條指令的寫法就是暫存器定址,運算元放在ebx內,指令的內含義是把ebx
內的資料賦給eax。
mov eax,[0x1000]
這條指令的寫法就是直接定址,運算元放在0x1000指向的記憶體位址內,指令的含義
是把位址為0x1000的資料賦給eax。
乙個暫存器讀取,也可能是把某幾個暫存器中的資料相加,等等。
mov eax,【ebx】
含義是把ebx裡的資料作為乙個位址,然後從這個位址得到
資料賦予eax。
mov eax, 【ebx+4】
含義是把ebx裡的資料作為乙個位址,將這個位址加4後得到新位址,從新位址獲取
資料賦給eax。
mov eax, 【ebx+edx】
含義把ebx裡的資料與edx的資料之和作為位址,從這個
位址獲取資料賦給eax。
mov eax,【ebx+ecx*4+4】
含義把ebx裡的資料與ecx*4的資料之和作為位址,將這個位址加上4後得到新位址,從
新位址獲取資料賦給eax。
這裡ecx*4並非表示cpu在做定址操作的時候可以同時做乘法,而只是將ecx擴大了4倍,
表示這個陣列元素都是32位長整數。
寫在[ ] 內的最多只能是3個部分的和,你可以理解為基址、變址和常數偏移。
ARM彙編指令學習之定址方式
arm處理器共有9中定址方式 1.暫存器定址 運算元的值在暫存器中,指令執行時直接取出暫存器的值來操作 mov r1,r2 r2 r1 sub r0,r1,r2 r1 r2 r0 2.立即定址 mov r0,0xff00 0xff00 r0 subs r0,r0,1 r0 1 r0 3.暫存器移位定...
彙編 定址方式
定址方式 1立即定址方式 運算元包含在指令中,作為指令的一部分,跟在操作碼後存放在 段。這種運算元稱為立即數,可以是16位,也可以是8位。前者按照高高低低原則存放。例子 mov ax,1234h 2暫存器定址方式 運算元在cpu內部的暫存器中,指令中指定暫存器號。對於16位運算元,暫存器可以是ax,...
彙編 定址方式
定址方式 1立即定址方式 運算元包含在指令中,作為指令的一部分,跟在操作碼後存放在 段。這種運算元稱為立即數,可以是16位,也可以是8位。前者按照高高低低原則存放。例子 mov ax,1234h 2暫存器定址方式 運算元在cpu內部的暫存器中,指令中指定暫存器號。對於16位運算元,暫存器可以是ax,...