Các thanh ghi

Một phần của tài liệu kiến trúc máy tính giới thiệu chung về máy tính điện tử (Trang 71 - 76)

1. Nguyên lý cấu trúc của một mạch DRAM

5.3. Các thanh ghi

MP80286gồm15thanhghi16bit,chialàm3nhóm:

Thanhghiđanăng(hình5.2a)

Các thanh ghi này chứa các toán hạng của các phép tính số học hay logic. Bốn thanhghi16bitAX, BX, CX,DX cóthểsửdụngnhưtám thanhghi8bit. Bốn thanh ghi chứa byte thấp (AL, BL, CL, DL) và bốn thanhghi chứa byte cao (AH, BH, CH,DH).

703

KiếntrúcMáytính NVTam,HTCước.IOIT,VAST

Ngoàichứcnăngchung,cácthanhghitrêncòncócácchứcnăngngầmđịnh: -AXgiữvaitrònhưthanhghiACCcủacácmáytínhtổngquát.

-AXvàDXdùngtrongcáclệnhnhân,chiavàvào/ra.

- CX giữ chức năng thanh đếm, dùng cho tất cả các lệnh quay vòng, lệnh dịch chuyểnvàcáclệnhlặp.

- BX và BP là những thanh ghi cơ sở, chứa địa chỉ cơ sở trong phép tính địa offset.

- SIvà DIgọilà nhữngthanhghichỉ số,chứađịa chỉofsset cóthểtăngdần khi thâmnhậpvàomộtcấutrúcdữliệu.

- SPlàcon trỏngănxếp,chứađịa chỉoffsetcủađỉnh ngănxếp. BPcòngọi con trỏ cơ sở, được dùng ngầm địnhđể truy nhập vàongăn xếp. BPcũng tham gia đểtínhđịachỉoffsettrongcácphéptínhđịachỉtronglệnh.

Cácthanhghimảng(segment)(hình5.2b)

713

KiếntrúcMáytính NVTam,HTCước.IOIT,VAST

Các chương trình thường được cấu tạo từ nhiều modul lệnh và số liệu. MP 80286chophépmộtchươngtrìnhđangthựchiệncóthểthâmnhậptứcthờiđếnbốn mảng nhớ. Bốn thanh ghi mảng nhận biết bốn mảng nhớđang sử dụng.Các thanh ghimảngđólà:

CS:thanhghimảnglệnh DS:thanhghimảngsốliệu SSthanhghimảngngănxếp ESthanhghimảngsốliệuphụ.

Nội dung của thanh ghi mảng gọi làbộ chọn mảng nên có nhiều khi còn gọi thanh ghimảnglàthanhghichọnmảng.

c. Cácthanhghiđiềukhiểntrạngthái

Cácthanhghinàygồm: Thanhghicờ FR(FlagRegister) ContrỏlệnhIP(InstructionPointer)

ThanhghitrạngtháimáyMSW(MachineStatusWord)

Con trỏlệnh IP

Con trỏ lệnh luônchứa địa chỉtương đối (so với đầu của mảng nhớđang sử dụng) của lệnh sẽ thực hiện tiếp theo. Như vậy con trỏ lệnh cùng với thanh ghi mảng lệnh (CS: IP) định nghĩa địa chỉ logic của lệnh tiếp theo, có chức năng như thanhđếmchươngtrình(PC)trongmáytínhtổngquát.

723

KiếntrúcMáytính NVTam,HTCước.IOIT,VAST

Con trỏ lệnh được điều khiển bởi cơ chế ngắt, bẫy và các phép chuyển điều khiển.

ThanhghicờFR

ThanhghicờFRcó16bitđượcbiểudiễntrênhình5.3:

CF(CarryFlag),cờ nhớ.

CF=1 chỉrằngcóhiện tượngnhớ từbitcaonhấtcủa mộtphéptoán8bit hay 16 bit,sau khithựchiện cáclệnh sốhọc. Tấtcảcác lệnhdịch chuyểnvàquay vòng đềuảnhhưởngđếncờCF.

PF(ParityFlag),cờ kiểmtrachẵnlẻ.

PF=1,nếu8bitthấpcủakếtquảcósốcácchữsố1làchẵn, ngượclạiPF=0. AF(auxiliarycarryFlag),cờnhớ phụ.

AF được sử dụng trong các phép tính số học với mã BCD (Binary Coded Decimal). Nó chobiết có nhớtừ số BCD thấpsang sốBCD caohay bitsố liệu D3 sangbitD4trongthanhghiAL.

