TOÁN TỬ GIẢ:
DB : Định nghĩa kiểu byte
DW : Định nghĩa kiểu word ( 2 byte)
DD : Định nghĩa từ kép ( 2 word)
DQ : Định nghĩa 4word
DT : Định nghĩa 10 byte liên tiếp
9 trang |
Chia sẻ: lylyngoc | Lượt xem: 1571 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Chương 2 Giới thiệu hợp ngữ cho IBM-PC, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
DuyTan University Assembly Language Programming
CHNG 2
GI
I THIU HP NG
CHO IBM-PC
Nguyn V n Th
B môn in t vin thông
Khoa Công ngh thông tin, i hc Duy Tân – 2007
I HC DUY TÂN
KHOA CÔNG NGH THÔNG TIN
Nguyen Van Tho – Duy Tan University.
CÚ PHÁP HP NG
Ví d# :
START: MOV AX,BX ; chuy.n giá tr5 BX 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.
D LIU CHNG TRÌNH
TOÁN T: GI> :
DB : 5nh ngh?a ki.u byte
DW : 5nh ngh?a ki.u word ( 2 byte)
DD : H5nh ngh?a tI kép ( 2 word)
DQ : H5nh ngh?a 4 word
DT : H5nh ngh?a 10 byte liên tiRp
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
D LIU CHNG TRÌNH
KHAI BÁO BISN
Cú pháp :
Tên bi4n Toán t gi5 giá tr6 kh8i to
Ví d:
A DB 4 ; khai báo bi4n A ki=u byte,ban .>u A=4
B DW 10h ; khai báo bi4n B ki=u word, ban .>u B=10h
C DB ? ; khai báo bi4n C ki=u byte, không kh8i to
KHAI BÁO CHUUI
MEG 1 DB ‘HELLO’ ; Khai báo chuLi Meg1 = ‘Hello’
MEG2 DB 61h,42h,43h ; ChuLi meg2 = ‘ABC”
Nguyen Van Tho – Duy Tan University.
D LIU CHNG TRÌNH
KHAI BÁO M>NG
ARR DB 10H,12H,15H ; MWng ARR gXm 3 ph[n t\
; v]i các giá tr5 là 10h,12h,15h
Ví d# mWng ARR H^_c ghi vào b` nh] tai H5a chb 0560h thì
Ph[n t\ 5a chb Giá tr5
ARR 0560h 10h
ARR + 1 0561h 12h
ARR+ 2 0562h 15h
Nguyen Van Tho – Duy Tan University.
D LIU CHNG 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á tr5 16bit
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
KHUÔN MnU MoT CHNG TRÌNH
.MODEL SMAIL
.STACK 100H
.DATA
; Khai báo dq liru
.CODE
MAIN PROC
; Các lrnh csa ch^tng trình
MAIN ENDP
; các ths t#c khác
END MAIN
Nguyen Van Tho – Duy Tan University.
CuU TRÚC CHNG TRÌNH
CHS o Bo NH
:
Xác H5nh kích th^]c csa Hoan dq liru và Hoan mã csa
ch^tng trình
.MODEL Ki.u b` nh]
KIU MÔ T
SMALL Mã lnh 1 on, d liu 1 on
MEDIUM Mã lnh hn 1 on, d liu 1 on
COMPACT Mã lnh 1 on, d liu hn 1 on
LARGE Mã lnh > 1 on, d liu >1 on, m%ng < 64KB
HUGE Mã lnh > 1 on, d liu > 1 on, m%ng > 64KB
Nguyen Van Tho – Duy Tan University.
CuU TRÚC CHNG TRÌNH
ON NGwN XSP :
• Tao khxi b` nh] H. chya ngzn xRp
• NRu b| qua, Hoan ngzn xRp s H^_c thiRt lp 256 byte
.DATA Kích th^]c
ON MÃ
• Chya mã lrnh ch^tng trình
• Khi dùng ki.u b` nh] SMALL không c[n tên
.ST CK ích th^]c
.CODE Tên
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
MoT S LNH C B>N
LNH MOV : CHUYN S LIU
LNH XCHR : TRÁO
I D LIU
LNH LEA : COPY A CH TNG I
LNH INT : GI NGT
Nguyen Van Tho – Duy Tan University.
LNH MOV
Chuy.n dq liru tI source sang Hích
Source : Toán hang nguXn, có th. là thanh ghi (Reg), ô
nh] (mem) hay giá tr5 hjng sx (Immed)
Dest : Toán hang Hích, chb có th. là Reg hay mem.
Dq liru chuy.n có th. là byte hay word
Ví d# :
MOV AX, BX ; Chuy.n giá tr5 tI BX AX
MOV AH, 54h ; AH =54h
MOV DS: [BX], 3Ah ; Chuy.n 3Ah ô nh] có H5a chí DS:BX
MOV Dest, Source
Nguyen Van Tho – Duy Tan University.
MoT S CHÚ Ý V
I LNH MOV
Không th. chuy.n dq liru trc tiRp giqa 2 thanh ghi Hoan
MOV DS, ES ; Lrnh này b5 sai do DS và ES là thanh ghi Hoan
GiWi phá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 dq liru trc tiRp giqa 2 ô nh]
Mem1 DB 34h
Mem2 DB ?
…
MOV mem2,mem1 ; Lrnh này sai
Không th. chuy.n dq liru trc tiRp vào thanh ghi Hoan
MOV DS, 35A2H ; Lrnh này sai.
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
LNH XCHR
Tráo Hi dq liru giq Dest và Source
Source và Dest có th. là Reg hoc mem
Dq liru tráo Hi có 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, Source
Nguyen Van Tho – Duy Tan University.
LNH LEA
Ly H5a chb t^tng Hxi csa source Dest
Source phWi là mem
Dest có th. là reg hoc mem
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. gi ngt
Ngt là nhqng chyc nzng
Dest có th. là reg hoc mem
Ví d# :
INT Sx hiru ngt
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
GI
I THIU 1 S HÀM CA NGT 21H
HÀM 1 - Nhn 1 phím tI bàn phím
Vào : AH = 1
Ra : AL = mã ASCII phím H^_c n( nRu là phím ký t )
= 0 (nRu phím Hiu khi.n H^_c n)
HÀM 2 - Hi.n th5 1 ký t trên màn hình
Vào : AH = 2
DL = mã ASCII csa ký t
Ra : AL = mã ASCII csa ký t
HÀM 9 - Hi.n th5 1 chumi trên màn hình
Vào : AH = 9
Dx = Offset csa chumi
(chumi phWi kRt thúc bjng kí t ‘$’ )
Ra : Không
Nguyen Van Tho – Duy Tan University.
PSP – Program Segment Prefix
PSP (Hoan m H[u ch^tng trình) gXm 256 byte chya
nhqng thông tin v ch^tng trình.
Khi ch^tng trình H^_c nap vào b` nh] thanh ghi DS và
ES chya H5a chb csa PSP. (DS không chya Hoan dq liru)
Do Hó Ch^tng trình có Hoan dq liru phWi bt H[u bjng 2
lrnh sau :
MOV AX, @DATA ; ^a H5a chb Hoan dq liru AX
MOV DS,AX ; Chuy.n AX DS
Nguyen Van Tho – Duy Tan University.
VÍ D 2.1 : Xut ra màn hình câu “Hello assembly!”
.MODEL SMALL
.STACK 100H
.DATA
Meg DB ‘Hello assembly !$’ ; có ký t $ kRt thúc chumi
.CODE
MOV AX, @DATA ; H^a H5a chb Hoan dq liru
MOV DS,AX ; vào thanh ghi DS
MOV AH,09 ; khai báo hàm 9 ngt 21
LED DX,Meg ; DX=Offset(meg)
INT 21H ; gi ngt 21h
MOV AH,4CH ; ngt 21h , hàm 4Ch H. kRt thúc
INT 21H ; ch^tng trình và tr v dos
END
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
VÍ D 2.2 : Xut ra màn hình 2 chq A và 1chq Z s\ d#ng
hàm 2 ngt 21h
02AH
Mã cRa A DL
Gi ngSt 21h
Mã cRa Z DL
Gi ngSt 21h
.MODEL SMALL
.STACK 100H
.CODE
MOV AH,02 ; khai báo hàm 2 ngt 21
MOV DL,41H ; H^a mã kí t ‘A’ vào DL
INT 21H ; gi ngt 21h, xut chq A
INT 21H ; xut chq A thy 2
MOV DL,’Z’ ; H^a mã kí t ‘Z’ vào DL
INT 21H ; gi ngt 21h, xut chq Z
MOV DL,4CH ; KRt thúc ch^tng trình
INT 21H ; và tr v dos
END
Nguyen Van Tho – Duy Tan University.
VÍ D 2.3 : ViRt ch^tng trình ch¥ nhn 1 ký t tI bàn
phím. Hi.n th5 ký t nhn H^_c 2 l[n trên màn hình
.MODEL SMALL
.STACK 100H
.CODE
MOV AH,01H ; Nhn 1 ký t tI bàn phím, mã ASCII ký t nhn
INT 21H ; H^_c chya trong AL
MOV DL,AL ; H^a mã ASCII ký t nhn H^_c vào DL
MOV AH,02H ;
INT 21H ; hi.n th5 ký t
INT 21H ; hi.n th5 l[n thy 2
MOV AH,4CH ; ngt 21h , hàm 4Ch H. kRt thúc
INT 21H ; ch^tng trình và tr v dos
END
Nguyen Van Tho – Duy Tan University.
DCH VÀ LIÊN KST CHNG TRÌNH
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
DCH VÀ LIÊN KST CHNG TRÌNH
B
C 1 : Dùng 1 ch^tng trình soan thWo bt k§ H. soan
ch^tng trình. L^u ch^tng trình v]i ph[n m r`ng .ASM
Ví d# : soan ch^tng trình l^u v]i tên hello.asm
B
C 2 : D5ch
TI du nhc DOS vào th^ m#c MASM
Gõ lrnh MASM
Ví d# : MASM Hello.asm;
NRu thành công thì ch^tng trình s tao ra file Hello.obj
B^]c 3 : Liên kRt
Gõ lrnh LINK
Ví d# : LINK hello.obj;
NRu thành công ch^tng trình s tao ra fiel Hello.exe.
Nguyen Van Tho – Duy Tan University.
S: DNG EDIT PLUS
CuU HÌNH CHO EDIT PLUS
Vào Tools
Chn Configuge User Tools
Nguyen Van Tho – Duy Tan University.
VÍ D 2.4: ViRt ch^tng trình hi.n th5 2 dòng chq “ DuyTan
University “ và “ Information Technology Department” 2
dòng liên tiRp nhau
CÁCH 1 :
.STACK 100H
.DATA
Meg1 DB “DuyTan University $”
Meg2 DB 10,13,“Information Technology Department$”
.CODE
MOV AX,@data
MOV DS,AX
MOV AH,9 ; dùng hàm 9 ngt 21h
LEA DX,Meg1 ; chu®n b5 dq liru
INT 21H ; xut chumi meg1
LEA DX,Meg2 ; chu®n b5 dq liru
INT 21H ; xut chumi meg2
MOV AH,4CH ; kRt thúc ch^tng trình
INT 21H ; và tr v DOS
END.
DuyTan University Assembly Language Programming
Nguyen Van Tho – Duy Tan University.
CÁCH 2 :
.STACK 100H
.DATA
Meg1 DB “DuyTan University $”
Meg2 DB “Information Technology Department$”
.CODE
MOV AX,@data
MOV DS,AX
MOV AH,9 ; dùng hàm 9 ngt 21h
LEA DX,Meg1 ; chu®n b5 dq liru
INT 21H ; xut chumi meg1
MOV AH,2 ; xut 1 kí t
MOV DL,10 ; kí t Hiu khi.n xuxng dòng
INT 21H ; xut
MOV DL,13 ; kí t Hiu khi.n v H[u dòng
INT 21H ; xut
MOV AH,9 ; dùng hàm 9 ngt 21h
LEA DX,Meg2 ; chu®n b5 dq liru
INT 21H ; xut chumi meg2
MOV AH,4CH ; kRt thúc ch^tng trình
INT 21H ; và tr v DOS
END.