H
H
P NG
P NG
Nguyn Minh Tun
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
2
T
T
à
à
i Li
i Li
u Tham Kh
u Tham Kh
o
o
1.
Peter Norton's Assembly Language Book for The
IBM PC
Peter Norton's & Johns Socha - Prentice Hall
Press - 1986
2. Programmer's Guide to The IBM PC
Peter Norton - Microsoft Press
3. Turbo Assembler Bible
Gary Syck - SAMS – 1991
4. Assembly Programming Language & IBM / PC
Ythayu & Charles Marut
5. The Pentium Microprocessor
James L.Antonakos – Prentice-Hall, Inc. - 1997
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
3
H
H
P NG
P NG
1.
i Cng v Hp Ng
2. Kiu nh V và C
3. Lnh Nhy và Lp
4. Ngn Xp và Th Tc
5. Nhp Xut S H 2/16
6. Nhp Xut S H 10
7. Lnh Chui
8. Bàn Phím và Màn Hình
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
4
1.
1.
i Cng v
i Cng v
H
H
p Ng
p Ng
1.1. T Chc B Nh CPU Intel 80x86
1.2. T ChcThanh Ghi
1.3. Máy Ng & Hp Ng
1.4. Cu Trúc Chng Trình Hp Ng
1.5. Mt S Lnh n Gin
1.6. To Chng Trình Hp Ng
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
5
1.1. T
1.1. T
Ch
Ch
cB
cB
Nh
Nh
CPU Intel
CPU Intel
n v nh: Byte.
CPU S bit Dung lng nh
đa ch
– 8086/8088 20 bit 1 MB
– 80286 24 bit 16 MB
– 80386 32 bit 4096 MB (4 GB)
Ch đ hot đng:
–Thc: b nh1 MB (8086/88 )
–Bo v: b nh16MB (286), 4GB (386 )
Mc nhiên
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
6
1.1. T
1.1. T
Ch
Ch
cB
cB
Nh
Nh
CPU Intel (tt)
CPU Intel (tt)
1134:1023 tuyt đi:
1134 1134
0
1023 01023
12363
4A37B
– a ch ô tng ng vi đon 40FF:
4A37B
- 40FF
0
0938B đa ch ô = 938B
– a ch đon tng ng vi ô 123B:
4A37B
-0 123B
4 9140 đa ch đon = 4914
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
7
1.2. T
1.2. T
Ch
Ch
c Thanh Ghi
c Thanh Ghi
Gm 4 nhóm:
– Thanh ghi đon
– Thanh ghi đa dng
– Thanh ghi con tr và ch s
– Thanh ghi c và con tr lnh.
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
8
1.3. M
1.3. M
á
á
y Ng
y Ng
& H
& H
p Ng
p Ng
Lnh Dng máy ng Dng hp ng
1 B4 02 MOV AH, 02h
2 80 C2 30 ADD DL, 30h
350 PUSHAX
Dch chng trình:
Trình ngun
(hp ng)
Trình đích
(máy ng)
Trình
hp dch
(Assembly language) (Assembler) (Machine language)
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
9
1.4. C
1.4. C
uTr
uTr
ú
ú
c ChngTr
c ChngTr
ì
ì
nh H
nh H
p Ng
p Ng
T chc chng trình đn gin
.MODEL SMALL
; Kiu chng trình
.STACK ; Khai báo ngn xp
.DATA ; Phn d liu
…………………
.CODE ; Phn lnh
…………………
END
; Lnh cui cùng
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
10
1.5. M
1.5. M
t S
t S
L
L
nh n Gi
nh n Gi
n
n
Cách vit s:
–Thp phân: 123, -54, 123d
–Thp lc: 12Ah, 0Ah
–Nh phân: 1011b
Cách vit ký t / chui:
–
‘A’, “A”, ‘Hello!’, “Hi!”
– ”Don’t forget me!”, ‘”Forget me not!”’
– ’Don’’t forget me!’
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
11
1.5. M
1.5. M
t S
t S
L
L
nh n Gi
nh n Gi
n (tt)
n (tt)
Khai báo bin / vùng nh:
Tên DB Tr1, Tr2,… ; Kiu Byte
Tên DW Tr1, Tr2,… ; Kiu Word
Ví d:
BVar1 DB 5
BVar2 DB ?
BArr DB 10, 11, 12
WVar1 DW 10
WVar2 DW 1234h
Str1 DB ‘ABC’
Str2 DB 13, 10, ‘Hello!’, 10, ‘$’
Sco DB 6 DUP(0)
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
12
1.5. M
1.5. M
t S
t S
L
L
nh n Gi
nh n Gi
n (tt)
n (tt)
nh ngha hng:
Tên EQU Hng
Ví d:
CR
EQU 0Dh
LF
EQU 0Ah
MESS
EQU ‘Du lieu nhap sai!’
STR1 DB CR, LF, MESS, ‘$’
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
13
1.5. M
1.5. M
t S
t S
L
L
nh n Gi
nh n Gi
n (tt)
n (tt)
$!OLLEHS
DS:DX
MOV AH, 9
MOV BX, SEG S
MOV DS, BX
MOV DX, OFFSET S
INT 21h
HELLO!
S DB ‘HELLO!$’
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
14
1.6. T
1.6. T
o Ch.Tr
o Ch.Tr
ì
ì
nh H
nh H
p Ng
p Ng
Qui trình:
1. Son chng trình (ngun)
2. Dch chng trình (ngun)
3. Liên kt chng trình (đi tng)
4. Chy chng trình (đích)
NMT - HN - V3.10 - Ch1 - Ns45 - 27.10.03
15
1.6. T
1.6. T
o Ch.Tr
o Ch.Tr
ì
ì
nh H
nh H
p Ng
p Ng
(tt)
(tt)
Trình ngun
mov ah, 2…
Trình son tho
Notepad,…
Trình ngun
CT.ASM
Trình hp dch
C>TASM CT
Trình liên kt
C>TLINK CT
Trình đích
C>CT
Tp đi tng
CT.OBJ
Trình đích
CT.EXE
Kt qu
???