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
87 trang |
Chia sẻ: oanh_nt | Lượt xem: 1439 | Lượt tải: 0
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ính41
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ính42
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ính43
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ính44
Chitiết:
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính45
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ính46
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ính47
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ính48
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ính49
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính410
Kiếntrúcbộ
vixửlý
Xemsơ
đồ:
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính411
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính412
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ính413
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ính414
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ính415
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ính416
Cácchântínhiệucơ
bảncủaCPU
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính417
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ính418
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ính419
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ính420
BộVXL
Pentium4hiệnnaychứa
55triệu
transistor:
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính421
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính422
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính423
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính424
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ính425
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính426
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ính427
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ính428
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ính429
CácchâncủaVXL8086
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính430
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ính431
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ính432
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính433
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ính434
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ính435
Cácchânchỉdùngchochế
độtốithiểu:
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính436
Cácchânchỉ
dùngchochế
độtốiđa:
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính437
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ính438
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ính439
Cácchântrạngtháibus(S0,S1,S2):
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính440
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ính441
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ính442
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ính443
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ính444
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ính445
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ính446
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ính447
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ính448
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ính449
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ính450
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ính451
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ính452
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ính453
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ính454
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ính455
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ính456
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ính457
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ính458
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ính459
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ính460
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ính461
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ính462
;Đổ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ính463
;Đổ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ính464
;Đổ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ính465
;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ính466
HếtPhần4
BộmônKỹthuậtmáytính&mạng–KhoaCNTT Kiếntrúcmáytính467
Các file đính kèm theo tài liệu này:
- bo_vi_xu_li_cpu_0615.docx