Bài giảng Kiến trúc máy tính: Bộ vi xử lý- CPU

Các thành phần của khối xử lý:

Bộ vi xử lý-CPU (Central Processing Unit): là bộ não của máy tính, nó xử lý các thông tin và điều khiển mọi hoạt động của máy tính

Bộ nhớ trong: Là bộ nhớ có khả năng liên lạc trực tiếp với bộ vi xử lý, là nơi lưu trữ dữ liệu phục vụ cho quá trình xử lý.

Các mạch vào ra: Để điều khiển việc giao tiếp với thiết bị ngoại vi

docx87 trang | Chia sẻ: oanh_nt | Lượt xem: 1439 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Kiến trúc máy tính: Bộ vi xử lý- CPU, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KIẾNTRÚCMÁYTÍNH Giảngviên: ThsPhạmThanhBình BộmônKỹ thuậtmáytính&mạng BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­1 Chương4: BỘVIXỬ LÝ-CPU Sơđồ hệthốngxửlý Kiếntrúcbộ vixửlý Quátrìnhthihànhlệnh Cácchântínhiệucơ bảncủaCPU HọVXLIntel8x86 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­2 Sơđồhệ thốngxử lý: Bus Bộnhớtrong CPU Mạchvào/ra BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­3 Cácthànhphầncủakhốixửlý Bộvixử lý–CPU (CentralProcessingUnit):Là bộnãocủamáytính,nóxử lýcácthôngtinvàđiều khiểnmọihoạtđộngcủamáytính. Bộnhớ trong: Làbộ nhớ cókhả năngliênlạctrực tiếpvớibộ vixử lý,là nơilưutrữdữ liệuphụcvụ choquátrìnhxử lý. Cácmạchvàora: Đểđiềukhiểnviệcgiaotiếp vớithiếtbị ngoạivi. HệthốngBus: Kếtnốicácbộ phậntrênlạivới nhau. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­4 Chitiết: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­5 BUS: BUS:Làhệ thốngdâydẫnvàcápnốiđể liênlạcgiữaCPUvớibộ mạchvàora. nhớ vàcácvi CóbaloạiBUS:Busđịachỉ (Address bus),Busdữ liệu(Databus),Busđiều khiển(Controlbus). BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­6 BusĐịachỉ: Dùngđể truyềnđịachỉ củaô nhớmà CPUcầnliênlạc. BusDữ liệu: Dùngđể truyềndữ liệu. BusĐiềukhiển: Dùngđể truyềncáctín hiệuđiềukhiểntrongquátrìnhliênlạc(Vídụ:tínhiệuxácđịnhquátrìnhtruy nhậpbộ nhớlà Đọc hayGhi) BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­7 Cácmạchvàora CPUkhôngthể liênlạctrựctiếpvớicác thiếtbị ngoạivimàphảithôngquacácvi mạchvào/ra. Mỗivimạchnàychứamộtvàithanhghi gọilà cổngvào/ra(Input/OutputPort). Tươngtự như bộnhớ, cáccổngvào/ra cũngđượcđánhđịachỉ. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­8 Phânloạivixửlý Multichip:dùng2haynhiềuchipLSI(Large ScaleIntergration:tíchhợptừ 1000÷10000 transistor)choALUvàcontrol. Microprocessor:dùng1chipLSI/VLSI(VeryLargeScaleIntergration:tíchhợp÷10000transistor)choALUvàcontrol. Singlechipmicroprocessor(còngọilàmicrocomputer/microcontroller):là1chip LSI/VLSIchứatoànbộ trước. cáckhốinhưở slide BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­9 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­10 Kiếntrúcbộ vixửlý Xemsơ đồ: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­11 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­12 Bộvixử lýcó2khốichứcnăng: Khốithựcthi(EU-Executionunit): nhiệmviệcthựchiệnlệnh. Đảm Khốigiaotiếpbus (BIU–Businterface unit):LiênlạcgiữaEUvớiBusngoài. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­13 Khốithựcthi(EU) ALU:Thựchiệncáclệnhsố họcvàlogic. Cáctoánhạngđượcchứatrongcácthanh ghidữ liệu(dataregister)haythanhghiđịa chỉ (addressregister),haytừ busnội (internalbus). CU(ControlUnit):Khốiđiềukhiểnhoạt độngcủaEU.Trongkhốinàycó mạch giảimãlệnh(Instructiondecoder). BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­14 Quátrìnhthihànhlệnh: Lấylệnh-Giảimã–Thựchiện BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­15 Quátrìnhthihànhlệnh: Khichươngtrìnhbắtđầu,Thanhghi  contrỏ lệnh sẽở địachỉ đầuchươngtrình.Địachỉ này đượcchuyểnquabộ nhớ thôngqua Addressbus. Khitínhiệu Readđưavào Controlbus,nộidung bộnhớ liênquansẽ đưavàobộ giảimãlệnh. Bộgiảimãlệnh sẽkhởiđộngcácphéptoáncần thiếtđể thựcthilệnh.Quátrìnhnàyđòihỏimột sốchukỳmáy(machinecycle)tuỳtheolệnh. Saukhilệnhđãthựcthi,bộ giảimãlệnh sẽđặt Contrỏ lệnh đếnđịachỉ củalệnhkế. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­16 Cácchântínhiệucơ bảncủaCPU BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­17 CK:Chânnhậntínhiệuxungnhịp Reset:Chânkhởiđộnglại Ready/Wait:Xácđịnhtrạngtháisẵnsàng phụcvụ hayphảichờ. BusReq:Tínhiệuyêucầuđượcsử Bus dụng BusAck:Xácnhậnyêucầuvề Bus BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­18 Read:Điềukhiểnđọc Write:Điềukhiểnghi Address:Cácchânxácđịnhđịachỉ  khicần giaotiếpvớibộ nhớ Data:Cácchândànhchodữ ... liệu. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­19 Họvixử lýIntel8x86 4004làbộ VXLđầutiêncủaIntel,rađời năm1971.Nóchứa 2300transitor: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­20 BộVXL Pentium4hiệnnaychứa 55triệu transistor: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­21 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­22 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­23 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­24 KiếntrúccủaIntel8086 Sơđồ khối Quátrìnhthihànhlệnh CácchâncủaVXL8086 Lậptrìnhngắt BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­25 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­26 8086có2thànhphần:vàEU(Khốithựcthi). BIU(KhốigiaotiếpBus) BIUcungcấpcácchứcnăngphầncứng,bao gồmtạocácđịachỉ bộnhớ vàI/Ođể chuyểndữ liệugiữa EUvớibênngoàiVXL. EUnhậncácmãlệnhchươngtrìnhvàdữ liệutừ BIU,thựcthicáclệnhnàyvàchứacáckếtquả trongcácthanhghi. Chúýrằng EUkhôngcóbushệ thốngnênphải thựchiệnnhậnvàxuấttấtcả thôngquaBIU. cácdữ liệucủanó BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­27 Quátrìnhthihànhlệnh: BIUnhậncácmãlệnhtừ bộnhớ vàđặtchúng vàohàngchờ lệnh. EU(ExecuteUnit–đơnvị thựcthi)sẽ giảimã vàthựchiệncáclệnhtronghàng. ChúýrằngcácđơnvịEUvàBIUlàmviệcđộc lậpvớinhaunên BIUcókhả năngnhậnmột lệnhmớitrongkhiđó. EUđangthựcthilệnhtrước KhiEUthựchiệnxonglệnh,nósẽ lấymãlệnh kếtiếptronghàngđợilệnh. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­28 Sosánh8086và8088: SựkhácbiệtgiữaVXL 8086và8088làởBIU. 8088sử dụngbusdữ liệurộng 8bit,còncủa 8086là16bit.Ngoàirahàngđợilệnhcủa 8088 dài4bytetrongkhicủa 8086là6byte. TuynhiêndoEUcủahaibộVXLnàygiốngnhau nêncácchươngtrìnhviếtcho 8086cóthể chạy đượctrên 8088màkhôngcầnthayđổigìcả. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­29 CácchâncủaVXL8086 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­30 Giảithích: 8086cóbusđịachỉ20bit,busdữ liệu16 bit,3chânnguồnvà 17chândùngchocác chứcnăngđiềukhiển. Tuynhiênmộtchâncóthể  đảmnhiệm nhiềuchứcnăngta(nhờkỹ thuậtphân kênhtheothờigian-timemultiplexing). BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­31 Cụthể: 16chân(AD0÷AD15): vừalàchândữ liệu, vừalàchânđịachỉ.Cácchânnàysẽ làcácđường địachỉ trongtrạngthái T1vàdữ liệutrongcác trạngthái T2–T4. 4chânđịachỉ vàtrạngthái (A16/S3÷A19/S6) 3chânnguồn (VCC,GND1,GND20) 17chânđịnhthờivàđiềukhiển BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­32 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­33 Chứcnăngcủacácchân 8086cóthể hoạtđộng 2chế độ:tốithiểu (minimummode)vàtốiđa(maximummode). Chếđộ tốithiểu chỉ dùngchocáchệ thống VXLđơngiản. Chếđộ tốiđa dùngchocáchệ thốngphức tạphơn,giaotiếpvớicácbộ riêng. nhớ vàI/O BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­34 Cácchândùngchungchocả tốiđavàtốithiểu: haichếđộ BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­35 Cácchânchỉdùngchochế độtốithiểu: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­36 Cácchânchỉ dùngchochế độtốiđa: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­37 CácchânNguồn: 8086sử dụngnguồncấpđiện +5V(VCC) vàcó2chânđất (GND). Dòngđiệncựcđạilà 340mA(10mAcho loại CMOS) BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­38 Xungnhịp: 8086sử dụngxungnhịpdạngxungchữ nhậtcóchukỳvớithờigiancạnhlênvà xuốngnhỏ hơn 10ns(đivàochânCLK). BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­39 Cácchântrạngtháibus(S0,S1,S2): BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­40 Cácchânđiềukhiểnbus(HOLD,HLDA, RQ/GT0,RQ/GT1,LOCK): Chế độtốithiểu: HOLD(giữ): Ngõvàotácđộngmứccaolàmcho VXLhở mạchtấtcả cácbuscủanó,táchVXL khỏibộ nhớ vàI/Ođể chophépthiếtbị khácxử lýbushệ thống.Quátrìnhnàygọilàtruyxuất bộnhớ trựctiếp(DMA–DirectMemory Access). HLDA(Holdacknowledge):Ghinhậnyêucầu DMAđốivớibộ điềukhiểnDMA. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­41 Chế độtốiđa: RQ/GT0,RQ/GT1(Request/Grant):Cácchânnày dùngcả haichứcnăngvào(nhậnyêucầu)vàra (chấpnhậnyêucầu). +Khimộtthiếtbị muốnlấyquyềnđiềukhiển bus cụcbộ,nósẽ phátyêucầubằngcáchđưatín hiệumứcthấpvào chânyêucầu. +Saukhinhậnyêucầu,8086sẽở trạngthái HOLDvàgửitínhiệuchấpnhậnrachânnày.đây,chânRQ/GT0cóđộưutiêncaohơnchânGT1. Ở RQ/ LOCK:báochocácthiếtbị khácbiếtkhôngthể sửdụngbuscụcbộ. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­42 ChânRESET: Hoạtđộngkhicóxungtácđộngmứccao, dùngđể khởiđộnglạihệ thống. ChânRESETthườngđượcsử dụngkhi hệthốngcósự cố. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­43 Cácchânđiềukhiểnbus(READY,IO/M, RD,WR, DEN,DT/R...): READY:Chânnày mứcthấpsẽứng vớitrạngtháikhôngsẵnsàng,cònmức caothì ứngvớitrạngtháisẵnsàng. ChânIO/M(IO/Memory–Xuấtnhập/Bộ nhớ): xácđịnhchukỳbushiệnhànhđang làmviệcvớibộ (mứccao). nhớ (mứcthấp)hayI/O BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­44 ChânRD(Read):Xácđịnhchiềutruyền dữliệutừ bộnhớ hayI/OđếnVXL. ChânWR(Write):tínhiệunàyngượcvới RD,nóxácđịnhchiềutruyềndữ liệutừ VXLđếnI/Ohaybộ nhớ. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­45 DEN(DataEnable–chophépdữ liệu): Chânnày đượcdùngvớiDT/Rđể chophépnốicácbộ đệm haichiềuvàodatabus.Nóngănngừasự tranh chấpbusbằngcáchcấmcácbộ đệmdữ liệucho đếntrạngtháiT2,khicácđườngdữ liệu/địachỉ khôngcònlưutrữ địachỉ củabộ nhớ hayI/Onữa. ChânDT/R(Datatransmit/receive–truyền/nhận dữliệu): dùngđể điềukhiểnchiềucủaluồngdữ liệuquacácbộ đệm(nếucó)vàobusdữ liệucủa hệthống.Khi mứcthấp,nóchỉ thựchiệntácvụ đọcvàkhi ... mứccaonóchỉ thựchiệntácvụ ghi. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­46 Lậptrìnhngắt Ngắtlàhànhđộngdừngchươngtrìnhđang chạyđể thựchiệnmộtchươngtrìnhkhác (chươngtrìnhnàyđượcgọilà ngắt). chươngtrìnhxửlý BộVXLsẽ  dừngcáccôngviệcđangthựchiện khichânINTRhaychânNMIcủanónhậnđượctínhiệuyêucầungắt.Sauđónótraoquyềnđiều khiểnlạichochươngtrìnhxử Tínhiệuyêucầungắtcóthể lýngắt. domộtthiếtbị phầncứnghoặcdomộtlệnhINTtrongchươngtrìnhsinhra. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­47 Quátrìnhngắtđượcmôtả tronghìnhdướiđây: Chươngtrìnhbị Lệnh1 Lệnh2 ... INT ... ngắt  Chươngtrìnhxử Lệnh1 Lệnh2 ... IRET  lýngắt BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­48 Chươngtrìnhxử lýngắtcầnđượckếtthúc bằnglệnh IRETđể saukhithựchiệnxong cóthể quaytrở vềthựchiệntiếpchương trìnhbị ngắttrướcđó. Cónhiềuloạitínhiệungắtkhácnhau,để phânbiệtcácngắtcầndựavàosố hiệucủa chúng.Bộ vixửlý 8086cóthể quảnlý 256 ngắt,đượcđánhsố FFh. lầnlượttừ0,1,2,..., Dướiđâylàbảngdanhsáchcácngắt: BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­49 Sốhiệungắt Chứcnăng 0–1Fh NgắtcủaBIOS 20h–3Fh NgắtcủaDOS 40h–7Fh Dự trữ 80h–F0h Dùng cho chương trình BASIC trongROM F1h–FFh Khôngsử dụng BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­50 Giảithích: Chươngtrìnhxử  lýngắtcóthể  làmộtbộ  phậncủa BIOShaycủaviết. DOS,cũngcóthể dongườisử dụngtự Tacầnphânbiệtrõhaikháiniệm: “Ngắt”và “Chươngtrìnhxử lýngắt”. Khôngphảisố hiệungắt nàocũngcócóchươngtrìnhxử lýngắttương ứng. Khimộtngắtcósố hiệutừ0–1Fhxuấthiệnthì chúngsẽ đượcxử lýbởicácchươngtrìnhviếtsẵn nằmtrong ROMBIOS(chủ yếulàgiảiquyếtcácyêu cầuvào/racơ bản). Cònnếungắtcósố hiệutừ20h–3Fhthìsẽ dohệ điềuhành DOSxử lý. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­51 Phânloạingắt: Đểphânloạicầndựatrênmộttiêuchínào đó,ở đây tasẽ phânloạingắtdựatrêncách thứcphátsinhngắt,tạmchialàmhailoạisau: NgắtmềmNgắtcứng BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­52 Ngắtmềm Tagọimộtngắtlàngắtmềmnếunóđượcphát sinhkhicólờigọingắtbằnglệnhchươngtrình. CúphápcủalệnhINTlà: INTtrong INT <Số Vídụ:  hiệungắt> INT 21h ;Gọingắt21hcủaDOSINT 13h ;Gọingắt13hcủaBIOS BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­53 Ngắtcứng Mộtngắtcứngphátsinhkhicómộtthiếtbị  phần cứnggửitínhiệuyêucầungắttớibộ Vídụ: vixử lý. Khitagõmộtphímtrênbànphímhaybấmchuột, sẽcótínhiệungắtgửitớibộ vixử lýđể yêucầu xửlýhànhđộngvừathựchiện. Cácngắtđượckíchhoạttừ thiếtbị ngoài(bàn phím,chuột...)giốngnhư vídụ trênđượcgọilà Ngắtcứngngoài. Cònnếungắtphátsinhbởicác kinhkiệnbổ trợ nằmtrênmainboardthìđượcgọi làNgắtcứngtrong (hayngắtcứngnộibộ). BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­54 Ngắt17h–Vào/ramáyin: ĐâylàngắtdoBIOSquảnlý,nócóbachứcnăng: Chứcnăngsố 0:Đưamộtkítự ramáyin Chứcnăngsố Chứcnăngsố 1:Khởitạocổngmáyin 2:Kiểmtratrạngtháimáyin BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­55 Chứcnăngsố in 0:Đưamộtkítự ramáy Cácthamsố: AH=0 AL=MãASCIIcủakítự  cầnin DX=Số hiệumáyin Vídụ: Gửikítự  ‘A’ramáyin. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­56 Giải: MOV AH,0 MOV AL,‘A’ ;Kítự  cầnin MOV DX,0 ;Máyinsố0 INT 17hMOV AH,0 MOV AL,0Ah ;intiếpkítự INT 17h xuốngdòng BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­57 Ngắt21h ĐâylàngắthaydùngnhấtcủaDOS,nócórất nhiềuchứcnăng.Ở phầntrướctađãsử dụng bốnchứcnăngcủangắtnày(chứcnăngsố 1,2, 9và4Ch).Trongphầnnàytasẽ tìmhiểuthêm mộtsố chứcnăngkhác: Chứcnăngsố 39h:Tạomộtthư mụctrênổ đĩa Chứcnăngsố thống ... 2Ch:Lấythờigiantừ đồnghồhệ BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­58 Chứcnăngsố đĩa Các tham 39h:Tạomộtthư AH=39h mụctrênổ số: DS:DX=Địachỉ củachuỗichứa đườngdẫn(chuỗinàyphảicótậncùnglà0) Vídụ: Tạothư  mụcASMtrong  đĩaC. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­59 TITLE Taothumuc .MODEL SMALL .STACK 100H .DATA DuongDan DB ’C:\ASM’,0 .CODE MAIN PROC MOV AX,@DATAMOV DS,AX MOV AH,39h ;Chứcnăngsố39h:tạothưmụcLEA DX,DuongDan ;Lấyđịachỉoffsetcủachuỗiđặt ;vàoDXINT 21h ;GọingắtMOV AH,4Ch ;KếtthúcINT 21h MAINENDPENDMAIN BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­60 Chứcnăngsố 2Ch:Lấythờigiantừ đồng hồhệ thống Vào: AH=2Ch Ra: CH=giờ  (0≤CH≤23) Vídụ: CL=phút (0≤CL≤59) DH=giây (0≤DH≤59)DL=%giây (0≤DL≤99) Viếtchươngtrìnhhiệnramànhìnhgiờ hiệntạicủahệ thống. BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­61 TITLE Hienthoigian .MODEL SMALL .STACK 100H .DATA Time_Buf DB ’00:00:00$’ .CODE MAIN PROC MOV AX,@DATAMOV DS,AX MOV AH,2Ch ;Chứcnăngsố2Ch:đọcthờigian INT 21h ;Gọingắt BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­62 ;ĐổiGiờ(trongCH)từsốthậpphânsangmãASCIIrồi ;cấtvàoTime_Buf MOV AL,CH ;ChuyểnGiờvàoAXMOV AH,0 MOV DL,10 ;ChiaAXcho10 DIV DL ;AL=Thương=Sốhàngchục ;AH=Sốdư=Sốhàngđơnvị ADD AL,30h ;ĐổisốhàngchụcsangmãASCIIADD AH,30h ;ĐổisốhàngđơnvịsangmãASCIIMOV Time_Buf,AL ;Cấtvàochuỗi MOV Time_Buf+1,AH BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­63 ;ĐổiPhút(trongCL)từsốthậpphânsangmãASCIIrồi ;cấtvàoTime_Buf MOV AL,CL ;AXchứaPhútMOV AH,0 MOV DL,10 ;ChiaAXcho10 DIV DL ;ALchứasốhàngchụccủaPhút ;AHchứasốhàngđơnvịcủaPhútADD AL,30h ;ĐổisangmãASCII ADD AH,30h MOV Time_Buf+3,AL;Cấtvàochuỗi(saudấuhaichấm)MOV Time_Buf+4,AH BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­64 ;ĐổiGiây(trongDH)từsốthậpphânsangmãASCIIrồi ;cấtvàoTime_Buf MOV AL,DH ;AXchứaGiâyMOV AH,0 MOV DL,10 ;ChiaAXcho10 DIV DL ;ALchứasốhàngchụccủaGiây ;AHchứasốhàngđơnvịcủaGiâyOR AX,3030h ;ĐổisangmãASCII MOV Time_Buf+6,AL MOV Time_Buf+7,AH BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­65 ;Hiệnchuỗichứathờigian(Time_Buf)ramànhình. MOV AH,9 ;Chứcnăngsố9 LEA DX,Time_Buf ;Lấyđịachỉchuỗikítựđặtvào ;thanhghiDXINT 21h ;GọingắtMOV AH,4Ch ;KếtthúcINT 21h MAINENDP ENDMAIN BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­66 HếtPhần4 BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính4­67

Các file đính kèm theo tài liệu này:

  • docxbo_vi_xu_li_cpu_0615.docx
Tài liệu liên quan