舉例說明在匯編語言中,"[]"的用法
更新時間: 2007-05-28 16:04:06來源: 粵嵌教育瀏覽量:824
"[]"的用法在"常見問題"已經有所說明,引用如下:
1、push dword ptr [024c1100] 壓棧024c1100值的雙字
2、cmp eax,[ebp+14] eax-ebp+14的有效值,不保留值,主要看標志位
3、cmp byte ptr [eax],46 字節(jié)型eax-46,看標志位
4、lea eax,[edx-02] 把edx-02的有效值(一個地址值)給eax
5、mov ecx,[edx+08] edx+8值作為地址,此地址所指向的值給ecx
我再補充幾例我遇到的情況,參考了一些資料,以及我個人的理解.
-------------------------------------------------------------------------------
mov指令中用到"[]"
1--mov [edi], eax ----把eax的值(dword)賦給位于內存地址edi處的值
2--mov [bp-02], dx ---把dx的值(word)賦給位于內存地址bp-02處的值
3--mov esi,[BP+14] ---把位于內存地址BP+14的dword大小的值移入esi寄存器
4--mov eax, dword ptr [ebp-04]---把位于內存地址ebp-04的dword大小的值移入eax寄存器
5--mov eax, dword ptr[0000003Ah]--把位于內存地址3A的dword大小的值放入eax寄存器
6--mov cl, byte ptr [34h]--把位于內存地址34的byte大小的值放入cl寄存器
7--mov dx, word ptr [3Eh]--把位于內存地址3E的word大小的值放入dx寄存器
8--mov eax,[00403045h] --從內存地址403045讀取一個32位的值
9--mov al, byte ptr [eax+ecx]--把位于內存地址eax+ecx的byte大小的值放入al寄存器
綜括號"[]"用來從括號間的內存地址處取值,沒有括號就只是這個值,寄存器和內存地址也可以.
10--mov cx,[eax]--把位于內存地址eax的word大小的值移入cx寄存器
在mov cx, [eax]中,處理器會先查看eax裝有什么值(=內存地址),然后在那個內存地址中有什么值,并把這個word(16位,因為目標-cx-是個16位寄存器)移入cx。
-------------------------------------------------------------------------------
cmp指令中用到"[]"
1--cmp dword ptr [ebp-04], 00000007--把位于內存地址ebp-04的dword大小的值與00000007比較
2--cmp byte ptr [si], 00 --把位于內存地址si的byte大小的值與00比較
-------------------------------------------------------------------------------
lea指令中用到"[]"
1--lea di, [bp-22] ----把bp-22的有效值(=內存地址)給di
-------------------------------------------------------------------------------
test指令中用到"[]"
1--test byte ptr [bx+08FD]
--將位于內存地址bx+08FD處的byte大小的值邏輯與,判斷運算結果是否為00
推薦閱讀
- ·Linux字符設備驅動框架解析:file_operations的核心作用與實現(xiàn)
- ·廣東朝歌數碼科技股份有限公司專場招聘會
- ·深化產教融合,共筑技能人才培養(yǎng)新生態(tài) —— 廣州華立學院到訪粵嵌從化校區(qū)為深化產教
- ·校企合作新突破 | 粵嵌科技與三亞學院共探產教融合新路徑
- ·粵嵌科技入選國家級職業(yè)數字展館聯(lián)合建設單位,賦能計算機程序設計員高技能人才培養(yǎng)
- ·嵌入式實時操作系統(tǒng)的性能優(yōu)化與實現(xiàn)路徑
- ·校企攜手賦能教育!粵嵌科技助力海南科技職業(yè)大學探索 AGI 時代教學新范式
- ·嵌入式系統(tǒng)中的低功耗設計策略與實現(xiàn)路徑
- ·深圳市軒宇軟件開發(fā)有限公司專場招聘會
- ·嵌入式系統(tǒng)中的代碼空間優(yōu)化:策略與實踐