
DuyTan University Assembly Language Programming
CHNG 2
GIITHIU HPNG
CHO IBM-PC
Nguyn VnTh
Bmôn in tvinthông
Khoa Công nghthông tin, i hcDuy Tân – 2007
I HCDUY TÂN
KHOA CÔNG NGHTHÔNG TIN
Nguyen Van Tho – Duy Tan University.
CÚ PHÁP HPNG
Ví d#:
START: MOV AX,BX ; chuy.ngiá tr5BX vào AX
NHÃN TOÁN T:TOÁN HNG CHÚ THÍCH
nhãn Toán
t
Toán hng :
AX : toán hng .ích
BX : toán hng ngu0n
Chú thích
Nguyen Van Tho – Duy Tan University.
DLIUCHNG TRÌNH
TOÁN T:GI>:
DB : 5nh ngh?aki.ubyte
DW : 5nh ngh?aki.uword ( 2 byte)
DD : H5nh ngh?a tIkép ( 2 word)
DQ : H5nh ngh?a 4 word
DT : H5nh ngh?a10 byte liên tiRp

DuyTan University Assembly Language Programming
Nguye n Va n Tho – Duy Ta n Univ ersit y.
DLIUCHNG TRÌNH
KHAI BÁO BISN
Cú pháp :
Tên bi4nToán tgi5giá tr6kh8i to
Ví d:
ADB 4 ; khai báo bi4n A ki=ubyte,ban .>uA=4
BDW 10h ; khai báo bi4n B ki=uword, ban .>uB=10h
CDB ? ; khai báo bi4n C ki=ubyte, không kh8i to
KHAI BÁO CHUUI
MEG 1 DB ‘HELLO’ ; Khai báo chuLiMeg1 = ‘Hello’
MEG2 DB 61h,42h,43h ; ChuLimeg2 = ‘ABC”
Nguyen Van Tho – Duy Tan University.
DLIUCHNG TRÌNH
KHAI BÁO M>NG
ARR DB 10H,12H,15H ; MWng ARR gXm 3 ph[n t\
; v]icác giá tr5là 10h,12h,15h
Ví d#mWng ARR H^_cghi vào b`nh]taiH5achb0560h thì
Ph[n t\5achbGiá tr5
ARR 0560h 10h
ARR + 1 0561h 12h
ARR+ 2 0562h 15h
Nguyen Van Tho – Duy Tan University.
DLIUCHNG TRÌNH
KHAI BÁO HfNG
Cú pháp :
Ví d#:
Mg EQU ‘HELLO’ ; khai báo hjng Mg=HELLO
Data EQU 167Eh ; khai báo hjng data=167Eh
Tên hjng EQU Chumi
Tên hjng EQU giá tr516bit

DuyTan University Assembly Language Programming
Nguye n Va n Tho – Duy Ta n Univ ersit y.
KHUÔN MnU MoTCHNG TRÌNH
.MODEL SMAIL
.STACK 100H
.DATA
;Khai báo dqliru
.CODE
MAIN PROC
;Các lrnh csach^tng trình
MAIN ENDP
;các thst#ckhác
END MAIN
Nguyen Van Tho – Duy Tan University.
CuUTRÚC CHNG TRÌNH
CHSo BoNH:
Xác H5nh kích th^]c csaHoan dqliruvà Hoanmã csa
ch^tng trình
.MODEL Ki.u b`nh]
KIUMÔ T
SMALL Mã lnh 1 on, dliu 1 on
MEDIUM Mã lnh hn 1 on, dliu 1 on
COMPACT Mã lnh 1 on, dliu hn 1 on
LARGE Mã lnh > 1 on, dliu>1 on, m%ng < 64KB
HUGE Mã lnh > 1 on, dliu> 1 on, m%ng > 64KB
Nguyen Van Tho – Duy Tan University.
CuUTRÚC CHNG TRÌNH
ONNGwN XSP :
•Taokhxi b`nh]H. chyangzn xRp
•NRu b|qua, Hoanngzn xRp s•H^_cthiRt l€p256 byte
.DATA Kích th^]c
ONMÃ
•Chyamã lrnh ch^tng trình
•Khi dùng ki.u b`nh]SMALL không c[ntên
.STACK Kích th^]c
.CODE Tên

DuyTan University Assembly Language Programming
Nguye n Va n Tho – Duy Ta n Univ ersit y.
MoT SƒLNH CB>N
LNH MOV : CHUY„N SƒLIU
LNH XCHR : TRÁO …I DLIU
LNH LEA : COPY †ACH‡TNG ƒI
LNH INT : GINGˆT
Nguyen Van Tho – Duy Tan University.
LNH MOV
Chuy.n dqliru tIsource sang Hích
Source : Toán hang nguXn, có th.là thanh ghi (Reg), ô
nh](mem) hay giá tr5hjng sx(Immed)
Dest : Toán hang Hích, chbcó th.là Reg hay mem.
Dqliruchuy.ncó th.là byte hay word
Ví d#:
MOV AX, BX ; Chuy.ngiá tr5tIBX
AX
MOV AH, 54h ; AH =54h
MOV DS: [BX], 3Ah ; Chuy.n3Ah
ônh]có H5achí DS:BX
MOV Dest, Source
Nguyen Van Tho – Duy Tan University.
MoT SƒCHÚ Ý VI LNH MOV
Không th.chuy.n dqlirutr•ctiRpgiqa 2 thanh ghi Hoan
MOV DS, ES ; Lrnh này b5sai do DS và ES là thanh ghi Hoan
GiWipháp : S\d#ng thanh ghi trung gian
MOV AX, ES ; ES
AX (AX=ES)
MOV DS, AX ; AX
DS (DS=AX)
Không th.chuy.n dqlirutr•ctiRpgiqa 2 ô nh]
Mem1 DB 34h
Mem2 DB ?
…
MOV mem2,mem1 ; Lrnh này sai
Không th.chuy.n dqlirutr•ctiRpvào thanh ghi Hoan
MOV DS, 35A2H ; Lrnh này sai.

DuyTan University Assembly Language Programming
Nguye n Va n Tho – Duy Ta n Univ ersit y.
LNH XCHR
Tráo H•i dqlirugiqDest và Source
Source và Dest có th.là Reg ho‘cmem
Dqlirutráo H•icó th.là byte hay word
Víd#:
MOV AH, 32H ; AH=32H
MOV AL, 54h ; AL =54h
XCHR AH, AL ; AH=54H , AL=32H
XCHR Dest, SourceXCHR Dest, SourceXCHR Dest, SourceXCHR Dest, SourceXCHR Dest, Source
Nguyen Van Tho – Duy Tan University.
LNH LEA
L’yH5achbt^tng Hxi csasource
Dest
Source phWilà mem
Dest có th.là reg ho‘cmem
MOV Dest, Offset(Source)
Ví d#:
Meg DB ‘Hello’
…..
LEA DX,Meg ; DX = Offset(Meg)
LEA Dest, Source
Nguyen Van Tho – Duy Tan University.
LNH INT
Lrnh INT dùng H. g”ing•t
Ng•tlà nhqng chyc nzng
Dest có th.là reg ho‘cmem
Ví d#:
INT Sxhirung•t