MACRO MACRO

ị ị

ọ ọ

Đ nh nghĩa Macro và g i Macro   Đ nh nghĩa Macro và g i Macro Vấn đề truyền thông số trong Macro. Vấn đề truyền thông số trong Macro. Macro lồng nhau. Macro lồng nhau. Sử dụng Macro để gọi chương trình con. Sử dụng Macro để gọi chương trình con. Các toán tử Macro. Các toán tử Macro. Thư viện Macro Thư viện Macro So sánh việc dùng Macro với Procedure So sánh việc dùng Macro với Procedure Một số Macro mẫu. Một số Macro mẫu.

CHUONG 9 MACRO CHUONG 9 MACRO

11

ỊĐ NH NGHĨA MACRO Đ NH NGHĨA MACRO

ợ Macro là 1 ký hi u ệ đưđư c gán cho 1 nhóm  ợc gán cho 1 nhóm    Macro là 1 ký hi u ệ ế ệ ế ệ l nh ASM – Macro là tên thay th  cho 1 nhóm  l nh ASM – Macro là tên thay th  cho 1 nhóm  l nh.ệl nh.ệ

ạ ạ

ầ ầ

T i sao c n có Macro : T i sao c n có Macro :

ậ ậ

ả ế ả ế

ầ ầ

ớ ạ ớ ạ

ự ự

ờ ờ ệ ệ

t  t

ữ ề ữ ề   Trong l p trình nhi u lúc ta c n ph i vi Trong l p trình nhi u lúc ta c n ph i vi t nh ng  t nh ng  ế ố ề ầ ệ ế ố ề ầ ệ t  l nh na ná nhau nhi u l n mà ta không mu n vi l nh na ná nhau nhi u l n mà ta không mu n vi t  ddưư i d ng hàm vì dùng hàm t n th i gian th c thi,  ố ố i d ng hàm vì dùng hàm t n th i gian th c thi,  ủ ả ế đđ y ầy ầ đđ  nhóm l nh này vào CT,  ủ ả ế  nhóm l nh này vào CT,  thay vì ta ph i vi thay vì ta ph i vi ế ỉ ầ ế ỉ ầ t Macro mà ta  ta ch  c n vi ta ch  c n vi t Macro mà ta

ã gán cho chúng.  đđã gán cho chúng.

CHUONG 9 MACRO CHUONG 9 MACRO

22

LÀM QUEN V I MACRO

ạ ề

ư ế ọ ệ

ố ể ị ể ố Khi ta cĩ nhi u đo n code gi ng nhau, chúng ta cĩ th   ể ế ố dùng macro đ  thay th , gi ng nh  ta dùng define  ằ ụ trong C. Thí d  chúng ta thay th  đ an l nh sau b ng  ấ macro đ  in d u xu ng d ng.

ề ầ

MOV DL,13 ; v  đ u d ng

MOV AH,2

INT 21H

ớ MOV DL,10 ; xu ng d ng m i

MOV AH,2

INT 21H

CHUONG 9 MACRO CHUONG 9 MACRO

33

ả ế ạ

i 6 d ng l nh trên, ta cĩ

t l

ể ạ ế ạ

Thay vì ph i vi th  t o 1 macro cĩ tên @Newline đ  thay  th  đo n code này :

@NewLine Macro

MOV DL,13

MOV AH,2

INT 21H

Sau đó, bất kỳ chỗ nào cần xuống dòng, ta chỉ cần gọi macro @NewLine.

MOV DL,10

@NewLine

MOV AH,2

INT 21H

ENDM

CHUONG 9 MACRO CHUONG 9 MACRO

44

ề ầ đđo n ạo n ạ ề ầ

t l t l

đđã ã  ơơi có  ữ ữ i có  đưđư c h p d ch thành file  c h p d ch thành file  ả ế ạ ả ế ạ i nhi u l n  i nhi u l n   trong DL ra màn hình.  trong DL ra màn hình.

ặ ệ ặ ệ

ể ế ể ế

ỗ ỗ t c  1 c p l nh trên m i khi  t c  1 c p l nh trên m i khi  t Macro  t Macro

