- Ch ươ ng 1: M Đ U Ở Ầ. - Chúng đ ượ c dùng đ l u tr d ể ư ữ ữ li u t m th i trong khi th c hi n ch ệ ạ ờ ự ệ ươ ng trình. - Thanh ghi đo n ngăn x p SS: là thanh ghi ch a đ a ch đo n b nh ạ ế ứ ị ỉ ạ ộ ớ ngăn x p (stack) c a ch ế ủ ươ ng trình.. - Ch ụ ươ ng trình chính lúc này s b d ng l i (ng t) và vi x lý c t gi n i dung c a các thanh ghi đang dùng ẽ ị ừ ạ ắ ử ấ ữ ộ ủ b ng l nh PUSH vào m t vùng nh đ c bi t (g i là ngăn x p) r i chuy n sang ằ ệ ộ ớ ặ ệ ọ ế ồ ể. - Các ng t m m cho phép g i các ch ắ ề ọ ươ ng trình ph c a h đi u hành. - M i ng t ng v i m t ch ừ ế ỗ ắ ứ ớ ộ ươ ng trình con ph c v ng t và s ụ ụ ắ ẽ đ ượ c th c hi n khi đ ự ệ ượ c g i l i. - Vì ngôn ng Assembler r t g n gũi v i ngôn ng máy nên ch ữ ấ ầ ớ ữ ươ ng trình + Ch y nhanh. - Ch ươ ng trình d ch s thông báo sai ta s dùng debug c a DOS đ ị ẽ ẽ ủ ể ki m tra. - Không chuy n ch ể ươ ng trình Assembler cho các máy tính có c u trúc ấ khác nhau.. - Các ch ươ ng trình trò ch i ( ngày tr ơ ướ c).. - T p l nh MNEMONIC sinh mã máy đ ch y ch ậ ệ ể ạ ươ ng trình.. - Các DIRECTIVE đi u khi n khi d ch ch ề ể ị ươ ng trình.. - Các b ướ c vi t ch ế ươ ng trình h p ng ợ ữ. - thì c hai ch ả ươ ng trình đ u biên d ch đ ề ị ượ c. - Cài đ t ch ặ ươ ng trình d ch TASM: ị. - Các b ướ c th c hi n m t ch ự ệ ộ ươ ng trình Assember trên máy PC : (so n th o ch ạ ả ươ ng trình, d ch ch ị ươ ng trình, liên k t, ch y th và ế ạ ử cách tìm sai b ng DEBUG c a DOS và TD (Turbo Debug) c a Borland) ằ ủ ủ Bao g m 4 b ồ ướ c:. - B ướ c 1 : Dùng ch ươ ng trình so n th o b t kì (Edit, NC, TC. - đ so n ạ ả ấ ể ạ th o ch ả ươ ng trình. - C u trúc m t ch ấ ộ ươ ng trình h p ng d ng segment đ n gi n ợ ữ ạ ơ ả. - C u trúc c a m t ch ấ ủ ộ ươ ng trình h p ng có liên quan ch t ch v i c u trúc ợ ữ ặ ẽ ớ ấ ph n c ng c a b vi x lý. - Trong đó, ít nh t m t ch ế ạ ở ộ ấ ộ ươ ng trình h p ng ph i có ợ ữ ả m t đo n mã l nh. - cho b d ch h p ng bi t r ng ch ộ ị ợ ữ ế ằ ươ ng trình đã k t thúc. - D ng th ạ ườ ng th y 1 ch ấ ươ ng trình ASM đ n gi n ơ ả (Khai báo theo directive đi u khi n segment d ng đ n gi n) ề ể ạ ơ ả .MODEL. - Nhãn ch ươ ng trình:. - Thân ch ươ ng trình END Nhãn ch ươ ng trình. - a) C u trúc ch ấ ươ ng trình d ng .Com ạ C u trúc: ấ. - .MODEL SMALL .CODE org 0100h Nhãn ch ươ ng trình:. - Thân ch ươ ng trình int 20h. - END Nhãn ch ươ ng trình. - Ví d : Vi t ch ụ ế ươ ng trình hi n m t xâu lên màn hình: ệ ộ .model small. - a) C u trúc ch ấ ươ ng trình d ng .exe ạ C u trúc: ấ. - Thân ch ươ ng trình mov ah,4ch. - Ví d : Ch ụ ươ ng trình hi n m t xâu lên màn hình ệ ộ .model small. - Ch c năng ứ : Cho phép ng ườ ậ i l p trình xác l p vùng nh RAM thích h p cho ậ ớ ợ ch ươ ng trình.. - Ch c năng ứ : Báo cho ch ươ ng trình d ch c a ASM bi t xác l p m t vùng ị ủ ế ậ ộ nh RAM cho Stack. - C u trúc c a m t ch ấ ủ ộ ươ ng trình segment d ng chu n ạ ẩ. - Ta có th hình dung d ng th ể ạ ườ ng th y c a m t ch ấ ủ ộ ươ ng trình segment nh ư sau:. - C h ươ ng trình segment đ n gi n d ng chu n ơ ả ạ ẩ Stack segment. - Cách khai báo 3 segment c a ch ủ ươ ng trình:. - Ch ươ ng 2. - Debug là m t ch ộ ươ ng trình ch y trong môi tr ạ ườ ng DOS. - ch y ch ạ ươ ng trình theo t ng l nh, nhóm l nh hay c ch ừ ệ ệ ả ươ ng trình. - s a t ng byte, nhi u byte hay c ch ử ừ ề ả ươ ng trình. - Nhóm các l nh biên so n ch ệ ạ ươ ng trình 1) L nh A ệ. - Thông s address: là m t s hexa g m 4 ch s đ ch đ a ch b t đ u các ố ộ ố ồ ữ ố ể ỉ ị ỉ ắ ầ l nh d ng h p ng c a ch ệ ạ ợ ữ ủ ươ ng trình. - Công d ng: ụ L nh cho ta nh p các l nh c a ch ệ ậ ệ ủ ươ ng trình d ng h p ng ạ ợ ữ vào m t đ a ch ô nh . - Nhóm l nh thi hành ch ệ ươ ng trình 1) L nh T ệ. - Công d ng: ụ L nh này th c hi n toàn b ch ệ ự ệ ộ ươ ng trình hay th c hi n t ự ệ ừ đ u đ n đi m d ng. - Ví d : ụ G=0100 hay G : Th c hi n toàn b ch ự ệ ộ ươ ng trình b t đ u t i đ a ch ắ ầ ạ ị ỉ CS:0100. - G Th c hi n ch ự ệ ươ ng trình t cs:0100 đ n cs:0200 ừ ế. - Ch ươ ng 3: Các l nh c a Assembly ệ ủ. - Đo n ch ạ ươ ng trình:. - Ch c năng: G i ch ứ ọ ươ ng trình con Cú pháp. - Ch c năng: quay v ch ứ ề ươ ng trình đã g i ch ọ ươ ng trình con Cú pháp: RET (n m cu i ch ằ ở ố ươ ng trình con). - Ch ươ ng 4 Ch ươ ng trình con và ch ươ ng trình đa t p ệ. - 4.1 Th t c – Ch ủ ụ ươ ng trình con. - 4.1.1 C ch làm vi c c a ch ơ ế ệ ủ ươ ng trình con. - B ướ c 3: H đi u hành bi t đ ệ ề ế ượ c đ a ch đ u c a ch ị ỉ ầ ủ ươ ng trình con. - B ướ c 5: ti p t c ch ế ụ ươ ng trình đang th c hi n d . - 4.1.2 C u trúc c a ch ấ ủ ươ ng trình con Tên ch ươ ng trình con PROC [near/far]. - B o v các thanh ghi mà thân ch ả ệ ươ ng trình con phá v . - ỡ Các l nh ASM c a thân ch ệ ủ ươ ng trình con.. - H i ph c các thanh ghi mà thân ch ồ ụ ươ ng trình con đã phá v . - Tên ch ươ ng trình con ENDP Nh n xét: ậ. - Ch ươ ng trình con thu n tuý ASM không có tham s . - N u .MODEL tiny/small/compact thì ch ế ươ ng trình con là NEAR(mã máy<. - Ví d 1: Vi t ch ụ ế ươ ng trình con tính a^b.. - Ví d 2: Vi t ch ụ ế ươ ng trình con dùng đ ki m tra m t s là ch n hay là l : ể ể ộ ố ẵ ẻ .model small. - Trong m t ch ộ ươ ng trình có th có nhi u h n m t ch ể ề ơ ộ ươ ng trình con. - Nh ư b n th y ch ạ ấ ở ươ ng trình trên.. - Ví d 3: Hãy vi t ch ụ ế ươ ng trình con ASM cho phép nh n m t s nguyên. - ế ả ằ ử a) Nh n s nguyên d ậ ố ươ ng. - hsn endp end begin 4.2 Ch ươ ng trình đa t p ệ. - Ch ỏ ộ ệ ươ ng trình trên m t t p ng n, đ n gi n và d ộ ệ ắ ơ ả ễ vi t. - Ch ạ ớ ươ ng trình vi t trên nhi u t p có thu n l i nh sau: ế ề ệ ậ ợ ư. - Tr ườ ng h p nhãn là tên ch ợ ươ ng trình con : 57. - .CODE PUBLIC Tên ch ươ ng trình con Tên ch ươ ng trình con PROC. - Tên ch ươ ng trình con ENDP 4.2.2 L nh đi u khi n EXTERN ệ ề ể. - Tr ườ ng h p nhãn là tên ch ợ ươ ng trình con:. - EXTRN Tên ch ươ ng trình con:PROC 4.2.3 L nh đi u khi n GLOBAL ệ ề ể. - Dùng ch ươ ng trình d ch đ d ch các module (file.ASM) thành các file ị ể ị .OBJ. - Module 3: Có ch ươ ng trình con tính giai th a c a m t s , v i s c n tính ừ ủ ộ ố ớ ố ầ là bi n public n c a module 1. - Đ gi i quy t v n đ đó ch ị ộ ể ả ế ấ ề ươ ng trình d ch ị ASM có m t l nh là INCLUDE. - V n đ là ch ấ ề ươ ng trình d ch c a ASM s tìm l nh INCLUDE đâu: ị ủ ẽ ệ ở. - N u trong tên t p có ch rõ đ ế ệ ỉ ườ ng d n thì ch ẫ ươ ng trình d ch s tìm t p ị ẽ ệ th m c đó. - N u không tìm ra t p thì ch ế ệ ươ ng trình d ch s báo l i ị ẽ ỗ 4.2.4.2. - Ta vi t t p lib.asm, ch a các ch ế ệ ứ ươ ng trình con nh p xu t: ậ ấ vsn proc. - T bây gi , đ nh p xu t đ ừ ờ ể ậ ấ ượ c s , b n ch c n ố ạ ỉ ầ include lib.asm vào ch ươ ng trình.. - Mà đi u này thì ch ố ề ươ ng trình con không làm đ ượ c. - C ch c a ch ơ ế ủ ươ ng trình d ch khi g p l nh m i ị ặ ệ ớ Clrscr. - Ch ươ ng 5: Các thao tác v i t p ớ ệ. - k t thúc ch ế ươ ng trình mov ah, 1. - Khi ch ể ỏ ẽ ỏ ứ ố ươ ng trình trên đ ượ c th c thi b n s nhìn th y s 4 trên màn hình. - C ch : ơ ế Chèn kh i l nh ASM vào ch ố ệ ươ ng trình đ ượ c vi t b ng C/C++ ế ằ Cú pháp:. - Ch ươ ng trình Turbo C s d ch t p ngu n có đuôi .c sang t p .asm. - Ch ươ ng trình d ch TASM s ti p t c d ch t p .asm sang t p có đuôi ị ẽ ế ụ ị ệ ệ .obj.. - D ng t ng quát c a inline assembly trong ch ạ ổ ủ ươ ng trình vi t b ng Pascal ế ằ nh sau: ư. - Các l nh c a ASM đ ệ ủ ượ c d ch nh qua ch ị ờ ươ ng trình d ch c a Pascal ị ủ. - V n đ 2: ấ ề v n đ near/far c a ch ấ ề ủ ươ ng trình con:. - Các ch ươ ng trình con đ ượ c khai báo ph n interface c a Unit luôn là far ở ầ ủ
Xem thử không khả dụng, vui lòng xem tại trang nguồn hoặc xem
Tóm tắt