Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Giáo trình hợp ngữ
Nội dung xem thử
Mô tả chi tiết
TRÖÔØNG ÑAÏI HOÏC ÑAØ LAÏT
F 7 G
GIAÙO TRÌNH
HÔÏP NGÖÕ
NGUYEÃN HÖÕU LOÄC
2002
Hôïp Ngöõ - 2 -
MUÏC LUÏC
LÔØI MÔÛ ÑAÀU ..................................................................................................................... 4
CHÖÔNG 1: GIÔÙI THIEÄU CHUNG ................................................................................... 5
I. CAÙC THANH GHI TRONG VI XÖÛ LYÙ HOÏ INTEL:................................................... 5
1. Caùc thanh ghi thoâng duïng: ....................................................................................... 6
2. Caùc thanh ghi phaân ñoaïn ......................................................................................... 7
3. Caùc thanh ghi chæ muïc vaø con troû:............................................................................ 7
4. Thanh ghi traïng thaùi (FLAG)................................................................................... 8
II. ÑÒA CHÆ OÂ NHÔÙ: ....................................................................................................... 8
III. MOÄT SOÁ LEÄNH CÔ BAÛN: ........................................................................................ 9
CHÖÔNG 2: GOÏI NGAÉT VAØ TRÌNH DEBUG..................................................................11
I. CAÙC LEÄNH GOÏI NGAÉT: ...........................................................................................11
II. TRÌNH DEBUG:........................................................................................................12
III. VAØI CHÖÔNG TRÌNH ÖÙNG DUÏNG :.....................................................................15
CHÖÔNG 3: HÔÏP NGÖÕ DUØNG TRONG PC.....................................................................19
I. DOØNG LEÄNH:.............................................................................................................19
II. DÖÕ LIEÄU:...................................................................................................................20
1. Haèng: ......................................................................................................................20
2. Bieán: .......................................................................................................................21
III. CAÁU TRUÙC CHÖÔNG TRÌNH:...............................................................................22
CHÖÔNG 4: PHÖÔNG PHAÙP LAÄP TRÌNH......................................................................27
I. TOÅNG QUAN: ............................................................................................................27
II. CAÙC LEÄNH LIEÂN QUAN ÑEÁN REÕ NHAÙNH:...........................................................27
1. Caùc leänh reõ nhaùnh coù ñieàu kieän: ............................................................................28
2. Caùc leänh reõ nhaùnh khoâng ñieàu kieän:......................................................................29
III. CAÙC CAÁU TRUÙC ÑIEÀU KHIEÅN:.............................................................................29
CHÖÔNG 5: NGAÊN XEÁP VAØ THUÛ TUÏC..........................................................................38
I. NGAÊN XEÁP:................................................................................................................38
II. THUÛ TUÏC: .................................................................................................................38
III. SÖÛ DUÏNG PTR VAØ LABEL: ...................................................................................40
IV. VAØI CHÖÔNG TRÌNH ÖÙNG DUÏNG:......................................................................41
1. Hieän soá thaäp phaân:..................................................................................................41
2. Hieän soá nhò phaân vaø thaäp luïc phaân..........................................................................44
3. Ñoïc töø baøn phím......................................................................................................46
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 3 -
CHÖÔNG 6: MOÑUN CHÖÔNG TRÌNH & CAÙC KIEÅU ÑÒNH VÒ ÑÒA CHÆ.............51
I. MOÑUN CHÖÔNG TRÌNH .......................................................................................51
1. Ñònh höôùng bieân dòch extrn.....................................................................................51
2. Ñònh höôùng bieân dòch public ...................................................................................52
3. Laäp thö vieän - taïo vó leänh (macro).........................................................................54
II. CAÙC KIEÅU ÑÒNH VÒ ÑÒA CHÆ..................................................................................56
III. CHÖÔNG TRÌNH ÖÙNG DUÏNG...............................................................................60
IV. TAÏO TAÄP TIN .COM...............................................................................................67
1- Daïng cuûa moät chöông trình COM...........................................................................68
2- Öùng duïng taäp tin .com ............................................................................................69
CHÖÔNG 7: SÖÛ DUÏNG PHAÂN ÑOAÏN TOAØN PHAÀN.....................................................76
I- SÖÛ DUÏNG CAÙC ÑÒNH HÖÔÙNG BIEÂN DÒCH............................................................76
1. Segment..................................................................................................................76
2. Ñònh höôùng bieân dòch assume.................................................................................79
II - DAÏNG CUÛA CHÖÔNG TRÌNH .EXE SÖÛ DUÏNG TRONG CAÙC PHÖÔNG PHAÙP
CUÕ: .................................................................................................................................79
III- VÍ DUÏ CHÖÔNG TRÌNH COM..............................................................................83
CHÖÔNG 8: CHÖÔNG TRÌNH ÖÙNG DUÏNG..................................................................85
I. IN NOÄI DUNG VAÊN BAÛN RA MAÙY IN: ...................................................................85
1. Söû duïng haøm 40h ngaét 21h (DOS) ñeå thöïc hieän......................................................85
2. Söû duïng haøm 01h ngaét 17h (ROMBIOS) ................................................................85
II. ÑEÁM SOÁ TÖØ TRONG MOÄT TAÄP TIN ......................................................................86
III- ÑOÅI NGÖÔÏC CHUOÃI.............................................................................................89
IV. CHÖÔNG TRÌNH HIEÅN THÒ THÔØI GIAN .............................................................90
V. CHÖÔNG TRÌNH THÖÔØNG TRUÙ BOÄ NHÔÙ............................................................97
Phuï luïc A: MOÄT SOÁ CHÖÔNG TRÌNH PHUÏC VUÏ CUÛA DOS.......................................105
Phuï luïc B: MOÄT SOÁ CHÖÔNG TRÌNH PHUÏC VUÏ CUÛA ROM-BIOS............................108
TAØI LIEÄU THAM KHAÛO.................................................................................................110
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 4 -
LÔØI MÔÛ ÑAÀU
Hôïp ngöõ laø moät moân hoïc daønh cho sinh vieân caùc chuyeân ngaønh kyõ thuaät.
Laø moät ngoân ngöõ can thieäp saâu vaøo heä thoáng maùy tính, hôïp ngöõ thöôøng ñöôïc söû
duïng trong nhöõng phaàn vieäc töông ñoái tinh teá nhö ñieàu khieån heä thoáng, vi ñieàu
khieån ...
Tuy vaäy vôùi nhöõng ngöôøi laàn ñaàu tieân laøm quen vôùi ngoân ngöõ naøy, vieäc
tieáp thu quaû thaät raát khoù khaên bôûi leõ ngoân ngöõ naøy gaàn vôùi ngoân ngöõ maùy vaø söû
duïng caùc kyù töï gôïi nhôù neân khoù hieåu hôn söû duïng caùc ngoân ngöõ caáp cao nhö
Pascal, C..v.v...Ngoaøi ra, ngöôøi hoïc khoâng nhöõng phaûi bieát phaàn meàm maø coøn
phaûi hieåu phaàn cöùng ôû möùc ñoä naøo ñoù nöõa. Ñieàu naøy taïo ra moät aùp löïc raát lôùn gaây
khoù khaên cho ngöôøi hoïc.
Trong nhieàu naêm giaûng daïy moân naøy, toâi nhaän thaáy hieän coù raát nhieàu
saùch, taøi lieäu tham khaûo vieát veà hôïp ngöõ song ñeå coù moät taøi lieäu ñaùp öùng yeâu caàu
cuûa sinh vieân trong vieäc tieáp thu moân hôïp ngöõ tuaàn töï töø deã ñeán khoù coù phöông
phaùp thì thaät hieám.
Do vaäy toâi thöïc hieän giaùo trình naøy vôùi mong öôùc coù moät taøi lieäu ñaùp öùng
yeâu caàu treân. Trong giaùo trình, toâi coù ñöa vaøo raát nhieàu ví duï vaø öùng duïng töø thaáp
ñeán cao ñeå sinh vieân coù theå tieáp thu deã daøng moân hoïc naøy.
Tuy vaäy taøi lieäu naøy khoâng sao traùnh khoûi nhöõng sai soùt, raát mong caùc
ñoàng nghieäp, sinh vieân vaø baïn ñoïc goùp yù
Hoaøn thaønh giaùo trình naøy, toâi xin chaân thaønh caùm ôn ñeán caùc ñoàng
nghieäp trong Khoa Vaät lyù Tröôøng Ñaïi hoïc Dalat ñaõ ñoäng vieân, goùp yù vaø taïo ñieàu
kieän cho toâi trong quaù trình thöïc hieän. Toâi cuõng xin ghi nhaän söï ñoùng goùp cuûa
nhieàu theá heä sinh vieân khoa vaät lyù, khoa toaùn - tin ñeå giaùo trình naøy ñöôïc saép xeáp
ngaøy caøng deã hieåu vaø hôïp lyù hôn.
Nguyeãn Höõu Loäc
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 5 -
CHÖÔNG 1: GIÔÙI THIEÄU CHUNG
Taïi sao chuùng ta phaûi hoïc laäp trình vôùi hôïp ngöõ trong khi hieän nay
coù raát nhieàu ngoân ngöõ caáp cao nhö C hoaëc Pascal duøng ñeå laäp trình deã daøng
hôn? Coù theå noùi coù nhieàu caâu traû lôøi cho caâu hoûi naøy. Nhöng ban ñaàu, chuùng
ta coù theå xeùt ñoái vôùi hôïp ngöõ thì moãi leänh töông öùng vôùi moät leänh ngoân ngöõ
maùy. Noùi caùch khaùc, neáu moãi doøng leänh trong chöông trình laø moät leänh hôïp
ngöõ vaø moät töø maùy töông öùng vôùi moät leänh maùy nhö vaäy n doøng trong chöông
trình seõ taïo ra moät chöông trình maùy goàm n töø. Nhö vaäy hôïp ngöõ coù theå xem
laø ngoân ngöõ raát gaàn vôùi ngoân ngöõ maùy, chuùng ta coù theå tieáp caän ñeán taát caû caùc
ngoùc ngaùch cuûa maùy vaø quan troïng hôn laø chuùng ta thöïc hieän chöông trình
vieát baèng hôïp ngöõ nhanh hôn so vôùi vieát baèng nhöõng ngoân ngöõ caáp cao khaùc.
Tuy vaäy cuõng caàn thaáy raèng raát nhieàu ngoân ngöõ caáp cao hoå trôï giao dieän vôùi
hôïp ngöõ, noùi caùch khaùc laø chuùng ta coù theå vieát 1 ñoaïn hôïp ngöõ trong chöông
trình vieát baèng ngoân ngöõ caáp cao nhö C hoaëc Pascal... Ñieàu naøy cho pheùp
chuùng ta laäp trình hieäu quaû hôn vôùi nhöõng phaàn vieäc saùt vôùi heä thoáng vaø ñoøi
hoûi thôøi gian nhanh.
Trong kieán truùc maùy tính nhieàu caáp, vieäc chuyeån moät chöông trình
cuûa ngöôøi söû duïng töø moät ngoân ngöõ naøy sang chöông trình duøng ngoân ngöõ
khaùc goïi laø chöông trình dòch. Ngoân ngöõ söû duïng ñeå vieát chöông trình ban ñaàu
goïi laø ngoân ngöõ nguoàn coøn ngoân ngöõ sau khi dòch goïi laø ngoân ngöõ ñích.
Ngöôøi ta phaân bieät caùc chöông trình dòch ra laøm hai loaïi tuøy theo
moái quan heä giöõa ngoân ngöõ nguoàn vaø ngoân ngöõ ñích. Khi ngoân ngöõ nguoàn
goàm nhöõng kyù töï gôïi nhôù leänh cuûa ngoân ngöõ maùy thì chöông trình dòch seõ goïi
laø hôïp dòch (assembler) vaø ngoân ngöõ nguoàn laø hôïp ngöõ (assembly language).
Trong khi ñoù ngoân ngöõ nguoàn laø ngoân ngöõ caáp cao nhö C hoaëc Pascal thì
chöông trình dòch seõ goïi laø bieân dòch.
I. CAÙC THANH GHI TRONG VI XÖÛ LYÙ HOÏ INTEL:
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 6 -
Boä vi xöû lyù 8088 coù theå ñòa chæ hoùa ñeán 220 byte baét ñaàu töø ñòa chæ 0. Nhöõng
leänh cuûa 8088 coù theå thöïc hieän vôùi nhöõng töø 8 bit hay byte cuõng nhö vôùi nhöõng töø 16 bits.
8088 söû duïng nhöõng ñòa chæ 20 bits ñeå truy caäp ñeán 220 byte oâ nhôù. Vì caùc thanh ghi coù
chieàu daøi laø 16 bits neân caùc ñòa chæ duøng 20 bits seõ coù khoù khaên trong thöïc hieän. Ñeå giaûi
quyeát vaán ñeà naøy, nhöõng nhaø saûn xuaát boä vi xöû lyù ñaõ söû duïng 4 thanh ghi phaân ñoaïn (moät
duøng cho leänh, moät cho döõ lieäu, moät cho ngaên xeáp vaø moät döï tröõ)
Nhöõng thanh ghi coù theå xem laø nhöõng oâ nhôù naèm beân trong boä vi xöû lyù coù thôøi
gian truy xuaát cao, vôùi 8088, chuùng ta coù 14 thanh ghi chia ra laøm 4 loaïi:
- Caùc thanh ghi laøm vieäc;
- Caùc thanh phaân ñoaïn;
- Caùc thanh ghi böôùc nhaûy (offset);
- Thanh ghi traïng thaùi (Côø: FLAG)
1. Caùc thanh ghi thoâng duïng:
Bao goàm 4 thanh ghi. Moãi thanh ghi ñeàu coù nhöõng chöùc naêng rieâng maëc duø
chuùng cuõng laø nhöõng nôi löu tröõ nhöõng keát quaû trung gian:
AX laø thanh ghi 16 bit goïi laø thanh ghi tích luõy (Accumulator) söû duïng khi
thöïc hieän caùc pheùp tính soá hoïc.
BX laø thanh ghi 16 bit goïi laø thanh ghi neàn (Base register)
CX laø thanh ghi 16 bit goïi laø thanh ghi ñeám (Counter)
DX laø thanh ghi 16 bit goïi laø thanh ghi döõ lieäu (Data)
Neân bieát raèng moãi thanh ghi naøy ñeàu coù theå phaân ra laøm hai thanh ghi 8 bit söû
duïng rieâng reõ ñöôïc:
AX = AH vaø AL;
BX = BH vaø BL;
CX = CH vaø CL;
DX = DH vaø DL.
Cuõng neân nhôù raèng nhöõng pheùp toaùn thöïc hieän vôùi caùc thanh ghi luoân nhanh
khi chuùng thöïc hieän vôùi caùc oâ nhôù trong boä nhôù.
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 7 -
2. Caùc thanh ghi phaân ñoaïn
Goàm 4 thanh ghi:
CS vieát taét töø "Code Segment", laø nôi löu tröõ ñòa chæ cuûa phaân ñoaïn boä nhôù
taïi ñoù caùc leänh trong chöông trình naïp vaøo (maõ maùy).
DS vieát taét töø "Data Segment", laø nôi löu tröõ ñòa chæ cuûa phaân ñoaïn boä nhôù
taïi ñoù ñaët döõ lieäu (data) cuûa chöông trình.
SS vieát taét töø "Stack Segment", laø nôi löu tröõ ñòa chæ cuûa phaân ñoaïn ngaên
xeáp.
ES vieát taét töø "Extra Segment", laø nôi löu tröõ ñòa chæ cuûa phaân ñoaïn döï tröõ
thöôøng duøng ghi giöõ döõ lieäu.
3. Caùc thanh ghi chæ muïc vaø con troû:
Caùc thanh ghi naøy giöõ giaù trò böôùc nhaûy (offset ) keát hôïp vôùi ñòa chæ phaân ñoaïn.
Toång coäng coù 5 thanh ghi:
SI vieát taét töø "Source Index". Thanh ghi naøy laø thanh ghi 16 bit söû duïng khi
thöïc hieän caùc pheùp toaùn vôùi chuoãi (daõy kyù töï); thöôøng ñöôïc duøng keát hôïp vôùi thanh ghi
phaân ñoaïn DS.
DI vieát taét töø "Destination Index". Thanh ghi naøy cuõng laø thanh ghi
16 bit söû duïng khi thöïc hieän caùc pheùp toaùn vôùi chuoãi (daõy kyù töï); thöôøng ñöôïc
duøng keát hôïp vôùi thanh ghi phaân ñoaïn DS. Tuy nhieân trong tröôøng hôïp
chuyeån chuoãi thì noù seõ keát hôïp vôùi thanh ghi phaân ñoaïn ES.
BP hoaëc "Base Pointer". Thanh ghi 16 bit naøy keát hôïp vôùi thanh ghi phaân ñoaïn
SS (SS:BP) ñeå ñöa döõ lieäu vaøo trong ngaên xeáp khi goïi chöông trình con (CALL)
SP hoaëc "Stack Pointer". Thanh ghi 16 bit naøy cuõng keát hôïp vôùi thanh ghi phaân
ñoaïn SS (SS:SP) ñeå chæ ra phaàn töû cuoái cuûa ngaên xeáp.
IP goïi laø con troû leänh (Instruction Pointer). Thanh ghi 16 bit naøy keát hôïp vôùi
thanh ghi phaân ñoaïn CS (CS:IP) ñeå chæ ñeán leänh tieáp theo seõ thöïc hieän. Noäi dung cuûa
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 8 -
thanh ghi naøy khoâng theå thay ñoåi tröïc tieáp; noù chæ bò thay ñoåi moät caùch giaùn tieáp thoâng qua
caùc leänh nhaûy böôùc, qua caùc chöông trình con vaø qua caùc ngaét.
4. Thanh ghi traïng thaùi (FLAG)
Thanh ghi trang thaùi laø thanh ghi goàm 16 bit (Côø). Giaù trò cuûa töøng bit moät
trong thanh ghi naøy ñoäc laäp vôùi caùc bit khaùc trong cuøng thanh ghi. Ngöôøi ta thöôøng xöû lyù
töøng bit moät vaø moät soá bit coù aûnh höôûng ñeán hoaït ñoäng cuûa chöông trình. Nhöõng bit naøy
goïi laø caùc chæ baùo (indicator) coù theå chia ra laøm 2 loaïi:
Caùc chæ baùo traïng thaùi:
bit yù nghóa vieát taét
0 Nhôù (Carry) CF
2 Chaün leû (Parity) PF
4 Nhôù phuï (Auxiliairy carry) AF
6 Khoâng (Zero) ZF
7 Daáu (Sign) SF
11 Traøn (Overflow) OF
Caùc chæ baùo ñieàu khieån
bit yù nghóa vieát taét
8 Baåy (Trap) TF
9 Ngaét (Interrupt) IF
10 Höôùng (Direction) DF
Caùc bit 1, 5, 12, 13, 14, 15 cuûa thanh ghi traïng thaùi 16 bit khoâng ñöôïc söû duïng.
II. ÑÒA CHÆ OÂ NHÔÙ:
Boä nhôù cuûa 1 maùy tính bao goàm 1 daõy tuaàn töï caùc oâ nhôù ñöôïc ñaùnh soá trong ñoù
löu giöõ 1 giaù trò soá naøo ñoù. Soá töông öùng cuûa 1 oâ nhôù goïi laø ñòa chæ, moãi oâ nhôù giöõ 8 bit.
Treân nhöõng maùy tính IBM PC, boä nhôù ñöôïc chia thaønh caùc vuøng 65536 byte goïi laø phaân
ñoaïn, ñòa chæ cuûa 1 oâ nhôù seõ bao goàm 2 phaàn: soá phaân ñoaïn vaø böôùc nhaûy (offset) tính töø vò
trí ban ñaàu cuûa phaân ñoaïn; noù seõ coù daïng:
Phaân ñoaïn: böôùc nhaûy
(Segment:Offset)
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 9 -
Caùc leänh chieám moät hoaëc nhieàu oâ nhôù keá tieáp trong boä nhôù, ñieàu naøy phuï
thuoäc vaøo ñoä phöùc taïp cuûa leänh.
III. MOÄT SOÁ LEÄNH CÔ BAÛN:
MOV: laø moät trong nhöõng leänh chính cuûa hôïp ngöõ. Noäi dung cuûa toaùn haïng beân
phaûi seõ chuyeån sang toaùn haïng beân traùi
Ví duï:
MOV AX, 10
MOV AX, BX
MOV AX, [BX]
LEA:(Load Effective Address) töông töï nhö MOV ....,OFFSET....
Ví duï:LEA DX,MSG thay vì MOV DX, OFSET MSG
ADD: coäng 2 soá 8 bit hoaëc 16 bit, keát quaû ñöa vaøo boä nhôù hoaëc thanh ghi.
Ví duï:
ADD AX, BX
ADD AH, AL
INC: theâm moät ñôn vò vaøo thanh ghi cho tröôùc, keát quaû nhaän ñöôïc seõ töông töï nhö
COÄNG vôùi 1.
Ví duï:
INC AX
INC BL
ADC: thöïc hieän leänh coäng nhö ADD sau ñoù theâm giaù trò coù trong chæ baùo CARRY
vaøo keát quaû nhaän ñöôïc
Ví duï:
ADC DL,30
SUB: thöïc hieän tröø 1 löôïng töø 1 soá, keát quaû ñöôïc ñaët vaøo boä nhôù hoaëc thanh ghi.
Ví duï:
SUB AL, BL
MUL: nhaân toaùn haïng cho tröôùc vôùi moät löôïng ñaët trong thanh AX hoaëc AL
(accumulator). Keát quaû seõ ñaët vaøo AH vaø AL neáu caùc toaùn haïng laø byte vaø ñaët trong
DX vaø AX neáu toaùn haïng laø töø (word).
Ví duï:
MUL BH
MUL BX
DIV: chia 1 töø (soá bò chia trong AX) bôûi 1 toaùn haïng 8 bit (soá chia) hoaëc chia 1 töø
ñoâi - double word (trong DX, AX) bôûi moät toaùn haïng 16 bit. Thöông soá seõ ñaët trong
AL vaø soá dö ñaët trong AH neáu toaùn haïng laø moät byte vaø thöông soá seõ ñaët trong AX vaø
soá dö ñaët trong DX neáu söû duïng 1 töø-word.
Ví duï: DIV BX
DIV BH
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 10 -
CMP: cho pheùp so saùnh noäi dung hai thanh ghi hoaëc oâ nhôù. So saùnh laø thöïc hieän 1
pheùp tröø tuy nhieân muïc ñích ñaït ñöôïc khoâng phaûi laø keát quaû cuûa pheùp trö ø maø chuû
yeáu laø so saùnh hai toaùn haïng do vaäy sau leänh so saùnh thöôøng thaáy leänh nhaûy böôùc coù
ñieàu kieän phuï thuoäc vaøo caùc chæ baùo trong quaù trình so saùnh.
Ví duï: CMP DL, 3A
JNZ: nhaûy böôùc ñeán moät nhaõn (label) cho tröôùc neáu chæ baùo zero laø 0.
Ví duï:
JNZ Tiep
JLE: nhaûy böôùc ñeán moät nhaõn (label) cho tröôùc neáu keát quaû laø nhoûù hôn hoaëc baèng 0.
Ví duï:
JLE Lap
LOOP: laëp laïi luùc naøy thanh ghi CX giaûm 1 ñôn vò vaø thöïc hieän moät söï reõ nhaùnh
ñeán moät nhaõn cho tröôùc cho ñeán khi CX baèng 0.
Ví duï:
LOOP Lap
RCL: dòch chuyeån taát caû caùc bit veà phía traùi moät vò trí hoaëc nhieàu vò trí. Nhöõng bit
ra khoûi beân TRAÙI seõ vaøo chæ baùo CARRY tröôùc khi ñöa laïi vaøo beân phaûi cuûa toaùn
haïng.
Ví duï:
RCL AH,1
SHR: dòch chuyeån taát caû caùc bit veà phía phaûi moät vò trí hoaëc nhieàu vò trí.
Ví duï:
SHR AH,1
Nguyeãn Höõu Loäc Khoa Vaät Lyù
Hôïp Ngöõ - 11 -
CHÖÔNG 2: GOÏI NGAÉT VAØ TRÌNH DEBUG
I. CAÙC LEÄNH GOÏI NGAÉT:
Moät maùy tính thöôøng coù raát nhieàu loaïi thieát bò ngoaïi vi quan troïng nhö baøn
phím, maøn hình, ñóa, maùy in, v.v... Muoán ñieàu khieån caùc thieát bò naøy ñoøi hoûi chuùng ta phaûi
vieát chöông trình baèng caùc leänh maùy daøi doøng vaø phöùc taïp. Nhôø söï giuùp ñôõ cuûa heä ñieàu
haønh MSDOS hoaëc ROM-BIOS chuùng ta coù theå taùc ñoäng moät thieát bò ngoaïi vi baèng caùch
chæ söû duïng 1 haøm ñöôïc ñaùnh soá vaøo chöông trình keøm theo moät soá caùc thoâng soá. Taát caû
ñieàu naøy ñeàu thöïc hieän thoâng qua caùc thanh ghi. Nhöõng haøm naøy goïi laø ngaét.
Leänh INT laø leänh goïi ngaét ñöôïc ñaùnh soá taïi vò trí toaùn haïng ñöôïc xem nhö goïi
moät chöông trình con. Moät ngaét coù theå bao goàm nhieàu dòch vuï, soá cuûa dòch vuï ñöôïc ñöa
vaøo thanh ghi AH tröôùc khi goïi ngaét.
Ví duï 1: Hieän 1 kyù töï ASCII leân maøn hình
MOV DL,41h
MOV AH,02h
INT 21h
Ví duï 2: Ñoïc kyù töï tieáp töø baøn phím
MOV AH,0
INT 16h
Ví duï 3: Hieän 1 thoâng baùo leân maøn hình
Chao DB 'Chao cac ban $'
MOV AH,09h
MOV DX, OFFSET Chao
INT 21h
Ví duï 4: Keát thuùc chöông trình
INT 20h
Nguyeãn Höõu Loäc Khoa Vaät Lyù