機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
第三章 EM78指令系統(tǒng) (2)
第三章 EM78指令系統(tǒng) (2)
 更新時(shí)間:2008-7-26 20:10:37  點(diǎn)擊數(shù):2
【字體: 字體顏色
語  法 
DAA
編  碼
0
0000
0001
0001
 
操作內(nèi)容
if [A<3::0> > 9].OR.[DC=1]
 then A<3::0> + 6  ->  A<3::0>;
if [A<7::4> > 9].OR.[C=1]
 then A<7::4> + 6 -> A<7::4>;
受影響的標(biāo)志
C進(jìn)位標(biāo)志
說  明
DAA用來調(diào)整在累加器中的8位的2進(jìn)位數(shù)值﹐使累加器中的數(shù)值變成10進(jìn)位的表示法﹐分別用兩個(gè)4位來表示十位及個(gè)位。
舉例說明
做一個(gè)十進(jìn)位加法運(yùn)算6+9

    MOV A,@0x6
    MOV 0x10,A
    MOV A,@0x9
    ADD A,0x10  ;A = 0xf
    DAA         ;A = 15H (packed BCD)
 
 
 
語  法
DECA    R
編  碼
0
0001
10rr
rrrrr
 
操作內(nèi)容
R-1 --> A
受影響的標(biāo)志
Z零標(biāo)志
說  明
遞減R寄存器的值﹐并且將結(jié)果存入A寄存器中。
舉例說明
說明如何作一個(gè)計(jì)數(shù)16次的循環(huán)

STATUS  ==  3   ﹔狀態(tài)寄存器
Z_FLAG  ==  2   ﹔零標(biāo)志在狀態(tài)暫存中是BIT2

    MOV A,@0x10
    MOV 0x10,A
LOOP:
    DECA    0x10
    MOV 0x10,A
    JBS     STATUS,Z_FLAG
    JMP     LOOP
 
  
 
語  法 
DEC R
編  碼
0
0001
11rr
rrrrr
 
操作內(nèi)容
R-1 --> R
受影響的標(biāo)志
Z﹔零標(biāo)志
說  明
將所指定的R寄存器內(nèi)含值減1。
舉例說明
說明如何作一個(gè)計(jì)數(shù)16次的循環(huán)

STATUS  ==  3   ; 狀態(tài)寄存器
Z_FLAG  ==  2   ﹔零標(biāo)志在狀態(tài)暫存中是BIT2


    MOV A,@0x10
    MOV 0x10,A
LOOP:
    DEC 0x10
    JBS     STATUS,Z_FLAG
    JMP     LOOP
 
語  法
DJZA    R
編  碼
0
0101
10rr
rrrrr
 
操作內(nèi)容
R - 1  -->  A, skip if 0
受影響的標(biāo)志
說  明
將所指定R寄存器的內(nèi)含值減1﹐并將結(jié)果存於A寄存器上﹔如果結(jié)果為0﹐則下一個(gè)指令將被跳過。
舉例說明
HERE:
    DJZA   0x9
CONT:
    MOV A,0x10
SKIP:
    ADD A,@10

在執(zhí)行DJZA指令之前
PC = address HERE

在執(zhí)行DJZA指令之后
A=R9-1
if A = 0, PC = address SKIP
if A ¹ 0, PC = address CONT
 
語  法
DJZ R
編  碼
0
0101
11rr
rrrrr
 
操作內(nèi)容
R - 1 -->  R, skip if 0
受影響的標(biāo)志
說  明
將所指定R寄存器的內(nèi)含值減1﹐并將結(jié)果存回R寄存器上﹔如果結(jié)果為0﹐則下一個(gè)指令將被跳過。
舉例說明
    MOV A,@100
    MOV 0x10,A
LOOP:
    ·
    ·
    ·
    DJZ 0x10    ;寄存器R10遞減﹐ 若結(jié)果不等于
                ;0 , 執(zhí)行JMP指令﹐若結(jié)果等于0﹐                ;JMP指令不執(zhí)行              JMP LOOP
 
 
語  法
INCA    R
編  碼
0
0101
00rr
rrrrr
 