MACRO (tt)  MACRO (tt)  ệ ộ ợ ị ệ ộ ợ ị Khi h p d ch n i dung nhóm l nh này mà ta    Khi h p d ch n i dung nhóm l nh này mà ta  ế ợ gán cho macro s  ẽ đưđư c thay th  vào nh ng n ế ợ gán cho macro s  ẽ c thay th  vào nh ng n tên macro trưư c khi CT  ợ ợ ị ớ ợ ợ ị ớc khi CT  tên macro tr OBJ.OBJ. ề ề Ex1 : nhi u khi ta ph i vi   Ex1 : nhi u khi ta ph i vi ự ấ ệ ự ấ ệ l nh xu t ký t l nh xu t ký t MOV AH, 2             MOV AH, 2              INT 21H             INT 21H              ả ế ả ả ế ả Thay vì ph i vi Thay vì ph i vi ự ấ ầ ự ấ ầ c n xu t ký t  trong DL, ta có th  vi  trong DL, ta có th  vi c n xu t ký t PUTCHAR nhưư sau :  sau : PUTCHAR nh

PUTCHAR MACRO

CHUONG 9 MACRO CHUONG 9 MACRO

55

MOV AH,2     INT 21H

ENDM

Ở Ộ Ở Ộ

Ủ Ủ

Ể Ể

M  R NG C A MACRO CÓ TH  XEM  M  R NG C A MACRO CÓ TH  XEM

TRONG FILE.LIST. TRONG FILE.LIST.

Ẽ Ẽ

Ị Ị 3 DIRECTIVE BIÊN D CH SAU S  QUY T  3 DIRECTIVE BIÊN D CH SAU S  QUY T  Ị Ị

Ở Ộ Ở Ộ

Đ NH M  R NG MACRO NH Đ NH M  R NG MACRO NH

Ế Ế Ế ƯƯ TH  NÀO. Ế  TH  NÀO.

Ở Ộ Ở Ộ

Ầ Ầ

Ử Ụ Ử Ụ

Ớ Ớ

Ợ Ợ Ợ Ợ

Ầ Ầ

.SALL (SUPRESS ALL)  PH N M  R NG MACRO  .SALL (SUPRESS ALL)  PH N M  R NG MACRO  KHÔNG ĐƯƯ C IN. S  D NG KHI MACRO L N HAY  C IN. S  D NG KHI MACRO L N HAY  KHÔNG Đ Ề Ế MACRO ĐƯƯ C THAM CHI U NHI U L N TRONG CT. Ề Ế C THAM CHI U NHI U L N TRONG CT. MACRO Đ

Ữ Ữ

Ạ Ạ

.XALL CH  NH NG DÒNG MACRO T O MàNGU N  .XALL CH  NH NG DÒNG MACRO T O MàNGU N

Ợ Ợ Ợ Ỏ Ợ Ỏ

Ọ Ọ

Ỳ Ỳ

Ồ Ỉ Ồ Ỉ M I  ĐỚM I  ĐỚ ƯƯ C IN RA.THÍ D  CÁC DÒNG CHÚ THÍCH  Ụ Ụ C IN RA.THÍ D  CÁC DÒNG CHÚ THÍCH  ĐĐƯƯ C B  QUA. ĐÂY LÀ TU  CH N DEFAULT. C B  QUA. ĐÂY LÀ TU  CH N DEFAULT.

Ộ Ộ

Ợ Ợ

Ữ Ữ

Ắ Ắ

Ầ Ầ

Ằ Ằ

Ấ Ấ

.LALL (LIST ALL) TOÀN B  CÁC DÒNG TRONG  .LALL (LIST ALL) TOÀN B  CÁC DÒNG TRONG  MACRO ĐƯƯ C IN RA TR  NH NG CHÚ THÍCH B T  Ừ Ừ C IN RA TR  NH NG CHÚ THÍCH B T  MACRO Đ Đ U B NG 2 D U ;; Đ U B NG 2 D U ;;

CHUONG 9 MACRO CHUONG 9 MACRO

