Program Bahasa Rakitan
Tanpa DEBUG.COM
2
Konsep Assembler/Linker
File.asm
File.obj
File.exe
File.com
Assembler
Linker
• 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
Microsoft Macro Assembler
3
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
4
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.
5
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]
……
6
Procedure dan Macro
(cont.)
Format Macro :
[LABEL] MACRO
…..
ENDM
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG
ORG 100H
7
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
8
Procedure dan Macro
(cont.)
Contoh
Macro
dng
Turbo Assembler
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
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
9
Procedure dan Macro
(cont.)
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
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