Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

Embed Size (px)

Citation preview

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    1/11

    ch-ng 6

    Cc lnh s hc v cc ch-ng trnh

    6.1 Php cng v tr khng du.Cc s khng du -c nh ngha nh- nhng d liu m tt c mi bit ca

    chng u -c dng biu din d liu v kh c bit dnh cho du m hocd-ng. iu ny c ngha l ton hng c th nm gia 00 v FFH (0 n 255 hthp phn) i vi d liu 8 bit.6.1.1 Php cng cc s khng du.

    Trong 8051 cng cc s vi nhau th thanh ghi tng (A) phi -c dngn. Dng lnh ADD l:

    ADD A, ngun; A = A + ngunLnh ADD -c dng cng hai ton hng. Ton hng ch lun l thanh

    ghi A trong khi ton hng ngun c th l mt thanh ghi d liu trc tip hoc l trong b nh. Hy nh rng cc php ton s hc t b nh n b nh khng baogi -c php trong hp ng. Lnh ny c th thay i mt trong cc bit AF, CFhoc PF ca thanh ghi c ph thuc vo cc ton hng lin quan. Tc ng ca lnhADD ln c trn s -c trnh by mc 6.3 v n ch yu -c s dng trong ccphp ton vi s c du. Xt v d 6.1 d-i y:V d 6.1:

    Hy biu din xem c lnh d-i y tc ng n thanh ghi c nh- th no?

    MOV A, # 0F5H ; A = F5HMOV A, # 0BH ; A = F5 + 0B = 00

    Li gii:

    F5H 1111 0101+ 0BH + 0000 1011

    100H 0000 0000

    Sau php cng, thanh ghi A (ch) cha 00 v cc c s nh- sau:CY = 1 v c php nh t D7PF = 1 v s cc s 1 l 0 (mt s chn) c PF -c t ln 1.AC = 1 v c php nh t D3 sang D4

    6.1.1.1 Php cng cc byte ring r. ch-ng 2 trnh by mt php cng 5 byte d liu. Tng s -c ct

    theo ch nh hn FFH l gi tr cc i mt thanh ghi 8 bit c th -c gi. tnh tng s ca mt s bt k cc ton hng th c nh phi -c kim tra sau miln cng mt ton hng. V d 6.2 dng R7 tch lu s ln nh mi khi cc tonhng -c cng vo A.V d 6.2:

    Gi s cc ngn nh40 -44 ca RAM c gi tr sau: 40 = (7D); 41 = (EB); 42= (C5); 43 = (5B) v 44 = (30). Hy vit mt ch-ng trnh tnh tng ca cc gi trtrn. Cui ch-ng trnh gi tr thanh ghi A cha byte thp v R7 cha byte cao (ccgi tr trn -c cho dng Hex).

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    2/11

    Li gii:

    MOV R0, #40H ; Np con trMOV R2, #5 ; Np b mCLR A ; Xo thanh ghi AMOV R7, A ; Xo thanh ghi R7

    AGAIN: ADD A, @R0 ; Cng byte con tr ch n theo R0

    JNC NEXT ; Nu CY = 0 khng tch lu c nhINC R7 ; Bm theo s ln nh

    NEXT: INC R0 ; Tng con trDJNZ R2, AGAIN ; Lp li cho n khi R0 = 0

    Phn tch v d 6.2:Ba ln lp li ca vng lp -c ch ra d-i y. Phn d theo ch-ng trnh

    dnh cho ng-i c t thc hin.Trong ln lp li u tin ca vng lp th 7DH -c cng vo A vi CY = 0 v R7 =00 v b m R2 = 04.

    Trong ln lp li th hai ca vng lp th EBH -c cng vo A v kt qu

    trong A l 68H vi CY = 1. V c nh xut hin, R7 -c tng ln. Lc ny b mR2 = 03.

    Trong ln lp li th ba th C5H -c cng vo A nn A = 2DH v c nh libn. Do vy R7 li -c tng ln v b m R2 = 02.

    phn cui khi vng lp kt thc, tng s -c gi bi thanh ghi A v R7,trong A gi byte thp v R7 cha byte cao.6.1.1.2 Php cng v nh v php cng cc s 16 bit.

    Khi cng hai ton hng d liu 16 bit th ta cn phi quan tm n phptruyn ca c nh t byte thp n byte cao. Lnh ADDC (cng c nh) -c sdng trong nhng tr-ng hp nh- vy. V d, xt php cng hai s sau: 3CE7H +

    3B8DH.

    3C E7+ 3B 8D

    78 7479

    Khi byte th nht -c cng (E7 + 8D = 74, CY = 1). C nh -c truyn lnbyte cao to ra kt qu 3C + 3B + 1 = 78. D-i y l ch-ng trnh thc hin ccb-c trn trong 8051.V d 6.3:

    Hy vit ch-ng trnh cng hai s 16 bit. Cc s l 3CE7H v 3B8DH. Ct

    tng s vo R7v R6 trong R6 cha byte thp.Li gii:

    CLR ; Xo c CY = 0MOV A, #0E7H ; Np byte thp vo A A = E7HADD A, #8DH ; Cng byte thp vo A a = 74H v CY = 1MOV R6, A ; L-u byte thp ca tng vo R6MOV A, #3CH ; Np byte cao vo A A = 3CHADDC A, #3BG ; Cng byte cao c nh vo A A = 78H

    ;

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    3/11

    MOV R7, A ; L-u byte cao ca tng vo R7

    6.1.1.3 H thng s BCD (s thp phn m ho theo nh phn).SBCD l s thp phn -c m ho theo nh phn 9 m khng dng s thp

    phn hay s thp lc (Hex). Biu din nh phn ca cc s t 0 n 9 -c gi lBCD (xem hnh 6.1). Trong ti liu my tnh ta th-ng gp hai khi nim i vi cc

    sBCD l: BCD -c ng gi v BCD khng ng gi.Digit BCD Digit BCD

    01234

    00000001001000110100

    56789

    01010110011110001001

    Hnh 6.1:M BCD.a-BCD khng ng gi.

    Trong sBCD khng ng gi th 4 bt thp ca s biu din sBCD cn 4bit cn li l s9. V d 00001001 v 0000 0101 l nhng sBCD khng nggi ca s9 v s 5. SBCD khng ng gi i hi mt byte b nh hay mt thanhghi 8 bit cha n.b-BCD ng gi.

    Trong sBCD ng gi th mt byte c 2 sBCD trong n mt trong 4 bitthp v mt trong 4 bit cao. V d 0101 1001 l sBCD ng gi cho 59H. Chmt 1 byte b nh l-u cc ton hng BCD. y l l do dng sBCD ng giv n hiu qu gp i trong l-u gi liu.

    C mt vn khi cng cc sBCD m cn phi -c khc phc. Vn l sau khi cng cc sBCD ng gi th kt qu khng cn l sBCD. V d:

    MOV A, #17HADD A, #28H

    Cng hai s ny cho kt qu l 0011 1111B (3FH) khng cn l sBCD!MtsBCD ch nm trong gii 0000 n 1001 (t s 0 n s9). Hay ni cch khcphp cng hai sBCD phi cho kt qu l sBCD. Kt qu trn ng l phi l 17 +28 = 45 (0100 0101). gii quyt vn ny lp trnh vin phi cng 6 (0110) vos thp 3F + 06 = 45H. Vn t-ng t cng c th xy ra trong s cao (v d khicng hai s 52H + 87H = D94). gii quyt vn ny ta li phi cng 6 vo scao (D9H + 60H = 139). Vn ny ph bin n mc mi b x l nh- 8051 u

    c mt lnh s l vn ny. Trong 8051 l lnh DA A gii quyt vn cng cc sBCD.6.1.1.4 Lnh DA.

    Lnh DA (Decimal Adjust for addition iu chnh thp phn i vi phpcng) trong 8051 dng hiu chnh s sai lch ni trn y lin quan n phpcng cc sBCD. Lnh gi DA. Lnh DA s cng 6 vo 4 bit thp hoc 4 bit caonu cn. Cn bnh th-ng n nguyn kt qu tm -c. V d sau s lm r ccim ny.

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    4/11

    MOV A, #47H ; A = 47H l ton hng BCD u tinMOV B, #25H ; B = 25H l ton hng BCD th haiADD A, B ; Cng cc s hex (nh phn) A = 6CHDA A ; iu chnh cho php cng BCD (A = 72H)

    Sau khi ch-ng trnh -c thc hin thanh ghi A s cha 72h (47 + 25 = 72).Lnh DA ch lm vic vi thanh ghi A. Hay ni cch khc trong thanh ghi ngunc th l mt ton hng ca ch nh a ch bt k th ch phi l thanh ghi A DA c th lm vic -c. Cng cn phi nhn mnh rng lnh DA phi -c sdng sau php cng cc ton hng BCD v cc ton hng BCD khng bao gi c thc s ln hn 9. Ni cch khc l khng cho php c cc s A - F. iu quan trngcng phi l-u l DA ch lm vic sau php cng ADD, n s khng bao gi lmvic theo lnh tng INC.

    Tm tt v hot ng ca lnh DA.Hot ng sau lnh ADD hoc ADDC.

    1. Nu 4 bit thp ln hn 9 hoc nu AC = 1 th n cng 0110 vo 4 bt thp.2. Nu 4 bit cao ln hn 9 hoc c CY = 1 th n cng 0110 vo 4 bit cao.

    Trong thc t th c AC ch dng phc v cho php cng cc sBCD vhiu chnh n. V d, cng 29H v 18H s c kt qu l 41H sai vi thc t khi cc sBCD v sa li th lnh DA s cng 6 vo 4 bit thp c kt qu l ng(v AC = 1) dng BCD.

    29H 0010 1001+ 18H + 0001 1000

    41H 0100 0001 AC = 1+ 6 + 0110

    47H 0100 0111

    V d 6.4:

    Gi s 5 d liu BCD -c l-u trong RAM ti a ch bt u t40H nh- sau:40 = (71), 41 = (11), 42 = (65), 43 = (59) v 44 = (37). Hy vit ch-ng trnh tnhtng ca tt c 5 s trn v kt qu phi l dng BCD.Li gii:

    MOV R0, #40H ; Np con trMOV R2, #5 ; Np b mCLR A ; Xo thanh ghi AMOV R7, A ; Xo thanhg ghi R7

    AGAIN: ADD A, @R0 ; Cng byte con tr ch bi R0DA A ; iu chnh v dng BCD ngJNC NEXT ; Nu CY = 0 khng tch lu c nh

    JNC R7 ; Tng R7 bm theo s ln nhNEXT: INC R0 ; Tng R0 dch con tr ln nh k tipDJNZ R2, AGAIN ; Lp li cho n khi R2 = 0

    6.1.2 Php tr cc s khng du.C php: SUBB A, ngun; A = A - ngun - CY.Trong rt nhiu cc b x l c hai lnh khc nhau cho php tr l SUB v

    SUBB (tr c m-n - Sub, tract with Borrow). Trong 8051 ta ch c mt lnh SUBB

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    5/11

    duy nht. thc hin SUB t SUBB, do vy c hai tr-ng hp cho lnh SUBB l:vi CY = 0 v vi CY = 1. L-u rng y ta dng c CY m-n.6.1.2.1 Lnh SUBB vi CY = 0.

    Trong php tr th cc b vi x l 8051 (thc t l tt c mi CPU hin i)u s dng ph-ng php b 2. Mc d mi CPU u c mch cng, n c th qucng knh (v cn nhiu bng bn dn) thit k mch tr ring bit. V ly do

    m 8051 s dng mch cng thc hin lnh tr. Gi s 8051 s dng mch cng thc hin lnh tr v rng CY - 0 tr-c khi thc hin lnh th ta c th tm tt ccb-c m phn cng CPU thc hin lnh SUBB i vi cc s khng du nh- sau:

    1. Thc hin ly b 2 ca s tr (ton hng ngun)2. Cng n vo s b tr (A)3. o nh

    y l 3 b-c thc hin bi phn cng bn trong ca CPU 8051 i vi milnh tr SUBB bt k n ngun ca cc ton hng -c cp c -c h tr ch nh a ch hay khng? Sau ba b-c ny th kt qu c -c v cc c -c bt. Vd 6.5 minh ho 3 b-c trn y:V d 6.5:

    Trnh by cc b-c lin quan d-i y:

    CLR C ; To CY = 0MOV A, #3FH ; Np 3FH vo A (A = 3FH)MOV R3, #23H ; Np 23H vo R3 (R3 = 23H)SUBB A, R3 ; Tr A cho R3 t kt qu vo A

    Li gii:

    A = 3F 0011 1111 0011 1111- R3 = 23 0010 0011 + 1101 1101 b 2 ca R3 (b-c 1)

    1C 1 0001 1100 - 1C (b-c 2)0 CF = 0 (b-c 3)

    Cc c s -c thit lp nh- sau: CY = 0, AC = 0 v lp trnh vin phi -cnhn n c nh xc nh xem kt qu l m hay d-ng.

    Nu sau khi thc hin SUBB m CY = 0 th kt qu l d-ng. Nu CY = 1 thkt qu m v ch c gi tr b 2 ca kt qu. Thng th-ng kt qu -c dngb 2 nh-ng cc lnh b CPL v tng INC c th -c s dng thay i n. LnhCPL thc hin b 1 ca ton hng sau ton hng -c tng ln 1 (INC) trthnh dng b 2. Xem v d 6.6.V d 6.6:

    Phn tch ch-ng trnh sau:

    CLR CMOV A, #4CH ; Np A gi tr 4CH (A = 4CH)SUBB A, #6EH ; Tr A cho 6EHJNC NEXT ; Nu CY = 0 nhy n ch NEXTCPL A ; Nu CY = 1 thc hin b 1INC A ; Tng 1 c b 2

    NEXT: MOV R1, A ; L-u A vo R1

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    6/11

    Li gii:Cc b-c thc hin lnh "SUBB A, 6EH" nh- sau:

    4C 0100 1100 0100 1100- 6E 0110 1110 ly b 2 1001 0010 (b-c 1)

    - 22 0 1101 1110 = (b-c 2)o CY = 1(b-c 3)

    C CY = 1, kt qu m dng b 2.6.1.2.2 Lnh SUBB khi CY = 1.

    Lnh ny -c dng i vi cc s nhiu byte v s theo di vic m-n caton hng thp. Nu CY = 1 tr-c khi xem thc hin SUBB th n cng tr 1 t ktqu. Xem v d 6.7.V d 6.7:

    Phn tch ch-ng trnh sau:

    CLR C ; CY = 0

    MOV A, #62 ; A = 62HSUBB A, #96H ; 62H - 96H = CCH with CY = 1MOV R7, A ; Save the resultMOV A, #27H ; A = 27HSUBB A, #12H ; 27H - 12H - 1 = 14HMOV R6, A ; Save the result

    Li gii:Sau khi SUBB th A = 62H -96H = CCH v c nh -c lp bo rng c

    m-n. V CY = 1 nn khi SUBB -c thc hin ln th 2 th a = 27H - 12H - 1 =14H. Do vy, ta c 2762H - 1296H = 14CCH.6.2 Nhn v chia cc s khng du.

    Khi nhn v chia hai s trong 8051 cn phi s dng hai thanh ghi A v B vcc lnh nhn v chia ch hot ng vi nhng thanh ghi ny.6.2.1 Nhn hai s khng du.

    B vi iu khin ch h tr php nhn byte vi byte. Cc byte -c gi thit ld liu khng du. Cu trc lnh nh- sau:

    MOV AB ; L php nhn A B v kt qu 16 bit -c t trong A v B.Khi nhn byte vi byte th mt trong cc ton hng phi trong thanh ghi A v

    ton hng th hai phi trong thanh ghi B. Sau khi nhn kt qu trong cc thanhghi A v B. Phn tip thp trong A, cn phn cao trong B. V d d-i y trnhby php nhn 25H vi 65H. Kt qu l d liu 16 bit -c t trong A v B.

    MOV A, #25H ; Np vo A gi tr 25HMOV B, 65H ; Np vo B gi tr 65HMUL AB ; 25H*65H = E99 vi B = 0EH v A = 99H

    Bng 6.1: Tm tt php nhn hai s khng du (MULAB)

    Nhn Ton hng 1 Ton hng 2 Kt quByte*Byte A B A = byte thp, B = byte cao

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    7/11

    6.2.2 Chia hai s khng du.

    8051 cng ch h tr php chia hai s khng du byte cho byte vi c php:DIV AB ; Chia A cho BKhi chia mt byte cho mt byte th t s (s b chia) phi trong thanh ghi A

    v mu s (s chia) phi trong thanh ghi B. Sau khi lnh chia DIV -c thc hin

    th th-ng s -c t trong A, cn s d- -c t trong B. Xt v d d-i y:

    MOV A, #95 ; Np s b chia vo A = 95MOV B, #10 ; Np s chia vo B = 10DIV AB ; A = 09 (th-ng s); B = 05 (s d-)

    L-u cc im sau khi thc hin DIV ABLnh ny lun bt CY = 0 v OV = 0 nu t s khng phi l s 0Nu t s l s 0 (B = 0) th OV =1 bo li v CY = 0. Thc t chun trong tt

    c mi b vi x l khi chia mt s cho 0 l bng cch no bo c kt qu khngxc nh. Trong 8051 th cOV -c thit lp ln 1.

    Bng 6.2: Tm tt php chia khng du (DIV AB).

    Php chia T s Mu s Th-ng s S d-Byte cho Byte A B A B

    6.2.3 Mt ng dng cho cc lnh chia.C nhng thi im khi mt b ADC -c ni ti mt cng v ADC biu

    din mt s d- nhit hay p sut. B ADC cp d liu 8 bit dng Hex trong di00 - FFH. D liu Hex ny phi -c chuyn i v dng thp phn. Chng ta thchin chia lp nhiu ln cho 10 v l-u s d- vo nh- v d 6.8.V d 6.8:

    a-Vit mt ch-ng trnh nhn d liu dng Hex trong phm vi 00 - FFH t cng1 v chuyn i n v dng thp phn. L-u cc s vo trong cc thanh ghi R7, R6 vR5 trong s c ngha nh nht -c ct trong R7.b- Phn tch ch-ng trnh vi gi thit P1 c gi tr FDH cho d liu.Li gii:a)

    MOV A, #0FFHMOV P1, A ; To P1 l cng u voMOV A, P1 ; c dliu tP1MOV B, #10 ; B = 0A Hex (10 thp phn)DIV AB ; Chia cho 10

    MOV R7, B ; Ct s thpMOV B, #10 ;DIV AB ; Chia 10 ln naMOV R6, B ; Ct s tip theoMOV R5, A ; Ct s cui cng

    b) chuyn i s nh phn hay Hex v s thp phn ta thc hin chia lp cho 10lin tc cho n khi th-ng s nh hn 10. Sau mi ln chia s d- -c l-u ct.

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    8/11

    Trong tr-ng hp mt s nh phn 8 bit nh- FDH chng hn ta c 253 s thp phnnh- sau (tt c trong dng Hex)

    Th-ng s S d-FD/0A 19 3 (S thp - cui)19/0A 2 5 (S gia)

    2 (S u)

    Do vy, ta c FDH = 253. hin th d liu ny th n phi -c chuyn iv ASCII m s -c m t ch-ng sau.6.3 Cc khi nim v s c du v cc php tnh s hc.

    Tt c mi d liu t tr-c n gi u l cc s khng du, c ngha l tonb ton hng 8 bit u -c dng cho b ln. C nhiu ng dng yu cu d liu cdu, phn ny s bn v nhng lnh lin quan n cc s c du.6.3.1 Khi nim v cc s c du trong my tnh.

    Trong cuc sng hng ngy cc s -c dng c th l s m hoc d-ng. Vd 5 d-i 00C -c biu din l -50C v 20 trn 00C -c biu din l +200C.

    Cc my tnh cng phi c kh nng p ng ph hp vi cc s y. lm -ciu y cc nh khoa hc my tnh pht minh ra s xp xp biu din cc s mc du v s d-ng c du nh- sau: Bit cao nht MSB -c dnh cho bit du (+)hoc (-), cn cc bit cn li -c dng biu din ln. Du -c biu din bi 0i vi cc s d-ng v mt s i vi cc s m ( -). Biu din ca mt byte c du-c trnh by trn hnh 6.2.

    Hnh 6.2: Cc ton hng 8 bit c du.a- Cc ton hng 8 bit c du: Trong cc ton hng A byte c du th bit cao nhtMSB l D7 -c dng biu din du, cn 7 bit cn li t D6 - D0 dng biudin ln ca s . Nu D7 = 0 th l ton hng d-ng v nu D7 = 1 th n lton hng m.b- Cc s d-ng: Di ca cc s d-ng c th -c biu din theo dng cho trnhnh 6.2 l t 0 n +127 th phi s dng ton hng 16 bit. V 8051 khng h tr d

    liu 16 bit nn ta khng bn lun n.c- Cc s m: i vi cc s m th D7 = 1, tuy nhin ln -c biu din dngs b 2 ca n. Mc d hp ng thc hin vic chuyn i song iu quan trng lhiu vic chuyn i din ra nh- th no. chuyn i v dng biu din s m(b 2) th tin hnh theo cc b-c sau:

    1. Vit ln ca s dng nh phn 8 bit (khng du).2. o ng-c tt c cc bit3. Cng 1 vo n.

    V d 6.9: Hy trnh by cch 8051 biu din s- 5.

    D7 D6 D5 D4 D3 D2 D1 D0

    Sign Magnitu

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    9/11

    Li gii:Hy quan st cc b-c sau:

    0000 0101 Biu din s 5 dng 8 bit nh phn1111 1010 o cc bit1111 1011 Cng (thnh s FB dng Hex)

    Do vy, s FBH l biu din s c du dng b 2 ca s- 5.V d 6.10: Trnh by cch 8051 biu din - 34H.Li gii:

    Hy quan st cc b-c sau:

    0011 0200 S 34 -c cho dng nh phn1100 1011 o cc bit1100 1100 Cng 1 (thnh s CC dng Hex)

    Vy s CCH l biu din dng b 2 c du ca - 34H.V d 6.11: Trnh by cch 8051 biu din - 128:Li gii:

    Quan st cc b-c sau:

    1000 0000 S 128 dng nh phn 28 bit0111 1111 o cc bit1000 0000 Cng 1 (tr thnh s 80 dng Hex)

    Vy - 128 = 80H l biu din s c du dng b 2 ca - 128.T cc v d trn y ta thy r rng rng di ca cc s m c du 8 bit l - 1

    n - 128. D-i y l lit k cc s c du 8 bit:

    S thp phn S nh phn S Hex-128 1000 0000 80-127 1000 0001 81-126 1000 0010 82... ................. ...-2 1111 1110 FE-1 1111 1111 FF0 0000 0000 00

    +1 0000 0001 01+2 0000 0010 02... .................. ...

    -127 0111 1111 FE

    6.3.2 Vn trn trong cc php ton vi s c du.Khi s dng cc s c du xut hin mt vn rt nghim trng m phi

    -c s l. l vn trn, 8051 bo c li bng cch thit lp c trn OV nh-ngtrch nhim ca lp trnh vin l phi cn thn vi kt qu sai. CPU ch hiu 0 v 1v n lm ng vi vic chuyn i s m, s d-ng ca con ng-i. Vy trn s l g?Nu kt qu ca mt php ton trn cc s c du m qu ln i vi thanh ghi thxut hin s trn s v lp trnh vin phi -c cnh bo. Xt v d 6.12 d-i y.

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    10/11

    V d 6.12:Kho st on m sau v phn tch kt qu.

    MOV A, # + 96 ; A = 0110 0000 (A = 60H)MOV R1, # + 70 ; R1 = 0100 0110 (R1 = 46H)ADD A, R1 ; A = 1010 0110 = A6H = - 90

    Sai !!!

    Li gii:

    + 96 0110 0000+ + 70 0100 0110- 166 1010 0110 v OV = 1

    Theo CPU kt qu l -90 v l kt qu sai nn CPU bt cOV = 1 botrn s.

    Trong v d 6.12 th + 96 -c cng vi + 70 v kt qu theo CPU l -90. Tisao vy? L do l kt qu ca + 96 + 70 = 172 ln hn s m thanh ghi A c thcha -c. Cng nh- tt c mi thanh ghi 8 bit khc, thanh ghi A ch cha -c ns + 127. Cc nh thit k ca PCU to ra c trn OV phc v ring cho mc chbo cho lp trnh vin rng kt qu ca php ton s c du l sai.6.3.3 Khi no th c trn OV -c thit lp?

    Trong cc php ton vi s c du 8 bit th c OV -c bt ln 1 khi xuthin mt trong hai iu kin sau:

    1. C nh t D6 sang D7 nh-ng khng c nh ra t D7 (c CY = 0)2. C nh ra t D7 (c CY = 1) nh-ng khng c nh t D6 sang D7

    Hay ni cch khc l c trn OV -c bt ln 1 nu c nh t D6 sang D7hoc t D7 nh-ng khng ng thi xy ra c hai. iu ny c ngha l nu c nh c

    t D6 sang D7 v t D7 ra th cOV = 0. Trong v d 6.12 v ch c nh t D7 ra nncOV = 1. Trong v d 6.13, v d 6.14 v 6.15 c minh ho thm v s dng ctrn trong cc php s hc vi s c du.V d 6.13:

    Hy quan st on m sau n vai tr ca cOV.

    MOV A, # -128 ; A = 1000 0000 (A= 80H)MOV R4, # -2 ; R4 = 1111 (R4 = FEH)ADD A, R4 ; A = 0111 1110 (A = 7EH = +126, invalid)

    Li gii:

    - 128 1000 0000+ - 2 1111 1110-130 0111 1110 v OV = 1

    Theo CPU th kt qu + 126 l kt qu sai, nn cOV = 1.V d 6.14:

    Hy quan st on m sau v l-u cOV.

    Smith Nguyen Studio.

  • 8/2/2019 Chuong 06_Lenh So Hoc Va Chuong Trinh - Smith.N Studio

    11/11

    MOV A, # -2 ; A = 1111 1110 (A = FEH)MOV R1, # -5 ; R1 = 1111 1011 (R1 = FBH)ADD A, R1 ; A = 1111 1001 (A = F9H = -7, correct, OV = 0)

    Li gii:

    - 2 1111 1110+ - 5 1111 1011- 7 1111 1001 v OV = 0

    Theo CPU th kt qu -7 l ng nn cOV = 0.V d 6.15:

    Theo di on m sau, ch vai tr ca cOV.

    MOV A, # +7 ; A = 0000 0111 (A = 07H)MOV R1, # +18 ; R1 = 0001 0010 (R1 = 12H)ADD A, R1 ; A = 1111 1001 (A = 19H = -25, correct, OV = 0)

    Li gii:

    7 0000 0111- 18 0001 001025 0001 1001 v OV = 0

    Theo CPU th kt qu - 25 l ng nn cOV = 0.T cc v d trn y ta c th kt lun rng trng bt k php cng s c du

    no, cOV u bo kt qu l ng hay sai. Nu cOV = 1 th kt qu l sai, cnnu OV = 0 th kt qu l ng. Chng ta c th nhn mnh rng, trong php cngcc s khng du ta phi hin th trng thi ca c CY (c nh) v trong php cngcc s c du th c trn OV phi -c theo di bi lp trnh vin. Trong 8051 thcc lnh nh-JNC v JC cho php ch-ng trnh r nhnh ngay sau php cng cc skhng du nh- phn 6.1. i vi c trn OV th khng c nh- vy. Tuy nhin,iu ny c th t -c bng lnh JB PSW.2 hoc JNB PSW.2 v PSW thanhghi c c th nh a ch theo bit.

    Smith Nguyen Studio.