66

ỊĐ NH NGHĨA MACRO Đ NH NGHĨA MACRO

CÚ PHÁP KHAI BÁO MACRO :   CÚ PHÁP KHAI BÁO MACRO :

Ứ Ứ

Ố Ố   [ ] MACRO  [ ]

MACRO_NAME    MACRO MACRO_NAME STATEMENTS        STATEMENTS           ENDMENDM Ọ

Ố Ự Ố Ự

ỌG I MACRO :    G I MACRO :    [, ...]        MACRO_NAME  [, ...]        MACRO_NAME

Ố Ấ Ị Ứ Ụ Ỉ

Ọ Ố Ấ Ị

CHUONG 9 MACRO CHUONG 9 MACRO

77

THÔNG S  HÌNH TH C CH  CÓ TÁC D NG ĐÁNH D U V  TRÍ Ủ C A THÔNG S  TRONG MACRO. QUAN TR NG NH T LÀ V  TRÍ  CÁC THÔNG S .Ố

Ề Ề

Ố Ố

MACRO  TRUY N THAM S MACRO  TRUY N THAM S

.MODEL SMALL .MODEL SMALL .STACK 100H .STACK 100H PUTCHAR MACRO KT MOV DL,KT MOV AH,2 INT 21H

MOV AH,4CH MOV AH,4CH INT 21H INT 21H MAIN ENDP MAIN ENDP END MAIN END MAIN

ENDM .CODE .CODE MAIN PROC MAIN PROC MOV DL, ‘A’ MOV DL, ‘A’ PUTCHAR PUTCHAR MOV DL, ‘*” MOV DL, ‘*” PUTCHAR PUTCHAR

CHUONG 9 MACRO CHUONG 9 MACRO

88

Ế Ế

Ế Ế

SWAP  MACRO BI N1, BI N2 SWAP  MACRO BI N1, BI N2 MOV AX, BIEN1          MOV AX, BIEN1           XCHG AX, BIEN2          XCHG AX, BIEN2           MOV BIEN1, AX          MOV BIEN1, AX             ENDMENDM Ọ ỌG I :  SWAP   TRI1, TRI2    G I :  SWAP   TRI1, TRI2

CHUONG 9 MACRO CHUONG 9 MACRO

99

Ố Ủ Ố Ủ

Ổ Ổ

TRAO Đ I THAM S  C A MACRO TRAO Đ I THAM S  C A MACRO

Ố M T MACRO CÓ TH  CÓ THÔNG S  HO C KHÔNG CÓ THÔNG S .

MACRO CÓ THÔNG SỐ

Ử Ụ S  D NG MACRO

. CODE

.. ...

PUTCHAR   ‘A’

CHAR PUTCHAR  MACRO  CHAR PUTCHAR  MACRO   MOV AH, 2        MOV AH, 2         MOV DL, CHAR        MOV DL, CHAR         INT 21H        INT 21H         ENDMENDM

PUTCHAR   ‘B’

PUTCHAR   ‘C’

CHUONG 9 MACRO CHUONG 9 MACRO

1010

...

Ề Ố MACRO TRUY N THÔNG S

Thí dụ : macro @Printstr

Viết chương trình in 2 chuổi ‘Hello’ và ‘Hi”.

.DATA

Ta thấy đoạn 1 và đoạn 2 gần giống nhau  có thể tạo macro có tham số như sau :

;1 ;1 ;1 ;2 ;2 ;2

CHUONG 9 MACRO CHUONG 9 MACRO

1111

MSG1 DB ‘Hello’,13,10 MSG2 DB‘Hi’,13,10 .CODE ………. MOV DX, OFFSET MSG1 MOV AH,9 INT 21H MOV DX, OFFSET MSG2 MOV AH,9 INT 21H ……..

Ụ Ề Ụ Ề

THÍ D  V  MACRO THÍ D  V  MACRO

DISPLAY  MACRO  STRING DISPLAY  MACRO  STRING PUSH AX          PUSH AX           PUSH DX          PUSH DX           LEA DX, STRING   LEA DX, STRING MOV AH,9   MOV AH,9 INT 21H   INT 21H POP DX           POP DX            POP AX            POP AX             ENDM    ENDM

