Chương 2 Giới thiệu hợp ngữ cho IBM-PC

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

pdf9 trang | Chia sẻ: lylyngoc | Lượt xem: 1571 | Lượt tải: 1download
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 THI U 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 h c 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 LI U 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 LI U 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 LI U 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 LI U 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 l€p 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ƒ L NH C B>N  L NH MOV : CHUY„N Sƒ LI U  L NH XCHR : TRÁO …I D LI U  L NH LEA : COPY †A CH‡ TNG ƒI  L NH INT : GI NGˆT Nguyen Van Tho – Duy Tan University. L NH 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 L NH MOV  Không th. chuy.n dq liru trc 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 trc tiRp giqa 2 ô nh] Mem1 DB 34h Mem2 DB ? … MOV mem2,mem1 ; Lrnh này sai Không th. chuy.n dq liru trc tiRp vào thanh ghi Hoan MOV DS, 35A2H ; Lrnh này sai. DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. L NH XCHR  Tráo Hi dq liru giq Dest và Source  Source và Dest có th. là Reg ho‘c mem  Dq liru tráo Hi 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. L NH LEA  L’y H5a chb t^tng Hxi csa source  Dest  Source phWi là mem  Dest có th. là reg ho‘c 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. L NH INT  Lrnh INT dùng H. g”i ng•t  Ng•t là nhqng chyc nzng  Dest có th. là reg ho‘c mem Ví d# : INT Sx hiru ng•t DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. GI I THI U 1 Sƒ HÀM C—A NGˆT 21H HÀM 1 - Nh€n 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 Hi™u 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 b•t 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 : Xu’t 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 ng•t 21 LED DX,Meg ; DX=Offset(meg) INT 21H ; g”i ng•t 21h MOV AH,4CH ; ng•t 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 : Xu’t ra màn hình 2 chq A và 1chq Z s\ d#ng hàm 2 ng•t 21h 02AH Mã cRa A DL G i ngSt 21h Mã cRa Z DL G i ngSt 21h .MODEL SMALL .STACK 100H .CODE MOV AH,02 ; khai báo hàm 2 ng•t 21 MOV DL,41H ; H^a mã kí t ‘A’ vào DL INT 21H ; g”i ng•t 21h, xu’t chq A INT 21H ; xu’t chq A thy 2 MOV DL,’Z’ ; H^a mã kí t ‘Z’ vào DL INT 21H ; g”i ng•t 21h, xu’t 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¥ nh€n 1 ký t tI bàn phím. Hi.n th5 ký t nh€n H^_c 2 l[n trên màn hình .MODEL SMALL .STACK 100H .CODE MOV AH,01H ; Nh€n 1 ký t tI bàn phím, mã ASCII ký t nh€n INT 21H ; H^_c chya trong AL MOV DL,AL ; H^a mã ASCII ký t nh€n 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 ; ng•t 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. D†CH VÀ LIÊN KST CHNG TRÌNH DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. D†CH VÀ LIÊN KST CHNG TRÌNH B C 1 : Dùng 1 ch^tng trình soan thWo b’t 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 d’u nh•c 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: DŸNG EDIT PLUS CuU HÌNH CHO EDIT PLUS Vào Tools Ch”n 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 ng•t 21h LEA DX,Meg1 ; chu®n b5 dq liru INT 21H ; xu’t chumi meg1 LEA DX,Meg2 ; chu®n b5 dq liru INT 21H ; xu’t 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 ng•t 21h LEA DX,Meg1 ; chu®n b5 dq liru INT 21H ; xu’t chumi meg1 MOV AH,2 ; xu’t 1 kí t MOV DL,10 ; kí t Hi™u khi.n xuxng dòng INT 21H ; xu’t MOV DL,13 ; kí t Hi™u khi.n v™ H[u dòng INT 21H ; xu’t MOV AH,9 ; dùng hàm 9 ng•t 21h LEA DX,Meg2 ; chu®n b5 dq liru INT 21H ; xu’t chumi meg2 MOV AH,4CH ; kRt thúc ch^tng trình INT 21H ; và tr v™ DOS END.
Tài liệu liên quan