- 定義:數據傳送是計算機中最基本、最重要的一種操作。數據傳送指令負責把數據、地址或立即數傳送到寄存器或存儲單元中。除標誌寄存器傳送指令外,均不影響標誌位;
通用數據傳送指令MOV
- 格式:
MOV OPRD1,OPRD2
- 功能:將源操作數( OPRD2 )傳送入目的地址,源地址內容不變;
- 注意:
(1)MOV指令不破壞源操作數內容;
(2)MOV指令不允許從存儲單元直接傳送到存儲單元;
(3)源操作數和目的操作數長度應該相等;
(4)立即數不能做目的操作數;
(5)段寄存器CS不可以做目的操作數;
(6)對段寄存器賦值時,源操作數可以用寄存器或存儲單元;
數據交換指令XCHG
- 格式:
XCHG OPD,OPS
- 功能:將源操作數與目的操作數中的內容互換;
- 注意:
(1)交換隻能在通用寄存器間、通用寄存器與存儲器間進行;
(2)兩個存儲器之間不能交換數據;
(3)段寄存器不能作爲操作數;
(4)必須有一個操作數是寄存器;
有效地址傳送指令LEA
- 格式:
LEA r16,mem
- 功能:將源操作數的有效地址傳送至指定的16位通用寄存器中
- 注意:
(1)指令中“r16”常用的寄存器是BX、BP、SI、DI,一般不使用其他寄存器;
(2)源操作數mem是一個存儲器操作數,常用的是變量名。本條指令常被描述爲“取變量的偏移地址”,屬常用指令;
進棧與出棧指令PUSH/POP
- 格式:
PUSH SRC
POP DST
- 將堆棧指針SP減2,操作數SRC入棧。將堆棧指針SP加2,操作數DST加上;
- 特點:指令操作結果不影響標誌寄存器;
- 注意:
(1)是一單操作數指令,且只能是通用寄存器操作數、內存操作數;
(2)由於堆棧以字方式編址,操作數必須是字(16位)操作數;
(3)內存操作數可以用任意一種有效的尋址方式表示
(4)操作數可以是段寄存器, (POP指令CS除外)