CHUONG 9 MACRO CHUONG 9 MACRO

1212

Ọ G I :  DISPLAY   CHUOI

Ố Ủ Ố Ủ

Ổ Ổ

TRAO Đ I THAM S  C A MACRO TRAO Đ I THAM S  C A MACRO

MACRO LOCATE : Đ NH V  CURSOR MÀN HÌNH

Ử Ụ S  D NG MACRO

Ử Ụ

Ạ TA CÓ CÁC D NG S  D NG  SAU :

LOCATE 10,20

LOCATE ROW, COL

LOCATE CH, CL

Ẽ Ụ

LOCATE MACRO  ROW, COLUMN LOCATE MACRO  ROW, COLUMN        PUSH AX PUSH AX         PUSH BX        PUSH BX         PUSH DX           PUSH DX         MOV BX, 0        MOV BX, 0         MOV AH, 2        MOV AH, 2         MOV DH, ROW        MOV DH, ROW         MOV DL, COLUMN        MOV DL, COLUMN         INT 10H        INT 10H                POP DX POP DX         POP BX        POP BX                POP AX POP AX         ENDMENDM

Ử Ụ

CHUONG 9 MACRO CHUONG 9 MACRO

1313

CHÚ Ý : KHÔNG DÙNG CÁC  THANH GHI AH,AL,BH,BL VÌ  Ộ Ớ S  Đ NG Đ  V I CÁC THANH  GHI ĐàS  D NG TRONG  MACRO

Ồ Ồ MACRO L NG NHAU MACRO L NG NHAU Ự

ƠN GI N Đ  XÂY D NG MACRO LÀ XÂY D NG 1

Ớ Ừ

M T CÁCH Đ MACRO M I T  MACRO ĐàCÓ.

Ị Ị

Ổ Ạ Ổ Ạ

Ạ Ộ Ạ Ộ

Ể Ể EX : HI N TH  1 CHU I T I 1 TO  Đ  CHO  EX : HI N TH  1 CHU I T I 1 TO  Đ  CHO  TRTRƯƯ C ỚC Ớ DISPLAY_AT  MACRO ROW, COL, STRING

LOCATE ROW, COL ;G i macro

ị đ nh v   cursor

DISPLAY STRING ; G i Macro xu t string

ENDM

M T MACRO CÓ TH  THAM CHI U Đ N CHÍNH NÓ,  NH NG MACRO NH

Ể Ư V Y G I LÀ MACRO Đ  QUI.

CHUONG 9 MACRO CHUONG 9 MACRO

1414

ỊĐ NH NGHĨA NHÃN BÊN TRONG MACRO Đ NH NGHĨA NHÃN BÊN TRONG MACRO

Ể TRONG MACRO CÓ TH  CÓ NHÃN.

Ọ Ề Ợ Ạ G I MACRO NHI U L N Ầ  NHI U NHÃN Đ Ề Ư C T O RA

Ả Ả Ề Ế Ề Ể  LÀM SAO GI I QUY T V N Đ  NH Y ĐI U KHI N? Ấ

Ả Ằ Ấ Ỉ Ị

Ế Ạ Ỡ Ứ Ấ

CÚ PHÁP :     LOCAL   LABEL_NAME

CHUONG 9 MACRO CHUONG 9 MACRO

1515

Ợ Ọ Ề ASSEMBLY GI I QUY T V N Đ  NÀY B NG CH  TH  LOCAL  CƯ NG B C MASM T O RA 1 TÊN DUY NH T CHO M I M T  Ỗ Ộ LABEL KHI MACRO ĐƯ C G I..

ữ đ nh  nghĩa  các  thành  ph n  d

ộ ố ệ

M t  s   Macro  yêu  c u  user  li u và các nhãn bên trong

đ nh nghĩa c a Macro.

ế ử ụ

ầ ữ ệ

ỗ ầ ử ụ   các  tên  gi ng  nhau  l p  l

ế

