Anda di halaman 1dari 9

Mata Kuliah : Bahasa Rakitan Materi ke- 5

Program Bahasa Rakitan Tanpa DEBUG.COM

Konsep Assembler/Linker
Assembler File.asm File.obj Linker File.exe

Microsoft Macro Assembler Turbo Assembler

File.com

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
2

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 :
1.

BIOS Interrupt, yaitu interrupt yang disediakan oleh BIOS.


Yang termasuk dalam interrupt ini adalah INT 0H s/d INT 1FH

2.

DOS Interrupt, yaitu interrupt yang disediakan oleh DOS.


Yang termasuk dalam interrupt ini adalah INT di atas 1FH

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:

Macro

Pemanggilannya akan menuju alamat dimana procedur berada. Dengandemikian program dalam procedure hanya muncul satukali, yaitu hanya dalam procedure-nya saja 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


CETAK 1 MACRO MOV AH,02 MOV DL,30H INT 21H ENDM CETAK2 MACRO MOV AH,02 MOV DL,31H INT 21H ENDM CODE_SEG SEGMENT ASSUME CS:CODE_SEG ORG 100H START : CETAK1 CETAK1 MOV AH,02 MOV DL,41H INT 21H CETAK2 CETAK2 INT 20H CODE_SEG ENDS END START

(cont.)

Contoh Macro dng Turbo Assembler 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 CALL CETAK2 INT 20H CETAK1 PROC NEAR MOV AH,02 MOV DL,30H INT 21H RET CETAK1 ENDP CETAK2 PROC NEAR MOV AH,02 MOV DL,31H INT 21H RET CETAK2 ENDP CODE_SEG ENDS END START

Procedure dan Macro


Contoh Macro dng Debug
MOV AH,02 MOV DL,30 INT 21 MOV AH,02 MOV DL,30 INT 21 MOV AH,02 MOV DL,41 INT 21 MOV AH,02 MOV DL,31 INT 21 MOV AH,02 MOV DL,31 INT 21 INT20

(cont.)

Contoh Procedure dng Debug


CALL * CALL * MOV AH,02 MOV DL,41 INT21 CALL ** CALL ** INT20 * * MOV AH,02 MOV DL,30 INT21 RET ** ** MOV AH,02 MOV DL,31 INT21 RET