ZF=1,khikếtquảphéptínhbằng0. SF(SignFlag),cờ dấu.

SF cho biết kết quả phép tính là dương hay âm, nếu âm, SF=1 ngược lại, SF=0

OF(OverflowFlag),cờ tràn.

OFdùngtrongphéptínhsốhọccódấu,nóchỉrằngkếtquảtrànsangbitdấu. - TF (TrapFlag), cờTF chỉchếđộchạytừnglệnh. Nếucờ TF=1,MP80286ở chếđộchạytừngbướcđểgiúpchoviệchiệuchỉnhchương trìnhđượcthuậnlợi.

Mỗi lệnh gây ra một ngắt đểMP 80286 nhảy vàochương trình conphục vụ hiệuchỉnhchươngtrình.

Cờ TFchỉcó thểthayđổi thôngquangăn xếp:cấtthanh ghicờ RFvàongăn xếp,thiếtlậpbitTFtrongngănxếpvàđưatrởlạithanhghicờ.

Trước khi nhảy vào chương trình con phục vụ hiệu chỉnh, thanh ghi cờ FR đượctựđộnglưugiữ.TrongchươngtrìnhconnàybitTFđượcxoá,đểkhithựchiện các lệnh của chương trình con không xẩy ra chế độchạy từng bước. Khi trở về từ chương trìnhcon phụcvụhiệu chỉnh,thanh ghicờ đượcphục hồivàbitTFvẫn giữ giátrịcũ.(TF=1).

- IF(InterruptenableFlag),cờchophépngắt.NếucờIF=1chophépghinhận ngắtởchânINTRcủabộvixửlý.

733

KiếntrúcMáytính NVTam,HTCước.IOIT,VAST

Bit IF được thiết lập bằng lệnh STI và được xóa bằng lệnh CLI hoặc thông quangănxếp.

- DF(DirectionFlag),bithướng.

DFchobiếthướngtiếntriểntrongmộtchuỗisốliệu.

Nếu DF=1, nội dung của thanh ghi SI hoặc DI hay cảhai thanh SI và DI sẽ tự động giảm đi 1. Nếu DF=0, nội dung của các thanh ghi này sẽ tự động tăng 1 trongcáclệnhxửlýchuỗi.

Bit DF có thể thiết lập bằng lệnh STD, xóa bằng lệnh CLD hay có thể điều khiểnthôngquangănxếp.

NT(NestedTask),nhiệmvụlồngnhau.

NT cho biết lệnh đang thực hiện đang tiến triển bên trong cùng một nhiệm vụ hay sẽ gây ra việc chuyển nhiệm vụ. NT chỉ dùng trong chế độ bảo vệ của MP 80286.

IOPLchỉramứcđặcquyềnthấpnhấtmànhiệmvụđangthựchiệncầncó, để được phépthựchiệncáclệnhvào/ra. CũngnhưNT,IOPLchỉcóởchếđộbảovệ.

Thanh ghi trạng thái máy MSW

743

KiếntrúcMáytính NVTam,HTCước.IOIT,VAST

Thanh ghiMSWcó 16bitnhưngchỉ có4bitđượcdùng,còncác bitkhácdự

trữchocácbộvixửlý32bit(hình5.4).

- PE(Protected modeEnable), cho phép bộvi xửlýchuyển sangchế độbảo vệ.

Bit PE=1 chỉ rằng MP 80286 đang làm việc ở chế độ bảo vệ. Một khi đã được thiếtlậpthìchỉcóRESETmớixóaPEvề0được.

-MP(MonitorProcessorExtension).

BitMPchobiếtđangcómộtbộđồngxửlýcùnglàmviệc. - EM(EmulateProcessorExtension).

EMsẽchophépmôphỏngmộtbộđồngxửlý. -TS(TaskSwitch)

Bit này sẽ được thiết lập mỗi khi chuyển nhiệm vụ và thường được dùng trong trường hợp có bộ đồng xử lý. Khi chuyển nhiệm vụ không thay đổi phạm vi (context) củabộđồng xửlý. Nhưvậy, khiMP80286thựchiện lệnhđồngxửlýđầu tiên (sau chuyển nhiệm vụ), sẽ gây ra ngoạilệ số 7.Xử lý ngoại lệ nàycho biết có cầnthayđổiphạmvicủabộđồngxửlýhaykhông?

Một phần của tài liệu kiến trúc máy tính giới thiệu chung về máy tính điện tử (Trang 71 - 76)