ộ ơn  1  l n  trong  cùng  m t  ề N u  s   d ng  Macro  này  nhi u  h ặ chương trình, trình ASM đ nh nghĩa thành ph n d  li u ho c  ặ ạ nhãn  cho  m i  l n  s   d ng  i    khi n cho ASM báo l

i.

ợ ạ

Đ  ể đ m b o tên nhãn ch   ị ỉ đư c t o ra 1 l n, ta dùng ch  th   ầ ể LOCAL ngay sau phát bi u Macro

ấ ế ế

ữ ố ế

ệ ề

ử ụ

t

đ  trong CT chính ta không s  d ng  ớ

ế

CHUONG 9 MACRO CHUONG 9 MACRO

1616

ẽ ế đư c ợ đ nh nghĩa là LOCAL nó s   Khi ASM th y 1 bi n  ằ thay th  bi n này b ng 1 ký hi u có d ng ??n, trong  đó n  là 1 s  có 4 ch  s . N u có nhi u nhãn có th  là ??0000, ?? 0001, ??0002 ... ề ế đi u này  ầ Ta c n bi các bi n hay nhãn

đư i cùng 1 d ng.

ụ ụ

ỉ ỉ

ị ị

ọ ọ Thí d  minh h a ch  th  Local Thí d  minh h a ch  th  Local

ầ ố

ụ xu tấ  count l n s  ký t

Xây d ng Macro REPEAT có nhi m v   char ra màn hình.

REPEAT  MACRO CHAR, COUNT

Ơ CH  Ế

LOCAL L1

MOV CX, COUNT

Ả Ử Ọ GI  S  G I :

L1: MOV AH,2

REPEAT ‘A’, 10

ASM S  DÙNG C Ố Ừ ĐÁNH S  CÁC NHÃN (T   Ể Ế 0000H Đ N FFFFH) Đ   Ấ ĐÁNH D U CÁC NHÃN CÓ  CH  Đ NH LOCAL.

MOV DL, CHAR

REPEAT ‘*’, 20

INT 21H

LOOP L1

ENDM

Ợ Ị S  ĐẼ Ư C D CH RA

CHUONG 9 MACRO CHUONG 9 MACRO

1717

ụ ụ

ỉ ỉ

ị ọ ọ ị Thí d  minh h a ch  th   Thí d  minh h a ch  th   Local Local

MOV CX, 10

??0000 : MOV AH,2

MOV DL, ‘A’

INT 21H

G

0

LOOP ??0000

S

0

G I

A

MOV CX, 20

E

P

E

I : Ọ T  ‘ A ’,  1 T  ‘ * ’,  2

R

A

E

P

??0001 : MOV AH,2

E

R

MOV DL, ‘*’

INT 21H

LOOP ??0001

CHUONG 9 MACRO CHUONG 9 MACRO

1818

ụ ụ

t 1 macro

l n h

vào

ọ Thí d  minh h a ọ Thí d  minh h a ừ ớ ơn trong 2 t đưa t ế Vi AX

GETMAX   MACRO   WORD1, WORD2

LOCAL  EXIT

Ả Ử

MOV AX, WORD1

Ế GI  S  FIRST,SECOND, THIRD LÀ  CÁC BI N WORD.

CMP AX, WORD2

Ư C Ợ

JG EXIT

Ự Ở Ộ S  THAM CHI U MACRO Đ M  R NG NH Ế Ư SAU :

MOV AX, FIRST

MOV AX, WORD2

CMP AX, SECOND

EXIT :

JG ??0000

ENDM

MOV AX, SECOND

CHUONG 9 MACRO CHUONG 9 MACRO

1919

??0000:

ụ ụ

ọ Thí d  minh h a ọ Thí d  minh h a

ế

Vi

t 1 macro

đưa t

ừ ớ ơn trong 2 vào AX

l n h

Ờ Ọ

L I G I MACRO TI P THEO :

Ế Ự

GETMAX  SECOND, THIRD

Ế Ị

Ở Ộ

ĐƯ C M  R NG NH

Ư SAU :

MOV AX, SECOND