操作內(nèi)容
R + 1 --> A
受影響的標(biāo)志
Z﹔零標(biāo)志
說  明
將被指定R寄存器的內(nèi)含值加1,并將結(jié)果儲(chǔ)于A寄存器中。
舉例說明
    MOV A,@0x11
    MOV 0x10,A      ;R10 = 0x11
    INCA    0x10        ;A = 0x12

 
語  法
INC R
編  碼
0
0101
01rr
rrrrr
 
操作內(nèi)容
R + 1 --> R
受影響的標(biāo)志
Z﹔零標(biāo)志
說  明
將被指定R寄存器的內(nèi)含值加1﹐並且將結(jié)果再存回R寄存器中。
舉例說明
    MOV A,@0x11
    MOV 0x10,A      ;R10 = 0x11
    INC     0x10        ;R10 = 0x12
 
 
 語  法
INT
編  碼
1
1110
0000
0001
 
操作內(nèi)容
PC + 1  -->  [Top of Stack]
0001H  -->  PC
受影響的標(biāo)志
說  明
軟件中斷指令﹐首先將下一個(gè)位址存入堆棧中﹐然后將0x01載入程序寄存器中。
舉例說明
    ORG 0x001
    JMP SET_INT
    ·
    ·
SET_INT﹕
    ·
    ·
    RET

MAIN﹕
    ·
    ·
HERE﹕
    INT
CONT﹕
    CLRA

執(zhí)行INT指令之前
PC = address HERE

執(zhí)行INT指令之后
PC = 0001H
[Top of Stack] = address CONT
 
 
 
MOVe IOCR to the A register
語  法
IOR R
編  碼
0
0000
0001
rrrr
 
操作內(nèi)容
IOCR --> A
受影響的標(biāo)志
說  明
將控制寄存器IOCR中的值移到寄存器A中。
舉例說明
    IOR     0xf ;取得 IOCF 中的內(nèi)容﹐并載入A中
    MOV 0x10,A  ;儲(chǔ)存在寄存器 0x10中
 
語  法
IOW      R
編  碼
0
0000
0000
rrrr
 
操作內(nèi)容
A <-- IOCR
受影響的標(biāo)志
說  明
將A寄存器(累加器)的內(nèi)容載入控制寄存器IOCR中。
舉例說明
將port6設(shè)定成輸出口。
    MOV A,@0
    IOW     0x6
 
 
語  法
JMP k
編  碼
1
01kk
kkkk
kkkk
 
操作內(nèi)容
k  -->  PC(9::0)
R3(7::5)  -->  PC(12::10)
受影響的標(biāo)志
說  明
當(dāng)執(zhí)行一個(gè)跳轉(zhuǎn)指令﹐指令后所描述的執(zhí)行位址會(huì)載入程序計(jì)數(shù)器中。
舉例說明
HERE    JMP BRANCH

執(zhí)行JMP指令之前
PC = address HERE

執(zhí)行JMP指令之后
PC = address BRANCH
 
語  法
JZA R
編  碼
0
0111
10rr
rrrrr
 
操作內(nèi)容
R+1 --> A, skip if result = 0
受影響的標(biāo)志
說  明
將所選定的寄存器R的內(nèi)容加1﹐并將結(jié)果存于A寄存器﹐若結(jié)果為0﹐則跳過下一個(gè)指令。
舉例說明
Port 6輸出遞減的二進(jìn)位數(shù)值。

    MOV A,@x00
LOOP:
    MOV 0x6,A
    MOV 0x10,A
    JZA 0x10
    JMP LOOP
 
語  法
JZ  R
編  碼
0
0111
11rr
rrrrr
 
操作內(nèi)容
R+1 -->  R, skip if result = 0
受影響的標(biāo)志
說  明
將所選定的寄存器R的內(nèi)容加1﹐并將結(jié)果存於R寄存器﹐若結(jié)果為0﹐則跳過下一個(gè)指令。
舉例說明
HERE:
    JZ  0x10
CONT:
    MOV A,0x10
SKIP:
    ADD A,@10

執(zhí)行JZ指令之前
PC = address HERE

執(zhí)行JZ指令之后
R10 = R10-1
if R10 = 0, PC = address SKIP
if R10 ¹ 0, PC = address CONT
  
語  法
JBC R,b
編  碼
0
110b
bbrr
rrrrr
 
