7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
1
1
Ch
Ch
ử
ử
ụng
ụng
5 : Nha
5 : Nha
ọ
ọ
p moõn Assembly
p moõn Assembly
Hie
Hie
ồ
ồ
u ngoõn ng
u ngoõn ng
ử
ử
ừ ma
ừ ma
ự
ự
y va
Hie
ồ
ồ
u ca
u ca
ự
ự
c tha
c tha
ứ
ứ
nh pha
nh pha
n cụ ba
n cụ ba
ỷ
ỷ
n cu
n cu
ỷ
ỷ
a Assembly
a Assembly
Na
Na
ộ
ộ
m
t 1 ch
ử
ử
ụng tr
ụng tr
ỡ
ỡ
nh Assembly.
nh Assembly.
Bie
Bie
ỏ
ỏ
t ca
t ca
ự
ự
ch dũch, lieõn ke
ch dũch, lieõn ke
ỏ
ỏ
t va
t va
ứ
ứ
th
th
ửù
ửù
c thi 1 ch
ù
i thie
i thie
ä
ä
u ngôn ng
u ngôn ng
ư
ư
õ Assembly
õ Assembly
Giu
Giu
ù
ù
p kha
p kha
ù
ù
m pha
m pha
ù
ù
b
b
í
í
ma
y t
í
í
nh.
nh.
Na
Na
é
é
m
m
đư
đư
ơ
ơ
ï
ï
c ca
c ca
ù
ù
ch pha
ch pha
à
à
n c
n c
ứ
ø
hie
hie
å
å
u
u
đư
đư
ơ
ơ
ï
ï
c ba
c ba
è
è
ng ca
ng ca
ù
ù
ch na
ch na
ø
ø
o 1 tr
o 1 tr
ì
ì
nh
nh.
Mo
Mo
ä
ä
t MT hay mo
t MT hay mo
ä
ä
t ho
t ho
ï
ï
MT s
MT s
ử
ử
du
du
ï
ï
ng 1 ta
ng 1 ta
ä
ä
p le
p le
ä
ọ
t ch
t ch
ử
ử
ụng tr
ụng tr
ỡ
ỡ
nh vie
nh vie
ỏ
ỏ
t ba
t ba
ố
ố
ng ngoõn ng
ng ngoõn ng
ử
ử
ừ Assembly
ừ Assembly
muo
muo
ỏ
ỏ
n MT th
n MT th
ửù
ng
ử
ử
ừ ma
ừ ma
ự
ự
y.
y.
Ch
Ch
ử
ử
ụng tr
ụng tr
ỡ
ỡ
nh du
nh du
ứ
ứ
ng
ng
ủ
ủ
e
e
ồ
Assembler
.
.
Coự 2 chửụng trỡnh dũch:
MASM vaứ TASM
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
4
4
Ly
Ly
ự
ự
do nghieõn c
do nghieõn c
ửự
ửự
u Assembly
u Assembly
ẹ
ẹ
o
o
ự
ự
la
n c
n c
ửự
ửự
ng MT
ng MT
va
va
ứ
ứ
he
he
ọ
ọ
ủ
ủ
ie
ie
u ha
u ha
ứ
ứ
nh.
nh.
V
ự
the
the
ồ
ồ
nhu
nhu
ự
ự
ng ca
ng ca
ự
ự
c ch
c ch
ử
ử
ụng tr
ụng tr
ỡ
ỡ
nh con vie
nh con vie
ỏ
ỏ
t
t
ba
ba
ố
ử
ừ ca
ừ ca
ỏ
ỏ
p cao .
p cao .
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
5
5
Le
Le
ọ
ọ
nh ma
nh ma
ự
ự
y
y
La
La
ứ
ứ
1 chuo
no
no
ự
ự
ra
ra
le
le
ọ
ọ
nh cho CPU th
nh cho CPU th
ửù
ửù
c hie
c hie
ọ
ọ
n ta
n ta
ự
ự
c vu
c vu
ù
ù
.
.
di chuye
ồ
ồ
n 1 so
n 1 so
ỏ
ỏ
t
t
ửứ
ửứ
vũ tr
vũ tr
ớ
ớ
nhụ
nhụ
ự
ự
na
na
ứ
ứ
y sang vũ tr
y sang vũ tr
ớ
ớ
nhụ
nhụ
ự
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
6
6
Le
Le
ä
ä
nh ma
nh ma
ù
ù
y (cont)
y (cont)
Ta
Ta
ä
ä
p le
p le
ä
ä
nh ma
nh ma
ù
ù
y
y
c
c
sa
sa
û
û
n xua
n xua
á
á
t va
t va
ø
ø
no
no
ù
ù
đ
đ
a
a
ë
ë
c tr
c tr
ư
ư
ng cho kie
ng cho kie
hex, da
hex, da
ø
ø
i 2 byte.
i 2 byte.
Byte
Byte
đ
đ
a
a
à
à
u B5 go
u B5 go
ï
ï
i la
i la
ø
ø
Opcode
Opcode
Byte sau 05 go
Byte sau 05 go
á
á
t 1 ch
t 1 ch
ư
ư
ơng tr
ơng tr
ì
ì
nh Assembly
nh Assembly
Soạn CT
TenCT.ASM
Dòch CT
Liên kết CT
Chạy CT
Dùng 1 phần mềm soạn thảo VB bất kỳ để soan
CT Assembly như : NotePad, NC, màn hình C,
Pascal
CT có phần mở rộng là .ASM
dùng MASM để dòch chương trình nguồn .ASM
File Object.
dùng LINK để liên kết Object tạo tập tin thực
hiện .EXE
Gỏ tên tập tin thực hiện .EXE từ dấu nhắc
DOS để chạy
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
TenCT .MAP TenCT .LIST
TenCT .CRF
LINK.EXE
LINK.EXE
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
9
9
Mo
Mo
ä
ä
t ch
t ch
ö
ö
ông tr
ông tr
ì
ì
nh minh hoa
nh minh hoa
ï
ï
DOSSEG
DOSSEG
.MODEL SMALL
.MODEL SMALL
INT 21
MOV AH,4CH
INT 21
MAIN ENDP
END MAIN
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
10
10
Ca
Ca
ự
ự
c file
c file
ủử
ủử
ụ
ụ
ù
ù
c ta
c ta
ù
ù
o
o
ng co
ự
ự
ủ
ủ
a
a
ự
ự
nh so
nh so
ỏ
ỏ
th
th
ửự
ửự
t
t
ửù
ửù
maừ.
maừ.
File Cross reference
File Cross reference
File Map
-
1
1
1 DOSSEG
1 DOSSEG
2 .MODEL SMALL
2 .MODEL SMALL
3 .STACK 100H
3 .STACK 100H
4 .DATA
4 .DATA
5 0000 48 45 4C 4C 4F 20 MES DB "HELLO WORD$"
5 0000 48 45 4C 4C 4F 20 MES DB "HELLO WORD$"
6 57 4F 52 44 24
6 57 4F 52 44 24
7 .CODE
14 000C B4 4C MOV AH,4CH
14 000C B4 4C MOV AH,4CH
15 000E CD 21 INT 21H
15 000E CD 21 INT 21H
16 0010 MAIN ENDP
16 0010 MAIN ENDP
17 END MAIN
17 END MAIN
♀◘
♀◘
Microsoft (R) Macro Assembler Version 5.10 10/1
Microsoft (R) Macro Assembler Version 5.10 10/1
1/4
1/4
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
12
12
Map File
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
13
13
Gia
Gia
ỷ
ỷ
i th
i th
ớ
ớ
ch
ch
.model small : du
.model small : du
ứ
ứ
ng kie
ng kie
ồ
ồ
u ca
u ca
ỏ
ỏ
u tru
nh 256 bytes cho stack cu
ỷ
ỷ
a ch
a ch
ử
ử
ụng
ụng
tr
tr
ỡ
ỡ
nh .
nh .
.Data :
.Data :
ủ
ủ
a
a
ự
ự
nh da
nh da
ỏ
ỏ
u phaõn
c bie
ỏ
ỏ
n
n
ủử
ủử
ụ
ụ
ù
ù
c l
c l
ử
ử
u tr
u tr
ử
ử
ừ.
ừ.
.Code :
.Code :
ủ
ủ
a
a
ự
i
thi ha
thi ha
ứ
ứ
nh.
nh.
Proc : khai ba
Proc : khai ba
ự
ự
o
o
ủ
ủ
a
a
u 1 thu
u 1 thu
ỷ
ỷ
tu
tu
ù
ù
c, trong Ex na
Gia
ỷ
ỷ
i th
i th
ớ
ớ
ch (cont)
ch (cont)
Che
Che
ự
ự
p
p
ủ
ủ
ũa ch
ũa ch
ổ
ổ
ủ
ủ
oa
oa
ù
ù
n d
ứ
o thanh ghi DS
o thanh ghi DS
Go
Go
ù
ù
i ha
i ha
ứ
ứ
m so
m so
ỏ
ỏ
9 cu
9 cu
ỷ
ỷ
a Int 21h cu
a Int 21h cu
ỷ
ỷ
a Dos
a Dos
ủ
ủ
e
nh.
Thoa
Thoa
ự
ự
t kho
t kho
ỷ
ỷ
i CT .
i CT .
Main endp :
Main endp :
ủ
ủ
a
a
ự
ự
nh da
nh da
ỏ
ỏ
u ke
u ke
ỏ
ụng tr
ỡ
ỡ
nh
nh
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
15
15
Ca
Ca
á
á
u tru
u tru
ù
ù
c cu
c cu
û
û
a 1 CT ASM
a 1 CT ASM
DOSSEG
DOSSEG
.MODEL
.MODEL
kie
ù
o bie
o bie
á
á
n, ha
n, ha
è
è
ng
ng
.CODE
.CODE
MAIN PROC
MAIN PROC
MOV AX, @DATA
MOV AX, @DATA
MOV DS,AX
MOV DS,AX
ca
ca
ù
ù
c le
c le
ä
ä
nh cu
nh cu
û
ì
nh
nh
INT 21H
INT 21H
MAIN ENDP
MAIN ENDP
ca
ca
ù
ù
c ch
c ch
ö
ö
ông tr
ông tr
ì
ì
nh con kha
nh con kha
ù
ù
c ne
c ne
á
á
u co
u co
ù
ự
Maừ le
Maừ le
ọ
ọ
nh nhie
nh nhie
u hụn 1
u hụn 1
ủ
ủ
oa
oa
ù
ù
n
n
D
D
ử
ử
ừ lie
ừ lie
ọ
ọ
u nhie
u nhie
nh nhie
u hụn 1
u hụn 1
ủ
ủ
oa
oa
ù
ù
n
n
D
D
ử
ử
ừ lie
ừ lie
ọ
ọ
u nhie
u nhie
u hụn 1
u hụn 1
ủ
ủ
oa
oa
ù
ù
n. D
n. D
ử
ử
ừ lie
ừ lie
ọ
ọ
u nhie
u nhie
u hụn 1
u hụn 1
ủ
ủ
oa
oa
ù
ù
n
n
COMPACT
COMPACT
Maừ le
Maừ le
ọ
n
MEDIUM
MEDIUM
Maừ le
Maừ le
ọ
ọ
nh trong 1
nh trong 1
ủ
ủ
oa
oa
ù
ù
n.D
n.D
ử
ử
ừ lie
ừ lie
ọ
ọ
u trong 1
u trong 1
ủ
ủ
oa
oa
ù
nh
[name] [operator] [ operand] [comment]
[name] [operator] [ operand] [comment]
Nhãn, tên biến
Tên thủ tục
Nhãn, tên biến
Tên thủ tục
Mã lệnh dạng
gợi nhớ
Mã lệnh dạng
gợi nhớ
Register, ô nhớ
Trò, hằng
Register, ô nhớ
Trò, hằng
Chú thích
Chú thích
Ex : MOV CX , 0
LAP : MOV CX, 4
LIST DB 1,2,3,4
Mỗi dòng chỉ chứa 1 lệnh và mỗi lệnh
phải nằm trên 1 dòng
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
18
18
ø
ø
ng
ng
đ
đ
e
e
å
å
go
go
ï
ï
i
i
ch
ch
ư
ư
ơng tr
ơng tr
ì
ì
nh nga
nh nga
é
é
t cu
t cu
DL = Mã ASCII của ký tự hiển thò hay ký tự điều khiển
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
20
20
Th
Th
í
í
du
du
ï
ï
minh ho
minh ho
ï
ï
a
a
DOSSEG
.MODEL SMALL
.STACK 100H
.CODE
MAIN PROC
MOV AH , 2
MOV DL , ‘?’
INT 21H
MOV AH ,1
minh ho
minh ho
ù
ù
a ca
a ca
ự
ự
c ha
c ha
ứ
ứ
m cu
m cu
ỷ
ỷ
a INT 21
a INT 21
In da
In da
ỏ
ỏ
u ? ra ma
u ? ra ma
ứ
ứ
n h
n h
t
t
ửứ
ửứ
ba
ba
ứ
ứ
n ph
n ph
ớ
ớ
m :
m :
MOV AH, 1
MOV AH, 1
INT 21H
INT 21H
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
22
22
Bie
Bie
ỏ
ỏ
n
n
ứ
ứ
mo
mo
ọ
ọ
t teõn ky
t teõn ky
ự
ự
hie
hie
ọ
ọ
u da
u da
ứ
ứ
nh rieõng cho 1 vũ tr
nh rieõng cho 1 vũ tr
ớ
ớ
trong bo
trong bo
ọ
ọ
nhụ
nhụ
ự
ự
ứ
ứ
khoa
khoa
ỷ
ỷ
ng ca
ng ca
ự
ự
ch t
ch t
ửứ
ửứ
ủ
ủ
a
a
u phaõn
u phaõn
ủ
ủ
oa
oa
ù
ù
n
n
ch aList ụ
ch aList ụ
ỷ
ỷ
ủ
ủ
ũa ch
ũa ch
ổ
ổ
100 vụ
100 vụ
ự
ự
i
i
no
no
ọ
ọ
i dung sau :
i dung sau :
.data
.data
aList db
aList db
ABCD
ABCD
Bie
Bie
á
á
n
n
0000
0000
A
A
0001
0001
B
B
0002
0002
C
C
0003
0003
D
D
7/31/2011
7/31/2011
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
24
24
Khai ba
Khai ba
Doubleword
Doubleword
4
4
T
T
ửứ
ửứ
ke
ke
ự
ự
p
p
DD
DD
Word
Word
2
2
T
T
ửứ
ửứ
DW
DW
Byte
Byte
1
1
ỷ
ỷ
T
T
ửứ
ửứ
gụ
gụ
ù
ù
i nhụ
i nhụ
ự
ự