CMP AX, THIRD

JG  ??0001

??0001 :

CHUONG 9 MACRO CHUONG 9 MACRO

2020

Ế S  THAM CHI U LIÊN TI P  MACRO NÀY HAY Đ N MACRO  KHÁC KHI N TRÌNH BIÊN D CH  CHÈN CÁC NHÃN ??0002, ??0003  VÀ  ƯƠNG  Ư V Y TRONG CH C  NHỨ TRÌNH CÁC NHÃN NÀY LÀ DUY  NH T.  Ấ

THTHƯƯ VI N MACRO Ệ VI N MACRO

Ể Ặ Ở FILE

Ể Ạ Ệ CÁC MACRO MÀ CHƯƠNG TRÌNH THAM CHI U CÓ TH  Đ T  RIÊNG  TA CÓ TH  T O 1 FILE TH Ế Ư VI N CÁC MACRO.

Ạ Ả Ể DÙNG 1 EDITOR Đ  SO N TH O MACRO

Ữ LƯU TR  TÊN FILE MACRO.LIB

Ế Ế Ỉ ị KHI C N THAM CHI U Đ N MACRO TA DÙNG CH  TH  INCLUDE

Ầ TÊN FILE THƯ VI NỆ

Ộ Ủ Ạ

CHUONG 9 MACRO CHUONG 9 MACRO

2121

Ệ Ọ Ụ M T CÔNG D NG QUAN TR NG C A MACRO LÀ T O RA Ớ CÁC L NH M I.

Ữ Ữ

Ờ Ờ

Ị Ị

Ủ Ủ SO SÁNH GI A MACRO & TH   SO SÁNH GI A MACRO & TH   T CỤT CỤ Ị Ị TH I GIAN BIÊN D CH. TH I GIAN BIÊN D CH. Ờ Ố Ờ Ố MACRO ÍT T N TH I GIAN BIÊN D CH  MACRO ÍT T N TH I GIAN BIÊN D CH  HHƠƠN PROCEDURE N PROCEDURE

Ự Ự

Ờ Ờ

Ệ Ệ

Ờ Ờ

Ố Ố

Ạ Ạ Ố Ộ Ố Ộ

Ợ Ợ

ƠƠN N  TH I  GIAN  TH C  HI N  :  NHANH  H    TH I  GIAN  TH C  HI N  :  NHANH  H PROCEDURE  VÌ  KHÔNG  T N  TH I  GIAN  PROCEDURE  VÌ  KHÔNG  T N  TH I  GIAN  Ụ Ụ KHÔI PH C TR NG THÁI THÔNG TIN KHI  KHÔI PH C TR NG THÁI THÔNG TIN KHI  Ọ   T C Đ  NHANH H ĐĐƯƯ C G I  ỌC G I   T C Đ  NHANH H

ƠƠN. N.

Ớ KÍCH  THƯƯ C  :  KÍCH  TH ỚC  :  KÍCH  TH    KÍCH  TH

Ớ ƯƯ C  CT  DÀI  ỚC  CT  DÀI

HHƠƠN N

CHUONG 9 MACRO CHUONG 9 MACRO

2222

Ệ Ệ

Ặ Ặ

CÁC L NH L P TRONG    CÁC L NH L P TRONG  MACRO MACRO

Ứ Ứ

Ể Ể REP  :   REP  :      ......       ENDM        ENDM

Ố Ệ Ố Ệ

Ụ Ụ

Ặ Ạ Ặ Ạ Ể Ể

Ứ Ứ

TÁC D NG : L P L I CÁC KH I L NH TRONG MACRO  TÁC D NG : L P L I CÁC KH I L NH TRONG MACRO  Ớ Ố Ầ Ớ Ố Ầ V I S  L N LÀ  V I S  L N LÀ 

EX : MSHL MACRO OPER, BITS Ọ G I  MSHL BX, 3

REPT BITS Ế Ằ Ợ S  ĐẼ Ư C THAY TH  B NG :

SHL DEST, 1 SHL BX, 1

ENDM SHL BX, 1

