學習筆記分享之彙編—2.彙編指令/語法
學習內容:彙編指令/語法:
-
拷貝源操作數到目標操作數:
mov 目標操作數,源操作數
-
源操作數可以是任意單元(r/m/sr/imm) (sr:Segment Register)
-
目標操作數可以是除了立即數之外的任意單元(r/m/sr)
-
操作數的寬度必須前後一致
-
源操作數和目標操作數不能同時為記憶體單元
-
-
加/減/與/或/異或:
🞕 add/sub/and/or/xor 目標操作數,源操作數
-
源操作數可以是r/m/imm
-
目標操作數可以是r/m
-
操作數的寬度除了源操作數是立即數的情況之外(即:立即數可以是任意位)必須前後一致
🞕 非:
- not r/m8 not r/m16 not r/m32
-
-
從指定記憶體中寫入/讀取數據:
mov dword ptr ds:[m],imm //寫
mov r,dword ptr ds:[r] //讀
ptr: Point 代表後面是一個指針 (指針即裡面存的不是普通的值,而是個地址) 在8086中設置4個16位的段暫存器,用於管理4種段: ①數據段---ds(Data Segment):數據段暫存器 ②程式碼段---cs(Code Segment):程式碼段暫存器 ③堆棧段---ss(Stack Segment):堆棧段暫存器 ④附加段---es(Extra Segment):附加段暫存器 BYTE 位元組 = 8(BIT) WORD 字 = 16(BIT) DWORD 雙字 = 32(BIT) 1KB = 1024 BYTE
-
定址公式
(LEA與MOV的區別在於MOV是取地址中的值,而LEA是取地址)
①[imm]形式
讀取記憶體的值 向記憶體中寫數據 讀取記憶體編號 mov r,dword ptr ds:[m] mov dword ptr ds:[m],r/imm lea r,dword ptr ds:[m] ②[r]形式
讀取記憶體的值 向記憶體中寫數據 讀取記憶體編號 mov r’,imm
mov r”,dword ptr ds:[r’]mov r,imm
mov dword ptr ds:[r],immlea r’,dword ptr ds:[r”]
mov r’,dword ptr ds:[r”]③[r+imm]形式
讀取記憶體的值 向記憶體中寫數據 讀取記憶體編號 mov r’,imm
mov r”,dword ptr ds:[r’+imm]