Rakitan-5.ppt 64KB Jun 23 2011 07:19:50 AM
Mata Kuliah : Bahasa Rakitan
Materi ke- 5
Program Bahasa Rakitan
Tanpa DEBUG.COM
Konsep Assembler/Linker
Assembler
File.asm
File.obj
Microsoft Macro Assembler
Turbo Assembler
Linker
File.exe
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
3
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
4
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
5
Procedure dan Macro
(cont.)
Format Macro :
[LABEL] MACRO
…..
ENDM
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG
ORG 100H
START :[LABEL]
…..
6
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.
7
Procedure dan Macro
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
(cont.)
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
8
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
9
Materi ke- 5
Program Bahasa Rakitan
Tanpa DEBUG.COM
Konsep Assembler/Linker
Assembler
File.asm
File.obj
Microsoft Macro Assembler
Turbo Assembler
Linker
File.exe
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
3
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
4
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
5
Procedure dan Macro
(cont.)
Format Macro :
[LABEL] MACRO
…..
ENDM
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG
ORG 100H
START :[LABEL]
…..
6
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.
7
Procedure dan Macro
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
(cont.)
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
8
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
9