【正文】
data RiAA Ri directAA direct RnA A Rn A O R L)(;))(()(;)()(;)()(;,例 若( A) =C3H,( R0) =55H,執(zhí)行指令 ORL A,R0 之后,( A) =D7H。 前 2條指令的功能是把源操作數(shù)與直接地址指示的單元內(nèi)容相或,結(jié)果送入直接地址指示的單元。 后 4條指令的功能是把源操作數(shù)與累加器 A的內(nèi)容相與,結(jié)果送入累加器 A中。 邏輯運算與循環(huán)類指令( 24條) 邏輯運算指令 可以完成與、或、異或、清 0和取反操作,當(dāng)以累加器 A為目的操作數(shù)時,對 P標(biāo)志有影響; 累加器清 0操作對 P標(biāo)志有影響。而標(biāo)志 CY總是被清 0。 除法 DIV AB ;累加器 A除以寄存器 B 該指令的 功能 是將累加器 A中的無符號 8位二進制數(shù)除以寄存器 B中的無符號 8位二進制數(shù) , 商的整數(shù)部分存放在累加器 A中,余數(shù)部分存放在寄存器 B中 。而標(biāo)志 CY總是被清 0。 ???????????????1RiRi Ri 1directdirect direct 1RnRn Rn 1AA A DEC))(();()(;)(;)(; 乘法 MUL AB ;累加器 A與 B寄存器相乘 該指令的 功能 是將累加器 A與寄存器 B中的無符號 8位二進制數(shù)相乘 ,乘積的低 8位留在累加器A中,高 8位存放在寄存器 B中。 ?這組指令僅 DEC A 影響 P標(biāo)志。 Rn A A R n C Y d ir e c t A A dir e c t C YS U B B A R i A A R i C Y da ta A A da ta C Y? ? ???? ? ???? ? ??? ? ? ??; ( )( )( ); ( )( )( ),; ( )(( ))( ); ( ) ( ) 例 若( A) =C9H,( R2) =54H,( CY) =1,執(zhí)行指令 SUBB A, R2 之后,由于: 即:( A) =74H,( CY) =0,( AC) =1,( OV) =1(位 6有借位,位 7無借位),( P) =0。 OV:若位 6有借位而位 7無借位或位 7有借位而位 6無借位時,( OV) =1。 減法 一、帶借位減 CY:差的位 7需借位時,( CY) =1;否則,( CY) =0。執(zhí)行以下指令: ADD A, R2 DA A 由于( A)= 0010 0011B,即,且( CY)= 1,即 結(jié)果為 BCD數(shù) 123。 十進制調(diào)整指令執(zhí)行后, PSW中的 CY表示結(jié)果的百位值 。 DA A 調(diào)整要完成的任務(wù)是: ( 1)當(dāng)累加器 A中的 低 4位數(shù)出現(xiàn)了非BCD碼( 1010~1111)或低 4位產(chǎn)生進位( AC=1),則應(yīng)在低 4位加 6調(diào)整,以產(chǎn)生低 4位正確的 BCD結(jié)果。 四、十進制調(diào)整 指令的功能是對累加器 A中剛進行的兩個BCD碼的加法的結(jié)果進行十進制調(diào)整。這些指令僅 INC A 影響 P標(biāo)志。 加的進位標(biāo)志 CY的值 是在該指令執(zhí)行之前已經(jīng)存在的進位標(biāo)志的值,而不是執(zhí)行該指令過程中產(chǎn)生的進位 。 例 若( A) =84H,( 30H) =8DH,執(zhí)行指令 ADD A, 30H 之后,由于: 即:( A) =11H,( CY) =1,( AC) =1,( OV) =1( D7有進位, D6無進位),( P) =0。 如:兩個正數(shù)相加結(jié)果為負(fù)數(shù)或兩個負(fù)數(shù)相加結(jié)果為正數(shù)時屬于錯誤結(jié)果,此時( OV) =1。 AC:和的 D3位有進位時,( AC) =1;否則,( AC) =0。算術(shù)運算操作將影響 PSW中的 OV、CY、 AC和 P等。這類指令多數(shù)以 A為源操作數(shù)之一,同時又使 A為目的操作數(shù)。 若( A)= 30H,執(zhí)行指令 SWAP A后,( A)=03H。 )~()~;()~)(()~;(,47A03A A SWAP03Ri03A Ri A XCHD?? 例:若( R0)= 30H,( 30H)= 67H, ( A)= 20H。 1.字節(jié)交換 2. 半字節(jié)交換 XCHD指令 的功能是間址操作數(shù)的低半字節(jié)與 A的低半字節(jié)內(nèi)容互換。 對于單一的 MOV類指令,傳送通常是單向的,即數(shù)據(jù)是從一處(源)到另一處(目的)的拷貝。 四、數(shù)據(jù)交換 ????????))(();()();()();(,RiA Ri d irectA d irect RnA Rn A X C H例:若( R0) =80H,( A) =20H。 SP的值越小,堆棧的深度越深。 系統(tǒng)復(fù)位 時, SP的內(nèi)容為 07H。棧頂?shù)奈恢茫ǖ刂罚┯蓷V羔?SP指示(即 SP的內(nèi)容是棧頂?shù)牡刂罚? (外部 I/O口操作類同) 三、堆棧操作 堆棧是在內(nèi)部 RAM中按“ 后進先出 ”的規(guī)則組織的一片存儲區(qū)。指令執(zhí)行時,低 8位地址在 R0或 R1中由 P0口分時輸出, ALE信號將地址信息鎖存在地址鎖存器中(多于 256字節(jié)的訪問,高位地址由 P2口提供)。指令執(zhí)行時,在 DPH中高 8位地址由 P2口輸出,在 DPL中的低 8位地址,由 P0口分時輸出,并由 ALE信號鎖存在地址鎖存器中。 讀片外 RAM的 MOVX操作,使 輸出的信號選通片外 RAM單元,相應(yīng)單元的數(shù)據(jù)從 P0口讀入累加器中。 第二條指令以 R0或 R1為間址寄存器,也可以讀整個 64K字節(jié)的片外 RAM空間。 二、讀寫片外 RAM 1.讀片外 RAM MOVX A, DPTR ; A ← (( DPTR)) MOVX A, Ri ; A ← (( Ri)) 第一條指令以 16位 DPTR為間址寄存器讀片外 RAM,可以尋址整個 64K字節(jié)的片外RAM空間。然后將該地址單元的內(nèi)容傳送到累加器 A。指令執(zhí)行后 DPTR的內(nèi)容不變。 A Ri AMO V Ri d ir e c t Ri dir e c t da ta Ri da ta? ???????; ( ) ( ), ; ( ) ( ); ( ) 特殊傳送指令 特殊傳送指令的操作符為: MOVC、 MOVX、 PUSH、 POP、 XCH、XCHD和 SWAP。 A dire c t A R n dire c t R nMO V dir e c t dir e c t1 dire c t dir e c t1 R i dire c t R i da ta dir e c t da ta????????? ?????; ( ); ( ), ; ( ); ( ( ) ); 4.以 Ri為目的 ?這組指令的功能是把源字節(jié)送入 Ri內(nèi)容為地址的單元,源字節(jié)尋址方式為立即尋址、直接尋址和寄存器尋址(因目的字節(jié)采用寄存器間接尋址,故源字節(jié)不能是寄存器及其間址尋址)。源字節(jié)的尋址方式分別為立即尋址、直接尋址、寄存器間接尋址和寄存器尋址。 例:若( 50H) = 40H,執(zhí)行指令 MOV R6,50H 后,( R6) = 40H。 2.以 Rn 為目的 ?這組指令的功能是把源字節(jié)送入寄存器 Rn中。源字節(jié)的尋址方式分別為直接尋址、寄存器間接尋址、寄存器尋址和立即尋址四種基本尋址方式。相應(yīng)的源字節(jié)選擇依據(jù)是: ?源字節(jié)與目的字節(jié)不相同(除 direct外); ?寄存器尋址與寄存器間接尋址間不相互傳送 。 二、 8位傳送 A A R n R nMO V dir e c t di r e c t R i R i da ta?????????目 的 字 節(jié) 源 字 節(jié) 在 5種源字節(jié)中,只有# data不能用作目的字節(jié)。源操作數(shù)的尋址方式為立即