CHUONG 9 MACRO CHUONG 9 MACRO

2323

ENDM SHL BX, 1

Ệ Ệ

Ặ Ặ

CÁC L NH L P TRONG    CÁC L NH L P TRONG  MACRO MACRO

Ặ Ặ Ọ Ọ Ố Ố Ị Ị

IRP  :   IRP  :       ......              ENDMENDM

Ố Ệ Ố Ệ

Ố Ị Ố Ị

Ặ Ặ

Ặ Ạ Ẽ Ặ Ạ Ẽ

Ị Ị

Ợ Ấ Ợ Ấ

Ẽ Ầ Ẽ Ầ

Ế Ế

Ị Ị

Ụ Ụ   TÁC D NG :  TÁC D NG :    L P L I KH I L NH TÙY THEO DANH SÁCH TR . Ị Ặ Ạ Ị Ặ Ạ L P L I KH I L NH TÙY THEO DANH SÁCH TR .   S  L N L P CHÍNH LÀ S  TR  TRONG DANH SÁCH Ố Ầ Ố Ầ S  L N L P CHÍNH LÀ S  TR  TRONG DANH SÁCH   M I L N L P L I S  THAY  B NG 1 TR  TRONG  Ố Ằ Ỗ Ầ Ố Ằ Ỗ Ầ M I L N L P L I S  THAY  B NG 1 TR  TRONG  ƯƯ T L Y H T CÁC TR  TRONG DANH  T L Y H T CÁC TR  TRONG DANH  DANH SÁCH VÀ S  L N L DANH SÁCH VÀ S  L N L SÁCH. SÁCH.

EX : PROCTABLE  LABEL  WORD

IRP PROCNAME, 

DW  PROCNAME

CHUONG 9 MACRO CHUONG 9 MACRO

2424

ENDM

Ệ Ệ

Ặ Ặ

CÁC L NH L P TRONG    CÁC L NH L P TRONG  MACRO MACRO

ƠƠN LÀ  N LÀ

Ờ TUY NHIÊN CÁCH KHAI BÁO NÀY RƯƯ M RÀ H ỜM RÀ H   TUY NHIÊN CÁCH KHAI BÁO NÀY R DÙNG : DÙNG :   PROCTABLE  DW  MOVUP,  PROCTABLE  DW  MOVUP,  MOVDOWN,MOVLEFT,MOVRIGHT MOVDOWN,MOVLEFT,MOVRIGHT

Ệ Ử Ụ

 VI C S  D NG CÁC MACRO L P VÒNG NÀY CHO CÓ HI U  Ệ QU  LÀ ĐI U KHÓ, ĐÒI H I PH I CÓ NHI U KINH NGHI M

CHUONG 9 MACRO CHUONG 9 MACRO

2525

BÀI TẬP MACRO BÀI TẬP MACRO

ế ộ ủ t m t MACRO tính USCLN c a 2

ế ố ư

ố ị

Bài 1 :  1. Vi ậ ố bi n s  M và N. Thu t t n USCLN nh  sau :                             WHILE   N <> 0 DO                                   M = M MOD N                                  H n v   M và N                             END_WHILE

CHUONG 9 MACRO CHUONG 9 MACRO

2626

Bài 2 : MACRO doi tu so chua trong ax sang  chuoi tro  den boi DI ;   in :  DI =offset  chuoi ;          AX =so can doi ;   out: khong co(chuoi van do di tro toi)

ế Bài 3 :Vi t macro  chuyen tu chuoi thanh so chua trong ax

;  in                 : DI =offset chuoi ;  out            : AX =so da  doi

ứ ế t MACRO xu t s  hecxa ch a trong AL ra màn hình                            *

ứ ố ầ ấ ấ ố Bài 4 : Vi ; INPUT : AL ch a s  c n xu t; OUTPUT: nothing

ứ ạ ế ố t Macro in s  hecxa ch a trong BL ra d ng binary

ứ ố ầ

CHUONG 9 MACRO CHUONG 9 MACRO

2727

Bài 5 : Vi ;Input: BL ch a s  c n in ;Output: Nothing