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

Cấu trúc máy tính và lập trình Assembly : MACRO part 3

Chia sẻ: Alfhau Sdjfka | Ngày: | Loại File: PDF | Số trang:7

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

Một số Macro yêu cầu user định nghĩa các thành phần dữ liệu và các nhãn bên trong định nghĩa của Macro. Nếu sử dụng Macro này nhiều hơn 1 lần trong cùng một 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  các tên giống nhau lặp lạ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 Khi ASM thấy 1 biến được định nghĩa là LOCAL...

Chủ đề:
Lưu

Nội dung Text: Cấu trúc máy tính và lập trình Assembly : MACRO part 3

  1. ÑÒNH NGHÓA NHAÕN BEÂN TRONG MACRO TRONG MACRO COÙ THEÅ COÙ NHAÕN. GOÏI MACRO NHIEÀU LAÀN  NHIEÀU NHAÕN ÑÖÔÏC TAÏO RA  LAØM SAO GIAÛI QUYEÁT VAÁN ÑEÀ NHAÛY ÑIEÀU KHIEÅN? ASSEMBLY GIAÛI QUYEÁT VAÁN ÑEÀ NAØY BAÈNG CHÆ THÒ LOCAL CÖÔÕNG BÖÙC MASM TAÏO RA 1 TEÂN DUY NHAÁT CHO MOÃI MOÄT LABEL KHI MACRO ÑÖÔÏC GOÏI.. CUÙ PHAÙP : LOCAL LABEL_NAME CHUONG CHUONG 9 MACRO 15
  2. Moät soá Macro yeâu caàu user ñònh nghóa caùc thaønh phaàn döõ lieäu vaø caùc nhaõn beân trong ñònh nghóa cuûa Macro. Neáu söû duïng Macro naøy nhieàu hôn 1 laàn trong cuøng moät chöông trình, trình ASM ñònh nghóa thaønh phaàn döõ lieäu hoaëc nhaõn cho moãi laàn söû duïng  caùc teân gioáng nhau laëp laïi khieán cho ASM baùo loãi. Ñeå ñaûm baûo teân nhaõn chæ ñöôïc taïo ra 1 laàn, ta duøng chæ thò LOCAL ngay sau phaùt bieåu Macro Khi ASM thaáy 1 bieán ñöôïc ñònh nghóa laø LOCAL noù seõ thay theá bieán naøy baèng 1 kyù hieäu coù daïng ??n, trong ñoù n laø 1 soá coù 4 chöõ soá. Neáu coù nhieàu nhaõn coù theå laø ??0000, ??0001, ??0002 ... Ta caàn bieát ñieàu naøy ñeå trong CT chính ta khoâng söû duïng caùc bieán hay nhaõn ñöôùi cuøng 1 daïng. CHUONG CHUONG 9 MACRO 16
  3. Thí duï minh hoïa chæ thò Local Xaây döïng Macro REPEAT coù nhieäm vuï xuaát count laàn soá kyù töï char ra maøn hình. REPEAT MACRO CHAR, COUNT LOCAL L1 ASM SEÕ DUØNG CÔ CHEÁ ÑAÙNH SOÁ CAÙC NHAÕN (TÖØ MOV CX, COUNT GIAÛ SÖÛ GOÏI : 0000H ÑEÁN FFFFH) ÑEÅ L1: MOV AH,2 ÑAÙNH DAÁU CAÙC NHAÕN COÙ REPEAT ‘A’, 10 CHÆ ÑÒNH LOCAL. MOV DL, CHAR REPEAT ‘*’, 20 INT 21H LOOP L1 ENDM SEÕ ÑÖÔÏC DÒCH RA  CHUONG CHUONG 9 MACRO 17
  4. Thí Thí duï minh hoïa chæ thò Local Local MOV CX, 10 ??0000 : MOV AH,2 MOV DL, ‘A’ INT 21H LOOP ??0000 MOV CX, 20 ??0001 : MOV AH,2 MOV DL, ‘*’ INT 21H LOOP ??0001 CHUONG CHUONG 9 MACRO 18
  5. Thí duï minh hoïa Vieát 1 macro ñöa töø lôùn hôn trong 2 töø vaøo AX GETMAX MACRO WORD1, WORD2 GIAÛ SÖÛ FIRST,SECOND, THIRD LAØ LOCAL EXIT CAÙC BIEÁN WORD. MOV AX, WORD1 SÖÏ THAM CHIEÁU MACRO ÑÖÔÏC MÔÛ ROÄNG NHÖ SAU : CMP AX, WORD2 MOV AX, FIRST JG EXIT CMP AX, SECOND MOV AX, WORD2 JG ??0000 EXIT : MOV AX, SECOND ENDM ??0000: CHUONG CHUONG 9 MACRO 19
  6. Thí duï minh hoïa Vieát 1 macro ñöa töø lôùn hôn trong 2 vaøo AX LÔØI GOÏI MACRO TIEÁP THEO : SÖÏ THAM CHIEÁU LIEÂN TIEÁP MACRO NAØY HAY ÑEÁN MACRO GETMAX SECOND, THIRD KHAÙC KHIEÁN TRÌNH BIEÂN DÒCH CHEØN CAÙC NHAÕN ??0002, ??0003 VAØ ÑÖÔÏC MÔÛ ROÄNG NHÖ SAU : CÖÙ NHÖ VAÄY TRONG CHÖÔNG MOV AX, SECOND TRÌNH CAÙC NHAÕN NAØY LAØ DUY NHAÁT. CMP AX, THIRD JG ??0001 ??0001 : CHUONG CHUONG 9 MACRO 20
  7. THÖ VIEÄN MACRO CAÙC MACRO MAØ CHÖÔNG TRÌNH THAM CHIEÁU COÙ THEÅ ÑAËT ÔÛ FILE RIEÂNG  TA COÙ THEÅ TAÏO 1 FILE THÖ VIEÄN CAÙC MACRO. DUØNG 1 EDITOR ÑEÅ SOAÏN THAÛO MACRO LÖU TRÖÕ TEÂN FILE MACRO.LIB KHI CAÀN THAM CHIEÁU ÑEÁN MACRO TA DUØNG CHÆ THò INCLUDE TEÂN FILE THÖ VIEÄN MOÄT COÂNG DUÏNG QUAN TROÏNG CUÛA MACRO LAØ TAÏO RA CAÙC LEÄNH MÔÙI. CHUONG CHUONG 9 MACRO 21
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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