操作內(nèi)容
if R(b) = 0, skip
受影響的標(biāo)志
說  明
如果寄存器R的位 “b” 是“0”,則跳過下一個(gè)指令。
舉例說明
測試0x10寄存器的bit0﹐若是為”0”則port5的bit0設(shè)成”0”﹔若0x10寄存器的bit0為”1”﹐則port5的bit0設(shè)成”1”。

    JBC 0x10,0
    BS  0x5,0
    JBS 0x10,0
    BC  0x5,0
 
語  法 
JBS R,b
編  碼
0
111b
bbrr
rrrrr
 
操作內(nèi)容
if R(b) = 1, skip
受影響的標(biāo)志
說  明
如果寄存器R的位 “b” 是“1”,則跳過下一個(gè)指令。
舉例說明
HERE    JBC 0x9,3
CONT    MOV A,@10
SKIP    ADD A,0x10

執(zhí)行JBC指令之前
PC = address HERE

執(zhí)行JBC指令之后
if R9(3) = 0, PC = address CONT
if R9(3) ¹ 0, PC = address SKIP
  
 
語  法
MOV R,A
編  碼
0
0000
01rr
rrrr
 
 操作內(nèi)容
A --> R
受影響的標(biāo)志
說  明
將A寄存器中的值載入寄存器R中。
語  法
MOV A,R
編  碼
0
0100
00rr
rrrr
 
操作內(nèi)容
R --> A
受影響的標(biāo)志
Z (零標(biāo)志)
 
將R寄存器中的值載入A寄存器﹐如果A寄存器的結(jié)果為零﹐就會(huì)將Z標(biāo)志設(shè)成1﹔否則將Z標(biāo)志清為0。
 
 
語  法
MOV A, k
編  碼
1
1000
kkkk
kkkk
 
操作內(nèi)容
k --> A
受影響的標(biāo)志
說  明
將立即k載入A寄存器中。
舉例說明
將A Move data from accumulator to register

    MOV A,@0x11 ;將立即值載入A寄存器中
    MOV 0x10,A  ;將A中的內(nèi)容載入0X10中
    MOV A,9     ;將寄存器9的值載入A中
 

 
 
語  法
NOP
編  碼
0
0000
0000
0000
 
操作內(nèi)容
No Operation
受影響的標(biāo)志
None
說  明
不做任何工做﹐用來做時(shí)間的延遲。
 
 
舉例說明
P50輸出3 ms的突波. (system clock = 2MHz)

    BS  0x5,0x0 ;P50輸出為high
    NOP     ;延遲兩個(gè)指令周期
    NOP
    BC  0x5,0x0 ;P50輸出為low
 
 
 
語  法
OR  A,R
編  碼
0
0010
00rr
rrrrr
 
操作內(nèi)容
AÚR --> A
受影響的標(biāo)志
Z 零標(biāo)志
說  明
將A寄存器中的值和R寄存器中的值OR在一起﹐在存入A寄存器中。
 
 
語  法
OR  R,A
編  碼
0
0010
01rr
rrrrr
 
操作內(nèi)容
AÚR --> R
受影響的標(biāo)志
Z 零標(biāo)志
說  明
將A寄存器中的值和R寄存器中的值OR在一起﹐在存入R寄存器中。
 
 
語  法
OR  A, k
編  碼
1
1001
kkkk
kkkk
 
操作內(nèi)容
AÚk --> A
受影響的標(biāo)志
Z 零標(biāo)志
說  明
將A寄存器中的值和立即值k﹐OR在一起﹐在存入A寄存器中。
 
 
舉例說明
將port6的值和0x10寄存器的值﹐OR在一起﹐并將結(jié)果輸出到port6。

    MOV A,0x6   ;將port6的值載入A中
    OR      A,0x10  ;OR,A和0x10的值﹐存入A中
    MOV 0x6,A   ;將A的值輸出到port6


說明右式應(yīng)該如何完成﹕R10 = R11 OR R12.
    MOV A,0x11
    MOV 0x10,A
    MOV A,0x12
    OR      0x10,A      ;R10=R11 OR R12


說明右式應(yīng)該如何完成﹕ A = A OR 0xF0.
   
    MOV A,@0x03     ;A = 0x03
    OR      A,0xF0      ;A = 0xF3
  • 上一篇: 第三章 EM78指令系統(tǒng) (3)
  • 下一篇: 第三章 EM78指令系統(tǒng) (1)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1