Bài giảng Lập trình hợp ngữ - Chương 5: Nhập môn ASM

Chöông 5 : Nhaäp moân Assembly  
Muïc tieâu  
Hieåu ngoân ngöõ maùy vaø ngoân ngöõ Assembly.  
Trình hôïp dòch Assembler.  
Lyù do nghieân cöùu Assembly.  
Hieåu caùc thaønh phaàn cô baûn cuûa Assembly  
Naém ñöôïc caáu truùc cuûa 1 CT Assembly.  
Bieát vieát 1 chöông trình Assembly.  
Bieát caùch dòch, lieân keát vaø thöïc thi 1 chöông trình  
Assembly.  
5/8/2022  
Chuong 5 Nhap mon ASM  
1
Giôùi thieäu ngoân ngöõ Assembly  
▪ Giuùp khaùm phaù bí maät phaàn cöùng cuõng nhö phaàn  
meàm maùy tính.  
▪ Naém ñöôïc caùch phaàn cöùng MT laøm vieäc vôùi heä  
ñieàu haønh vaø hieåu ñöôïc baèng caùch naøo 1 trình  
öùng duïng giao tieáp vôùi heä ñieàu haønh.  
▪ Moät MT hay moät hoï MT söû duïng 1 taäp leänh maõ  
maùy rieâng cuõng nhö 1 ngoân ngöõ Assembly rieâng.  
5/8/2022  
Chuong 5 Nhap mon ASM  
2
Assembler  
▪ Moät chöông trình vieát baèng ngoân ngöõ Assembly  
muoán MT thöïc hieän ñöôïc ta phaûi chuyeån thaønh  
ngoân ngöõ maùy.  
Chöông trình duøng ñeå dòch 1 file vieát baèng Assembly  
➔ ngoân ngöõ maùy , goïi laø Assemble.  
Coù 2 chöông trình dòch:  
MASM vaø TASM  
5/8/2022  
Chuong 5 Nhap mon ASM  
3
Lyù do nghieân cöùu Assembly  
▪ Ñoù laø caùch toát nhaát ñeå hoïc phaàn cöùng MT  
vaø heä ñieàu haønh.  
▪ Vì caùc tieän ích cuûa noù .  
▪ Coù theå nhuùng caùc chöông trình con vieát  
baèng ASM vaøo trong caùcchöông trình vieát  
baèng ngoân ngöõ caáp cao .  
5/8/2022  
Chuong 5 Nhap mon ASM  
4
Leänh maùy  
▪ Laø 1 chuoåi nhò phaân coù yù nghóa ñaëc bieät – noù ra  
leänh cho CPU thöïc hieän taùc vuï.  
▪ Taùc vuï ñoù coù theå laø :  
di chuyeån 1 soá töø vò trí nhôù naøy sang vò trí nhôù khaùc.  
Coäng 2 soá hay so saùnh 2 soá.  
0 0 0 0 0 1 0 0 Add a number to the AL register  
1 0 0 0 0 1 0 1 Add a number to a variable  
1 0 1 0 0 0 1 1 Move the AX reg to another reg  
5/8/2022  
Chuong 5 Nhap mon ASM  
5
Leänh maùy (cont)  
▪ Taäp leänh maùy ñöôïc ñònh nghóa tröôùc, khi CPU ñöôïc  
saûn xuaát vaø noù ñaëc tröng cho kieåu CPU .  
▪ Ex : B5 05 laø 1 leänh maùy vieát daïng soá hex, daøi 2 byte.  
▪ Byte ñaàu B5 goïi laø Opcode  
▪ Byte sau 05 goïi laø toaùn haïng Operand  
YÙù nghóa cuûa leänh B5 05 : cheùp giaù trò 5 vaøo reg AL  
5/8/2022  
Chuong 5 Nhap mon ASM  
6
Caùch vieát 1 chöông trình Assembly  
Duøng 1 phaàn meàm soaïn thaûo VB baát kyø ñeå soan  
CT Assembly nhö : NotePad, NC, maøn hình C,  
Pascal ...  
Soaïn CT  
TenCT.ASM  
CT coù phaàn môû roäng laø .ASM  
Dòch CT  
Lieân keát CT  
Chaïy CT  
duøng MASM ñeå dòch chöông trình nguoàn .ASM  
➔ File Object.  
duøng LINK ñeå lieân keát Object taïo taäp tin thöïc  
hieän .EXE  
Goû teân taäp tin thöïc hieän .EXE töø daáu nhaéc  
DOS ñeå chaïy  
5/8/2022  
Chuong 5 Nhap mon ASM  
7
Dòch vaø noái keát chöông trình  
MASM.EXE  
TenCT .ASM  
TenCT .OBJ  
LINK.EXE  
TenCT .CRF  
TenCT .MAP  
TenCT .LIST  
TenCT .EXE  
5/8/2022  
Chuong 5 Nhap mon ASM  
8
Moät chöông trình minh hoaï  
DOSSEG  
MOV DX, OFFSET MES  
MOV AH, 9  
INT 21  
.MODEL SMALL  
.STACK 100h  
.DATA  
MES DB “HELLO WORD”,’$’  
.CODE  
MAIN PROC  
MOV AH,4CH  
INT 21  
MAIN ENDP  
END MAIN  
MOV AX, @DATA  
MOV DS, AX  
5/8/2022  
Chuong 5 Nhap mon ASM  
9
Caùc file ñöôïc taïo  
▪ Sau khi dòch thaønh coâng file nguoàn.ASM, ta coù caùc file :  
▪ File listing : file VB , caùc doøng coù ñaùnh soá thöù töï maõ.  
▪ File Cross reference  
▪ File Map  
▪ File Obj  
▪ File EXE  
5/8/2022  
Chuong 5 Nhap mon ASM  
10  
File Listing  
▪ Microsoft (R) Macro Assembler Version 5.10  
10/11/4  
▪
Page 1  
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
1
DOSSEG  
2
.MODEL SMALL  
.STACK 100H  
.DATA  
3
4
5 0000 48 45 4C 4C 4F 20  
MES DB "HELLO WORD$"  
6
7
57 4F 52 44 24  
.CODE  
MAIN PROC  
MOV AX,@DATA  
8 0000  
9 0000 B8 ---R  
10 0003 8E D8  
11 0005 B4 09  
12 0007 BA 0000 R  
13 000A CD 21  
14 000C B4 4C  
15 000E CD 21  
16 0010  
MOV DS, AX  
MOV AH,9  
MOV DX, OFFSET MES  
INT 21H  
MOV AH,4CH  
INT 21H  
MAIN ENDP  
END MAIN  
17  
▪ ♀Microsoft (R) Macro Assembler Version 5.10  
10/11/4  
5/8/2022  
Chuong 5 Nhap mon ASM  
11  
Map File  
▪ Start Stop Length Name  
Class  
▪ 00000H 0001FH 00020H _TEXT  
▪ 00020H 0002AH 0000BH _DATA  
▪ 00030H 0012FH 00100H STACK  
CODE  
DATA  
STACK  
▪ Origin Group  
▪ 0002:0 DGROUP  
▪ Program entry point at 0000:0010  
5/8/2022  
Chuong 5 Nhap mon ASM  
12  
Giaûi thích  
▪ .model small : duøng kieåu caáu truùc <= 64 K boä nhôù cho  
maõ , 64K cho döõ lieäu.  
▪ .Stack 100h : daønh 256 bytes cho stack cuûa chöông  
trình .  
▪ .Data : ñaùnh daáu phaân ñoaïn döõ lieäu ôû ñoù caùc bieán  
ñöôïc löu tröõ.  
▪ .Code : ñaùnh daáu phaân ñoaïn maõ chöùa caùc leänh phaûi  
thi haønh.  
▪ Proc : khai baùo ñaàu 1 thuû tuïc, trong Ex naøy ta chæ coù 1  
thuû tuïc Main.  
5/8/2022  
Chuong 5 Nhap mon ASM  
13  
Giaûi thích (cont)  
▪ Cheùp ñòa chæ ñoaïn döõ lieäu vaøo thanh ghi AX.  
▪ Sau ñoù cheùp vaøo thanh ghi DS  
▪ Goïi haøm soá 9 cuûa Int 21h cuûa Dos ñeå xuaát  
chuoåi kyù töï ra maøn hình.  
▪ Thoaùt khoûi CT .  
▪ Main endp : ñaùnh daáu keát thuùc thuû tuïc  
▪ End main : chaám döùt chöông trình  
5/8/2022  
Chuong 5 Nhap mon ASM  
14  
Caáu truùc cuûa 1 CT ASM  
DOSSEG  
.MODEL kieåu boä nhôù  
.STACK kích thöôùc  
.DATA  
khai baùo bieán, haèng  
.CODE  
MAIN PROC  
MOV AX, @DATA  
MOV DS,AX  
caùc leänh cuûa chöông trình chính  
MOV AH,4CH ; Thoaùt khoûi chöông trình  
INT 21H  
MAIN ENDP  
caùc chöông trình con khaùc neáu coù  
END MAIN  
5/8/2022  
Chuong 5 Nhap mon ASM  
15  
Caùc cheá ñoä boä nhôù  
Kieåu  
Moâ taû  
SMALL  
Maõ leänh trong 1 ñoaïn.Döõ lieäu trong 1 ñoaïn  
MEDIUM Maõ leänh nhieàu hôn 1 ñoaïn.Döõ lieäu trong 1 ñoaïn  
COMPACT Maõ leänh trong 1 ñoaïn. Döõ lieäu nhieàu hôn 1 ñoaïn  
LARGE  
HUGE  
Maõ leänh nhieàu hôn 1 ñoaïn  
Döõ lieäu nhieàu hôn 1 ñoaïn,khoâng coù maûng naøo >  
64K  
Maõ leänh nhieàu hôn 1 ñoaïn  
Döõ lieäu nhieàu hôn 1 ñoaïn, maûng coù theå > 64K  
5/8/2022  
Chuong 5 Nhap mon ASM  
16  
Daïng leänh  
Chuù thích  
▪ [name] [operator] [ operand] [comment]  
Maõ leänh daïng  
gôïi nhôù  
Register, oâ nhôù  
Trò, haèng  
Nhaõn, teân bieán  
Teân thuû tuïc  
Ex : MOV CX , 0  
Moãi doøng chæ chöùa 1 leänh vaø moãi leänh  
phaûi naèm treân 1 doøng  
LAP : MOV CX, 4  
LIST DB 1,2,3,4  
5/8/2022  
Chuong 5 Nhap mon ASM  
17  
INT 21H  
▪ Leänh INT sohieäu ngaét ñöôïc duøng ñeå goïi  
chöông trình ngacuûa DOS vaBIO.  
Ngaét 21h  
Muoán söû duïng haøm naøo cuûa INT 21h ta ñaët  
function_number vaøo thanh ghi AH, sau ñoù goïi INT 21h  
Function_number  
chöùc naêng  
1
2
nhaäp 1 kyù töï töø baøn phím  
Xuaát 1 kyù töï ra maø hình.  
Xuaát 1 chuoåi kyù töï ra maøn  
9
hình  
5/8/2022  
Chuong 5 Nhap mon ASM  
18  
INT 21h (cont)  
Haøm 1 : Nhaäp 1 kyù töï  
Input : AH =1  
Output : AL = maõ ASCCI cuûa phím aán  
= 0 neáu 1 phím ñieàu khieåân ñöôïc aán  
Haøm 2 : Hieån thò 1 kyù töï ra maøn hình  
Input : AH =2  
DL = Maõ ASCII cuûa kyù töï hieån thò hay kyù töï ñieàu khieån  
5/8/2022  
Chuong 5 Nhap mon ASM  
19  
Thí duï minh hoïa  
DOSSEG  
MOV AH,2  
.MODEL SMALL  
.STACK 100H  
.CODE  
MOV DL, 0DH  
INT 21H  
MOV DL , 0AH  
INT 21H  
MAIN PROC  
MOV AH , 2  
MOV DL , ‘?’  
INT 21H  
MOV DL , BL  
INT 21H  
MOV AX , 4C00H  
INT 21H  
MOV AH ,1  
INT 21H  
MOV BL,AL  
MAIN ENDP  
END MAIN  
? N  
N
KEÁT QUAÛ  
5/8/2022  
Chuong 5 Nhap mon ASM  
20  
Tải về để xem bản đầy đủ
ppt 38 trang baolam 21580 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hợp ngữ - Chương 5: Nhập môn ASM", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptbai_giang_lap_trinh_hop_ngu_chuong_5_nhap_mon_asm.ppt