傳送指令也是我們?cè)诰幊踢^(guò)程中經(jīng)常會(huì)要使用到的指令,我們也要掌握好它。所謂的傳送指令就是把一個(gè)存儲(chǔ)單元(輸入端)的數(shù)值復(fù)制到另一個(gè)存儲(chǔ)單元(輸出端)里面,我們的傳送指令經(jīng)常是用于對(duì)存儲(chǔ)單元的清零或者程序的初始化等場(chǎng)合。
傳送指令有單個(gè)數(shù)據(jù)傳送指令MOV,以及塊傳送指令BLKMOV,根據(jù)數(shù)據(jù)的類型它又可以分為字節(jié)、字、雙字或者實(shí)數(shù)等這幾種情況,不過(guò)要注意的是塊傳送指令沒(méi)有實(shí)數(shù)類型的指令。除此之外,還有字節(jié)交換指令SWAP,字節(jié)傳送立即讀指令和字節(jié)傳送立即寫指令,當(dāng)然這些指令用的相對(duì)較少,對(duì)這幾個(gè)指令我們就先了解一下。
傳送指令MOV的輸入IN可以是常數(shù)、IB、QB、VB、SMB、LB、SB,輸出可以是IB、QB、VB、SMB、LB、SB,但是要注意輸出是沒(méi)有常數(shù)的,如果輸出是常數(shù),那么是會(huì)提示錯(cuò)誤的。
除此之外,我們?cè)谑褂脗魉椭噶畹臅r(shí)候,要注意的是輸入和輸出的數(shù)據(jù)類型是要一致的,如果不一致,同樣也是會(huì)提示錯(cuò)誤的。
那么數(shù)據(jù)塊傳送指令BLKMOV,它是將字節(jié)或字或雙字?jǐn)?shù)目N從輸入存儲(chǔ)單元傳送到輸出存儲(chǔ)單元,也就是說(shuō)塊傳送指令它是批量傳送的,注意N的范圍是1~255,使用的時(shí)候要注意不能超限。那么下面這條指令也就是將VB0~VB9的里面的數(shù)據(jù)傳送到VB50~VB59里面。
然后再學(xué)習(xí)一下字節(jié)交換指令SWAP,字節(jié)交換指令的功能是交換字的最高位字節(jié)和最低位字節(jié),下面就舉個(gè)例子來(lái)說(shuō)明一下指令的用法,那么以下這條指令是對(duì)VW0進(jìn)行字節(jié)交換,因?yàn)閂W0=VB0 VB1,它是低地址在前高地址在后的,執(zhí)行了指令之后則變成VB1 VB0,變?yōu)楦叩刂吩谇暗偷刂吩诤罅恕?/P>
下面再繼續(xù)看一下字節(jié)傳送立即讀指令和字節(jié)傳送立即寫指令,它跟前面講到的立即指令是一樣的,而且它也是只針對(duì)I/O地址的。字節(jié)傳送立即讀指令是對(duì)輸入I進(jìn)行讀操作,字節(jié)傳送立即寫指令是對(duì)輸出Q進(jìn)行寫操作。
那么今天就學(xué)習(xí)了傳送指令,傳送指令也還算是比較簡(jiǎn)單的是吧?那么之后就要學(xué)習(xí)一些相對(duì)難一些的指令了,你準(zhǔn)備好了嗎?