Macro – Ch ươ ng trình con.
Trang 21 B4 09 10110100 00001001
2 BA 03 01 10111010 00000011 00000001
Trang 4Ngôn ng Máy và H p Ng ữ ợ ữ
Trang 5H p ng MASM ợ ữ
• Dòng l nh ệ
• Ví d : ụ
BDAU: MOV DX, 3F8h ; 3F8H là đ a ch c ng vào ra n i ti pị ỉ ổ ố ế
BDAU – Tên v i vai trò là nhãn ớ
Trang 8Bi n – Ký hi u (H ng) ế ệ ằ
• Ví d : ụ
TWO DB 2 ; khai báo bi n TWO có giá tr là 2ế ị
FOO EQU 7h; ký hi u FOO thay th giá tr 07hệ ế ị
TOTO = 0Fh ; ký hi u TOTO thay th giá tr 0Fhệ ế ị
Trang 9L nh gi ệ ả
• Là l nh c a trình h p d ch, không có mã máy tệ ủ ợ ị ương ngứ
• Không đi u khi n CPU ho t đ ng.ề ể ạ ộ
Trang 10L nh gi c u trúc ch ệ ả ấ ươ ng trình
• SEGMENT – ENDS: Khai báo đo n ạ
• Cú pháp: <tên đo n> ạ SEGMENT
… ; n i dung c a đo n ộ ủ ạ <tên đo n> ạ ENDS
• Ví d : ụ Khai báo hai đo n có tên là DSEG và CSEG:ạ
Trang 11ASSUME: Ch đ nh lo i c a m t đo n ỉ ị ạ ủ ộ ạ
• Cú pháp: ASSUME <SegRes>:<Tên1>,<SegRes>:<Tên2>
• Ví d : ụ Ch đ nh đo n có tên DSEG là đo n d li u (DS) và ỉ ị ạ ạ ữ ệ
đo n có tên CSEG là đo n l nh (CS):ạ ạ ệ
ASSUME DS: DSEG, CS: CSEG
Chú ý: L nh ASSUME ph i đ ệ ả ượ c vi t trong đo n l nh ế ạ ệ
END : Cu i file ch ố ươ ng trình ngu n ồ
• Cú pháp: END <Nhãn>
Trang 12Macro – Ch ươ ng trình con
Trang 13• Chu i: ‘Hello Word’, “Welcome to Assembly”ỗ
• M i ký t là 1 BYTE và đỗ ự ược qu n lý b ng mã ASCIIả ằ
Trang 14Khai báo d li u (Bi n) ữ ệ ế
• Bi n là Tên đ i di n cho đ a ế ạ ệ ị
ch ô nh => Truy xu t n i ỉ ớ ấ ộ
dung ô nh b ng Tên Bi n ớ ằ ế
Trang 15Khai báo d li u (Bi n) ữ ệ ế
Trang 16Ví d ụ
Trang 17Ví dụ
Trang 18Toán h ng ạ
• Toán h ng là thành ph n trong dòng l nh: 3 lo iạ ầ ệ ạ
• Toán h ng t c thì (Immed): H ng Sạ ứ ằ ố
• Cách vi t: ế 10, ‘B’, 10b, 10h
• Ký hi u t ng quát đ i di n cho toán h ng t c thì: ệ ổ ạ ệ ạ ứ
Immed : Toán h ng t c thì nói chungạ ứ
Immed8 : Toán h ng t c thì 8 bitạ ứ
Immed16 : Toán h ng t c thì 16 bitạ ứ
Immed32 : Toán h ng t c thì 32 bitạ ứ
MOV AX, 1AF8h ; AX 1AF8h (là TH T c thì)ứ
Trang 19Toán h ng Thanh Ghi ạ
• Toán h ng Thanh ghi (Reg): Tên thanh ghi ạ
Truy xu t n i dung thanh ghiấ ộ
• Cách vi t: ế AX, BX, CX, DX, AL, AH, SI, DS,
• Ký hi u t ng quát đ i di n cho toán h ng thanh ghi: ệ ổ ạ ệ ạ
Reg : Toán h ng thanh ghi đa d ng nói chungạ ụ
Reg8 : Toán h ng thanh ghi đa d ng 8 bitạ ụ
Reg16 : Toán h ng thanh ghi đa d ng 16 bitạ ụ
SegRes : Toán h ng thanh ghi đo nạ ạ
Trang 20Toán h ng Ô nh ạ ớ
• Toán h ng Ô nh (Mem): Đ a ch ô nh (Tên bi n) ạ ớ ị ỉ ớ ế
Truy xu t n i dung ô nh (giá tr Bi n)ấ ộ ớ ị ế
• Các cách vi t c b n: ế ơ ả
Tên_Bi n ế : Truy xu t đ n n i dung c a Bi n.ấ ế ộ ủ ế
[Immed16]: Truy xu t n i dung c a ô nh trong đo n ấ ộ ủ ớ ạ
DS, ô nh đó có đ a ch đ d i là ớ ị ỉ ộ ờ Immed16 Còn g i là ọ
tr c ti p ô nh ự ế ớ
[Reg16]: Truy xu t n i dung c a ô nh trong đo n DS, ấ ộ ủ ớ ạ
mà ô nh đó có đ a ch đ d i l u trong ớ ị ỉ ộ ờ ư Reg16 Còn g i ọ
là gián ti p thanh ghi.ế
MOV AX, FOO ; AX M[FOO] (Tên bi n)ế
Trang 22… ; Khai báo d li u ữ ệ
DSEG ENDS CSEG SEGMENT
ASSUME CS: CSEG, DS: DSEG Start: MOV AX, DSEG
MOV DS, AX ; kh i đ ng DS: đ a ch Đo n d li u (DSEG) ở ộ ị ỉ ạ ữ ệ
END Start
Trang 23INT 21h ; G i ng t đ th c công vi c ọ ắ ể ự ệ
MOV AH, 4ChINT 21h
Trang 24Cách t o ch ạ ươ ng trình h p ng ợ ữ
Trang 26• T o file ngu n ạ ồ • H p d chợ ị
Trang 27• Thông báo l i ỗ
• Thông báo l i ỗ
• Không l i ỗ
Trang 28Liên k t thành công ế