Program Bahasa Rakitan Tanpa DEBUG.COM Mata Kuliah : Bahasa Rakitan Materi ke- 5 Program Bahasa Rakitan Tanpa DEBUG.COM
Konsep Assembler/Linker File.asm File.obj File.exe File.com Assembler Linker Microsoft Macro Assembler Turbo Assembler Assembler menterjemahkan file program bahasa rakitan (.asm) ke bentuk file objek (.obj) Linker menterjemahkan file program objek ke bentuk program eksekusi (.com atau .exe) Contoh : TASM Latihan TLINK Latihan.asm Latihan.exe TLINK/T Latihan.asm Latihan.com
Struktur Program [nama segment]SEGMENT ASSUME CS:[SEGMENT] DS[SEGMENT] SS:[SEGMENT] ES:[SEGMENT] ORG 100H [LABEL] : - - Program ASM - [nama segment] ENDS END [label] Catt : [nama segment] : CODE_SEG [segment] : CODE_SEG [label] : START
INTERRUPT Perintah Interrupt akan memanggil subroutine yang sudah tersedia dalam memori komputer Ada dua jenis subroutine yang dapat dipanggil dengan perintah Interrrupt : BIOS Interrupt, yaitu interrupt yang disediakan oleh BIOS. Yang termasuk dalam interrupt ini adalah INT 0H s/d INT 1FH DOS Interrupt, yaitu interrupt yang disediakan oleh DOS. Yang termasuk dalam interrupt ini adalah INT di atas 1FH
Contoh Interupt Interupt 20h Interupt 21h Service 02h Fungsi : Terminate Menghentikan kerja suatu program Interupt 21h Service 02h Fungsi : Character Output On Screen Mencetak sebuah karakter di layar Input : AH = 02h ; DL = Kode ASCII Output : Karakter ASCII di layar
Procedure dan Macro Macro pada dasarnya tidak berbeda jauh dengan Procedure/Subroutine. Bedanya hanya pada pemakaian memori Format Procedure : CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : ….. CALL[LABEL] …. [LABEL] PROC [NEAR/FAR] …… ….. RET [LABEL] ENDP
Procedure dan Macro (cont.) Format Macro : [LABEL] MACRO ….. ENDM CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START :[LABEL]
Procedure dan Macro (cont.) Perbedaan Procedur dan Macro : Procedure: Pemanggilannya akan menuju alamat dimana procedur berada. Dengandemikian program dalam procedure hanya muncul satukali, yaitu hanya dalam procedure-nya saja Macro Pemanggilannya akan mengakibatkan penulisan kembali program macro sebagai engganti kata macro. Dengan demikianprogram dalam macro akan selalu muncul dan disisipkan disetiap pemanggilannya.
Procedure dan Macro (cont.) Contoh Macro dng Turbo Assembler CETAK 1 MACRO MOV AH,02 MOV DL,30H INT 21H ENDM CETAK2 MACRO MOV DL,31H CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : CETAK1 CETAK1 MOV DL,41H CETAK2 INT 20H CODE_SEG ENDS END START Contoh Procedure dng Turbo Assembler CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : CALL CETAK1 CALL CETAK1 MOV AH,02 MOV DL,41H INT 21H CALL CETAK2 INT 20H CETAK1 PROC NEAR MOV DL,30H RET CETAK1 ENDP CETAK2 PROC NEAR MOV DL,31H CETAK2 ENDP CODE_SEG ENDS END START
Procedure dan Macro (cont.) Contoh Macro dng Debug MOV AH,02 MOV DL,30 INT 21 MOV DL,41 MOV DL,31 INT20 Contoh Procedure dng Debug CALL * MOV AH,02 MOV DL,41 INT21 CALL ** INT20 * * MOV AH,02 MOV DL,30 RET ** ** MOV AH,02 MOV DL,31