VI X LÝ &
CẤ U TRÚC MÁY TÍ NH
ĐH CNKT ĐI N T TRUY N THÔNG K5
Gi ng viên: Ki u Xuân Th c
Khoa Đi n t
Đ i h c công nghi p Hà N i
CHƯ Ơ NG 3
L P TRÌ NH ASSEMBLY CHO 8 0 8 6
N i dung:
1. Gi i thiệ u
2. c chế độ đị a chỉ c a 80x86
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
3. Mộ t số hàm củ a ngắ t 21h
4. Tậ p lệ nh củ a 8086
5. Ngăn xế p thủ tụ c
1 . Gi i thi u
H p ng (Assembly): ngôn ng l p trình b c th p, s
d ng chính các u l nh t rong t p l nh c a VXLđ viế t
nên m t chư ơ ng trình
Ư u đi m củ a l p trình h p ng : chư ơ ng trình viế t
b ng h p ng ch y nhanh và chiế m ít b nh hơ n so
v i c chư ơ ng trình viế t b ng các ngôn ng b c cao
do
:
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
do
:
Trình d ch ch cầ n qua m t bư c là th biên d ch các chư ơ ng trình
này ra m ã máy
Lậ p trình h p ng cho phép đ c ho c ghi tr c t iế p vào các ô nh ,
thanh ghi hay các cổ ng vào/ ra d dàng.
Như c đi m :
Chư ơ ng trình dài nên khó ki m soát l i, khó b o trì hơ n so v i chư ơ ng
trình tư ơ ng t viế t b ng ngôn ng b c cao
Chư ơ ng trình viế t b ng h p ng ch ch y đư c trên h th ng tư ơ ng
ng, không th th c t hi t rên h th ng kiế n t rúc và t p l nh khác.
4
Printed with FinePrint trial version - purchase at www.fineprint.com
pháp c a h p ng
Mộ t chư ơ ng trình h p ng bao g m các dòng l nh,
m i l nh đư c viế t trên m t dòng.
Mộ t dòng l nh có th là:
Lệ nh th t: đư c h p ng d ch ra m ã m áy
Hư ng d n biên d ch: không đư c d ch ra m ã m áy
Mỗ i m t l nh bao g m có
4
trư ng:
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Mỗ i m t l nh bao g m có
4
trư ng:
n: _l nh Toán_h ng; Chú_gi i
Các trư ng ph i đư c cách nhau ít nh t m t ký t
tr ng ho c TAB.
Mộ t l nh không nh t thiế t ph i có đ 4 trư ng, VD
trư ng tên ho c trư ng chú gi i có th b qua như ng
c trư ng ph i xu t hi n theo đúng theo th t .
d : NHAP: MOV AX,0; Chuy n 0 vào t hanh ghi AX
5
Trư n g t ên : sử d ng làm nhãn l nh, tên các th t c và
tên biế n. Tên sẽ đư c chư ơ ng trình d ch gán b ng c
đ a ch c th c a ô nh .
Trư ng tên cách v i trư ng m ã l nh b i d u (: )
Các quy đ nh khi đ t tên:
Không đư c dài quá 31 ký t .
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Không đư c dài quá 31 ký t .
Bao g m c ch cái, ch s và m t số ký t đ c bi t ( !@% _$).
Không đư c b t đ u b ng m t ch s .
Không ch a kho ng tr ng ho c d u g ch ngang.
Nế u d u (.) thì ph i đ t v trí đ u tiên củ a tên.
Không phân bi t ch thư ng, ch hoa.
6
Trư n g m ã l n h: c ký hi u g i nh bi u th ch c năng
thao tác như MOV, ADD, SHL...
Tr ư n g t oá n h n g: toán h ng xác đ nh d li u sẽ đư c c
l nh tác đ ng lên. M t l nh th không có, có 1 ho c 2
toán h ng. d :
NOP
DEC CX
MOV AX,1
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV AX,1
Chú ý:
L nh 2 toán h ng ph i ch nhau b i d u ph y (,). Toán
h ng đ u là toán h ng đích (nơ i ch a kế t qu ) , toán h ng
th hai là toán h ng ngu n, c l nh thư ng không làm thay
đ i toán h ng ngu n.
Các toán h ng củ a l nh ph i ng đ l n hay ng ki u thì
m i h p l
Ví d : MOV AX,BX MOV AX,BL
7
Tr ư n g ch ú g i i: s d ng đ gi i thích m c đích s
d ng l nh c a chư ơ ng trình giúp ngư i đ c d hi u.
Lờ i gi i thích cách v i trư ng toán h ng d u ch m
ph y (; ) Chư ơ ng trình d ch b qua khi d ch đế n d u ;
VD:
; MOV CX,DX
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV CX,5; Kh i t o đế m b ng 5
8
Printed with FinePrint trial version - purchase at www.fineprint.com
D li u chư ơ ng trình
Qui ư c:
1số thu c h nh phân là 1 chu i các bit kế t thúc b ng ch B’
hay b
1 s thu c h hexa là m t chu i các số b t đ u là m t số th p
phân và kế t thúc b ng ch H hay h. Ví d : 0AH ho c 12C5H.
Nế u m t số b t đ u b ng m t ch i thì ph i thêm 0 vào
trư c số đó đ chư ơ ng trình d ch không nh m sang m t tên
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
trư c s đó đ chư ơ ng trình d ch không nh m sang m t tên
hay m t nhãn.
Riêng đ i v i m t s thu c h th p phân th kế t thúc số đó
b ng ch D hay d (ho c không ). Ví d : 12 hay 12D là
như nhau.
Các ký t ho c chu i ký t ph i đư c đ t trong d u nháy đơ n
ho c nháy kép. d : a, Chao ban.
Các ký t s đư c d ch ra m ã ASCII củ a chúng, chư ơ ng trình
d ch sẽ không phân bi t gi a A v i 41H, 1000001B ho c 65.
9
Biế n: m t biế n đư c đ nh nghĩa như sau
n_biế n Ki u_biế n G iá_tr _kh i_t o
n biế n: đ t theo qui ư c
Ki u biế n:
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Giá tr kh i t o: đ t giá tr ban đ u cho biế n, nế u
không m u n đ t giá tr đ u cho biế nđ ?
VD: Khoa DB 5;
Lop DB DHDT1$
1 0
H n g: c h ng trong h p ng có th là ki u s hay
ki u ký t và đư c gán tên b i toán t EQU (equate)
n_h ng_s EQU Giá_tr
VD:
CR EQU 0DH
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
CR EQU 0DH
PI EQU 3.14159
1 1
Khung c a m t chư ơ ng trình h p ng
title n_chư ơ ng_trình (có th b qua)
.m odel Kiể u_b _nh
.stack Dung_lư ng_ngăn_xế p
.data
; khai báo c h ng, biế n
.code
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
.code
main proc
; c l nh chư ơ ng trình chính
main endp
; các hàm và th t c
end main
1 2
Printed with FinePrint trial version - purchase at www.fineprint.com
.model Ki u_b _nh
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
.stack Dung_lư ng_ngăn_xế p
VD: .stack 100h t o ngăn xế p kích thư c 256byte
Nế u không khai báo thì chư ơ ng trình t gán 1Kbyte cho ngăn
xế p
1 3
.m odel small
.stack 100H
.dat a
message DB "I am student!$
.code
main proc
m ov
AX,@data
Hiể n thị ng chữ
“I am student!"
n màn hình bằ ng
m
số
9
củ a
ng t
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
m ov
AX,@data
m ov DS,AX
m ov AH,9
m ov DX,m essage
int 21H
m ov AH,4CH
int 21H
main endp
end main
1 4
m
số
9
củ a
ng t
21h
2 . c chế đ đ a ch c a 8 0 x8 6
1. Chế độ đị a chỉ thanh ghi (Register Addressing Mode)
2. Chế độ đ a chỉ t c thờ i (Immediate Addressing Mode)
3. Chế độ đị a chỉ trự c tiế p (Direct Addressing Mode)
4. Chế độ đị a chỉ gián tiế p qua thanh ghi (Register Direct
Addressing Mode)
5.
Chế
đ
đ a
ch
tư ơ ng
đ i
cơ
s
(Based Relative Addressing
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
5.
Chế
độ
đị a
chỉ
ơ ng
đố i
sở
(Based Relative Addressing
Mode)
6. Chế độ đị a chỉ ơ ng đ i chỉ s (Indexed Relative Addressing
Mode)
7. Chế độ đ a chỉ tư ơ ng đố i chỉ số sở (Based Indexed Relative
Addressing Mode)
1 5
Chế đ đ a ch t hanh ghi
MOV AX,BX ; Chuy n n i dung củ a BX vào AX
MOV DL,AL ; Chuy n n i dung c a AL vào DL
MOV SI ,DX ; Chuy n n i dung c a DX vào SI
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV SP,BP ; Chuy n n i dung củ a BP vào SP
ADD AL,BH ; Cộ ng n i dung củ a BH v i AL,kế t qu lư u trong AL
MOV CL,BX ;Lệ nh này s báo l i vì đích và ngu n không ng ki u
1 6
Printed with FinePrint trial version - purchase at www.fineprint.com
Chế đ đ a ch t c th i
MOV AH,12; chuy n 12 vào thanh ghi AH
MOV DL,0AH; chuy n 10 (0AH) vào thanh ghi DL
MOV AH,01000010B; chuy n 66 vào thanh ghi AH
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV CL,A; chuy n 65 vào thanh ghi CL
MOV [ BX] ,100; chuy n 100 vào ô nh có đ a ch DS: BX
1 7
Chế đ đ a ch tr c tiế p
MOV AL, [ 012H] ; chuy n n i dung ô nh DS: [ 012H] vào AL
MOV AL, ES: [ 22] ; chuy n n i dung ô nh ES: [ 012H] vào AL
MOV [ 16H] , AX ; chuy n n i dung củ a AX vào hai ô nh
;
liên
tiế p
có
đ a
ch
DS: [ 16H]
và
DS: [ 17H]
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
;
liên
tiế p
có
đ a
ch
DS: [ 16H]
và
DS: [ 17H]
MOV BX,[ 5678H] ; chuy n n i dung c a hai ô nh đ a
; ch DS: [ 5678H] và DS: [ 5679h] vào BX
1 8
Chế đ đ a ch gián tiế p qua thanh ghi
MOV AX,[ BX] ; Chuy n n i dung c a hai ô nh đ a ch ; DS: [ BX] và
DS: [ BX+ 1] vào AX
MOV AL,[ BX] ; Chuy n n i dung củ a ô nh đ a ch DS: [ BX] vào AL
MOV [ BP] ,AL; Chuy n n i dung c a AL vào ô nh có đ a ch SS: [ BP]
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering 1 9
Chế đ đ a ch t ư ơ ng đ i cơ s
MOV [ BP+ 2] ,AL; Chuy n n i dung củ a AL vào ô nh có đ a
; ch SS: [ BP+ 2]
MOV AX,[ BX+ 4] ; Chuy n n i dung củ a hai ô nh có đ a ch
; DS: [ BX+ 4] và DS: [ BX+ 5] vào AL và AH
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Lệ nh này có th viế t như sau:
MOV AX,[ BX] + 4
2 0
Printed with FinePrint trial version - purchase at www.fineprint.com