intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình Assembly: Chương 2 - Nguyễn Văn Thọ

Chia sẻ: Cvcxbv Cvcxbv | Ngày: | Loại File: PDF | Số trang:9

160
lượt xem
21
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong nội dung chương 2 Giới thiệu hợp ngữ cho IBM - PC của bài giảng Lập trình Assembly nhằm trình bày về cú pháp hợp ngữ, dữ liệu chương trình, khuân mẫu một chương trình. Bài giảng được trình bày khoa học, súc tích giúp các bạn sinh viên tiếp thu bài học nhanh.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình Assembly: Chương 2 - Nguyễn Văn Thọ

  1. DuyTan University Assembly Language Programming I H C DUY TÂN KHOA CÔNG NGH THÔNG TIN CH NG 2 GI I THI U H P NG CHO IBM-PC Nguy n V n Th B môn i n t vi n thông Khoa Công ngh thông tin, i h c Duy Tân – 2007 Nguyen Van Tho – Duy Tan University. CÚ PHÁP H P NG NHÃN TOÁN T: TOÁN H NG CHÚ THÍCH Ví d# : START: MOV AX,BX ; chuy.n giá tr5 BX vào AX nhãn Toán Toán h ng : Chú thích t AX : toán h ng .ích BX : toán h ng ngu0n Nguyen Van Tho – Duy Tan University. D LI U CH NG 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
  2. DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. D LI U CH NG TRÌNH KHAI BÁO BISN Cú pháp : Tên bi4n Toán t gi5 giá tr6 kh8i t o 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 t o 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 CH NG 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 CH NG TRÌNH KHAI BÁO HfNG Cú pháp : Tên hjng EQU Chumi Tên hjng EQU giá tr5 16bit Ví d# : Mg EQU ‘HELLO’ ; khai báo hjng Mg=HELLO Data EQU 167Eh ; khai báo hjng data=167Eh
  3. DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. KHUÔN MnU MoT CH NG 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 CH NG TRÌNH CHS o Bo NH : .MODEL Ki.u b` nh] Xác H5nh kích th^]c csa Hoan dq liru và Hoan mã csa ch^tng trình KI U MÔ T SMALL Mã l nh 1 o n, d li u 1 o n MEDIUM Mã l nh h n 1 o n, d li u 1 o n COMPACT Mã l nh 1 o n, d li u h n 1 o n LARGE Mã l nh > 1 o n, d li u >1 o n, m%ng < 64KB HUGE Mã l nh > 1 o n, d li u > 1 o n, m%ng > 64KB Nguyen Van Tho – Duy Tan University. CuU TRÚC CH NG TRÌNH O N NGwN XSP : .STACK Kích th^]c .DATA Kích th^]c • Tao khxi b` nh] H. chya ngzn xRp • NRu b| qua, Hoan ngzn xRp s• H^_c thiRt l€p 256 byte O N MÃ .CODE Tên • Chya mã lrnh ch^tng trình • Khi dùng ki.u b` nh] SMALL không c[n tên
  4. 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‡ T NG ƒI L NH INT : G I NGˆT Nguyen Van Tho – Duy Tan University. L NH MOV MOV Dest, Source 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 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.
  5. DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. L NH XCHR XCHR Dest, Source 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 Nguyen Van Tho – Duy Tan University. L NH LEA LEA Dest, Source 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) Nguyen Van Tho – Duy Tan University. L NH INT INT Sx hiru ng•t 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# :
  6. 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
  7. 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 .MODEL SMALL .STACK 100H 02 AH .CODE Mã cRa A DL 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 G i ngSt 21h INT 21H ; xu’t chq A thy 2 MOV DL,’Z’ ; H^a mã kí t• ‘Z’ vào DL Mã cRa Z DL INT 21H ; g”i ng•t 21h, xu’t chq Z MOV DL,4CH ; KRt thúc ch^tng trình G i ngSt 21h 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 CH NG TRÌNH
  8. DuyTan University Assembly Language Programming Nguyen Van Tho – Duy Tan University. D†CH VÀ LIÊN KST CH NG 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.
  9. DuyTan University Assembly Language Programming CÁCH 2 : Nguyen Van Tho – Duy Tan University. .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.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2