資料傳送指令

2021-08-25 07:11:37 字數 2580 閱讀 2498

資料傳送指令共有29條,資料傳送指令一般的操作是把源運算元傳送到目的運算元,指令執行完成後,源運算元不變,目的運算元等於源運算元。如果要求在進行資料傳送時,目的運算元不丟失,則不能用直接傳送指令,而採用交換型的資料傳送指令,資料傳送指令不影響標誌c,ac和ov,但可能會對奇偶標誌p有影響。

以累加器a為目的運算元類指令(4條)

這4條指令的作用是把源運算元指向的內容送到累加器a。有直接、立即數、暫存器和暫存器間接定址方式:

mov a,data ;(data)→(a) 直接單元位址中的內容送到累加器a

mov a,#data ;#data→(a) 立即數送到累加器a中

mov a,rn ;(rn)→(a) rn中的內容送到累加器a中

mov a,@ri ;((ri))→(a) ri內容指向的位址單元中的內容送到累加器a

以暫存器rn為目的運算元的指令(3條)

這3條指令的功能是把源運算元指定的內容送到所選定的工作暫存器rn中。有直接、立即和暫存器定址方式:

mov rn,data ;(data)→(rn) 直接定址單元中的內容送到暫存器rn中

mov rn,#data ;#data→(rn) 立即數直接送到暫存器rn中

mov rn,a ;(a)→(rn) 累加器a中的內容送到暫存器rn中

以直接位址為目的運算元的指令(5條)

這組指令的功能是把源運算元指定的內容送到由直接位址data所選定的片內ram中。有直接、立即、暫存器和暫存器間接4種定址方式:

mov data,data ;(data)→(data) 直接位址單元中的內容送到直接位址單元

mov data,#data ;#data→(data)立即數送到直接位址單元

mov data,a ;(a)→(data) 累加器a中的內容送到直接位址單元

mov data,rn ;(rn)→(data)暫存器rn中的內容送到直接位址單元

mov data,@ri ;((ri))→(data) 暫存器ri中的內容指定的位址單元中資料送到直接位址單元

以間接位址為目的運算元的指令(3條)

這組指令的功能是把源運算元指定的內容送到以ri中的內容為位址的片內ram中。有直接、立即和暫存器3種定址方式:

mov @ri,data ;(data)→((ri)) 直接位址單元中的內容送到以ri中的內容為位址的ram單元

mov @ri,#data ;#data→((ri)) 立即數送到以ri中的內容為位址的ram單元

mov @ri,a ;(a)→((ri)) 累加器a中的內容送到以ri中的內容為位址的ram單元

查表指令(2條)

這組指令的功能是對存放於程式儲存器中的資料**進行查詢傳送,使用變址定址方式:

movc a,@a+dptr ;((a))+(dptr)→(a) **位址單元中的內容送到累加器a中

movc a,@a+pc ;((pc))+1→(a),((a))+(pc)→(a)**位址單元中的內容送到累加器a中

累加器a與片外資料儲存器ram傳送指令(4條)

這4條指令的作用是累加器a與片外ram間的資料傳送。使用暫存器定址方式:

movx @dptr,a ;(a)→((dptr)) 累加器中的內容送到資料指標指向片外ram位址中

movx a, @dptr ;((dptr))→(a) 資料指標指向片外ram位址中的內容送到累加器a中

movx a, @ri ;((ri))→(a)暫存器ri指向片外ram位址中的內容送到累加器a中

movx @ri,a ;(a)→((ri)) 累加器中的內容送到暫存器ri指向片外ram位址中

堆疊操作類指令(2條)

這4類指令的作用是把直接定址單元的內容傳送到堆疊指標sp所指的單元中,以及把sp所指單元的內容送到直接定址單元中。這類指令只有兩條,下述的第一條常稱為入棧操作指令,第二條稱為出棧操作指令。需要指出的是,微控制器開機復位後,(sp)預設為07h,但一般都需要重新賦值,設定新的sp首址。入棧的第乙個資料必須存放於sp+1所指儲存單元,故實際的堆疊底為sp+1所指的儲存單元。

push data ;(sp)+1→(sp),(data)→(sp) 堆疊指標首先加1,直接定址單元中的資料送到堆疊指標sp所指的單元中

pop data ;(sp)→(data)(sp)-1→(sp),堆疊指標sp所指的單元資料送到直接定址單元中,堆疊指標sp再進行減1操作

交換指令(5條)

這5條指令的功能是把累加器a中的內容與源運算元所指的資料相互交換。

xch a,rn ;(a)←→(rn)累加器與工作暫存器rn中的內容互換

xch a,@ri ;(a)←→((ri))累加器與工作暫存器ri所指的儲存單元中的內容互換

xch a,data ;(a)←→(data)累加器與直接位址單元中的內容互換

xchd a,@ri ;(a3-0)←→((ri)3-0)累加器與工作暫存器ri所指的儲存單元中的內容低半位元組互換

swap a ;(a3-0)←→(a7-4)累加器中的內容高低半位元組互換

16位資料傳送指令(1條)

這條指令的功能是把16位常數送入資料指標暫存器。

mov dptr,#data16 ;#datah→(dph),#datal→(dpl)16位常數的高8位送到dph,低8位送到dpl

源文件 <

>

資料傳送指令

1 mov mov ds,2000h 語法錯誤,不能用立即數給段暫存器賦值。應該為 mov ax,2000 mov ds,ax mov word ptr di 2000h ptr 是屬性運算子,功能為修改運算元的型別。word ptr 的作用是將運算元的型別 設定為字型別。mov di 04ah 語...

movs 資料傳送指令

1 指令編碼格式 mov指令是最簡單的arm指令,執行的結果就是把乙個數n送到目標暫存器rd,其中n可以是暫存器,也可以是立即數。mov指令多用於設定初始值或者在暫存器間傳送資料。指令的編碼格式如圖5.1所示。圖5.1 mov指令編碼格式 mov指令將移位碼 shifter operand 表示的資...

8086彙編 資料傳送指令

於ibm pc組合語言程式設計 沈美明 溫冬嬋 編著 負責把 資料,位址或立即數傳送到暫存器或者儲存單元中.1.通用資料傳送指令 mov,push,pop,xchg mov指令在cpu內或cpu和儲存器之間傳送位元組或字,目的運算元不允許使用立即數,也不能用cs暫存器,不允許用mov指令在兩個儲存單...