­ L nh có ệ đi u ki nề ệ

Một phần của tài liệu Giáo trình kiến trúc máy tính vũ đình tân (chủ biên) (Trang 50 - 54)

L nh có đi u ki n có d ng :ệ ề ệ ạ

N u <đi u ki n> thì <chu i l nh 1> n u khơng <chu i l nh 2>ế ́ ỗ ệ ế ỗ ệ

(IF <condition> THEN <instructions1> ELSE <instructions2>) 

L nh này bu c ph i ghi nh  đi u ki n và nh y vng n u đi u ki nệ ộ ả ớ ề ệ ả ̣ ế ề ệ   được tho .ả

Ghi nhớ đi u ki n .

B  làm tính ALU cung c p k t qu    ngă ra tu  theo các ngă vàoộ ấ ế ả ở ỳ   và phép tính c n làm. Nó cũng cho m t s  thơng tin khác v  k t quầ ộ ố ề ế ả 

dưới d ng các bit tr ng thái. Các bit này là nh ng đ i lạ ạ ữ ạ ượng logic 

ĐÚNG ho c ặ SAI (hình II.8).

Trong các bit tr ng thái ta có bit d u ạ ấ S (Sign ­ Đúng n u k t quế ế ả 

âm), bit tr c nghi m zero  ắ ệ Z  (Zero ­ Đúng n u k t qu  b ngế ế ả ằ   khơng), bit tràn OVF (Overflow) ĐÚNG n u phép tính s  h c làmế ố ọ   thanh ghi không đ  kh  năng l u tr  k t qu , bit s  gi  ủ ả ư ữ ế ả ố ữ C (carry) 

ĐÚNG n u s  gi    ngă ra là 1 .... Các bit trên thế ố ữ ở ường được g iọ   là bit mă đi u ki n.ề ệ

 

Hình II.8 : Bit tr ng thái mà ALU t o ra

Có hai k  thu t c  b n đ  ghi nh  các bit tr ng tháiỹ ậ ơ ả ể ớ ạ

Cách th  nh tứ ấ, ghi các tr ng thái trong m t thanh ghi đa d ng.  ạ ộ ụ

Ví d  l nh ụ ệ CMP Rk, Ri, Rj

L nh trên s  làm phép tính tr  Ri ­ Rj mà khơng ghi k t qu  phép tr , màệ ẽ ừ ế ả ừ   l i ghi các bit tr ng thái vào thanh ghi ạ ạ Rk. Thanh ghi này được dùng cho m tộ   l nh nh y có đi u ki n. Đi m l i c a k  thu t này là giúp l u tr  nhi u tr ngệ ả ề ệ ể ợ ủ ỹ ậ ư ữ ề ạ   thái sau nhi u phép tính đ  dùng v  sau. Đi m b t l i là ph i dùng m t thanhề ể ề ể ấ ợ ả ộ   ghi đa d ng đ  ghi l i tr ng thái sau m i phép tính mà s  thanh ghi này l i bụ ể ạ ạ ỗ ố ạ ị 

gi i h n   32 trong các b  x  lý hi n đ i.ớ ạ ở ộ ử ệ ạ

Cách th  haiứ , là đ  các bit tr  ng thái vào m t thanh ghi đ c bi t g i làể ạ ộ ặ ệ ọ  

thanh ghi tr ng thái . V n đ   l u gi     n i dung thanh ghi này đấ ề ư ữ ộ ược gi iả   quy t b ng nhi u cách. Trong ki n trúc SPARC, ch   có m t s  gi i h n l nhế ằ ề ế ỉ ộ ố ớ ạ ệ  

được phép thay đ i thanh ghi tr ng thái ví d   nh   l nh ADDCC, SUBCC (cácổ ạ ụ ư ệ   l nh này th c hi n các phép tính c ng ADD và phép tính tr   SUB và cịn làmệ ự ệ ộ ừ   thay đ i thanh ghi tr ng thái). Trong ki n trúc PowerPC, thanh ghi tr ng tháiổ ạ ế ạ   được phân thành 8 trường, m i tr ỗ ường 4 bit, v y là thanh ghi đă phân thành 8ậ   thanh ghi tr  ng thái con.ạ

Nh y vòng  

Các l nh nh y ho c nh y vng có đi u ki n, ch  th c hi n l nhệ ả ặ ả ̣ ề ệ ỉ ự ệ ệ   nh y khi đi u ki n đả ề ệ ược tho . Trong trả ường h p ngợ ượ ạc l i, vi c th cệ ự   hi n chệ ương trnh đ́ ược ti p t c v i l nh sau đó. L nh nh y xem xét thanhế ụ ớ ệ ệ ả   ghi tr ng thái và ch  nh y n u đi u ki n nêu lên trong l nh là đúng.ạ ỉ ả ế ề ệ ệ

Chúng ta xem m t ví d  th c hi n l nh nh y có đi u ki n.ộ ụ ự ệ ệ ả ề ệ

Gi  s  tr ng thái sau khi b  x  lý thi hành m t tác v , đả ử ạ ộ ử ộ ụ ượ ưc l u trữ 

trong thanh ghi, và b  x  lý thi hành các l nh sau :ộ ử ệ 1.CMP R4,R1,R2  2. BGT R4, +2  3.     ADD   R3,   R0,  R2 4. BRA +1 5. ADD R3, R0, R1 6. L nh k ế : So sánh R1 và R2 b ng cách tr  R1 choằ ừ   R2 và l u gi  tr ng thái trong R4ư ữ ạ : Nh y b  2 l nh n u R1 > R2ả ỏ ệ ế

: R0 có giá tr  0. Chuy n n i dung c a R2ị ể ộ ủ   vào

: nh y b  1 l nhả ỏ ệ

: chuy n n i dung R1 vào R3ể ộ

N u R1 > R2 th chu i l nh đế ́ ỗ ệ ược thi hành là 1, 2, 5, 6 được thi  hành,   n u không th chu i l nh 1, 2, 3, 4, 6 đế ́ ỗ ệ ược thi hành. Chu iỗ   các l nh trên , trong đó có 2 l nh nh y, th c hi n cơng vi c sauệ ệ ả ự ệ ệ   đây 

N u R1 > R2 th R3 = R1 n u không R3 = R2ế ́ ế

Các l nh nh y làm t c đ  thi hành l nh ch m l i, trong các CPUệ ả ố ộ ệ ậ ạ   hi n đ i dung k  thu t  ng d n. Trong m t vài b  x  lý ngệ ạ ỹ ậ ố ẫ ộ ộ ử ười ta dùng  l nh di chuy n có đi u ki n đ  tránh dùng l nh nh y trong m t vàiệ ể ề ệ ể ệ ả ộ   trường h p. Thí d  trên đây có th  đợ ụ ể ược vi t l iế ạ

Một phần của tài liệu Giáo trình kiến trúc máy tính vũ đình tân (chủ biên) (Trang 50 - 54)

Tải bản đầy đủ (PDF)

(139 trang)