Sabtu, 06 Desember 2014

praktek19

cls MACRO
MOV ax,0600h
XOR cx,cx
MOV dx,184Fh
MOV bh,10
INT 10h
ENDM
goto XY MACRO X,Y
MOV ah,02
XOR bx,bx
MOV dh,Y
MOV dl,X
INT 10h
ENDM
SimpanL MACRO
local ulang
MOV ax,0B800h
MOV es,ax
MOV cx,4000
XOR bx,bx
ulang:
MOV al,es:[bx]
MOV layar[bx],al
INC bx
LOOP ulang
ENDM
BalikL MACRO
local ulang
MOV cx,4000
XOR bx,bx
ulang:
MOV al,layar[bx]
MOV es:[bx],al
INC bx
LOOP ulang
ENDM
Sorot MACRO X,Y
local ulang
MOV bl,Y
MOV al,160
MUL bl
MOV bx,ax
MOV al,X
MOV ah,2
MUL ah
ADD bx,ax
INC bx
MOV cx,25
ulang:
MOV Byte PTR es:[bx],4Fh
ADD bx,2
LOOP ulang
ENDM
readkey MACRO
MOV ah,00
INT 16h
ENDM
menuL MACRO string
MOV ah,09
LEA dx,string
INT 21h
ENDM
.model small
.code
org 100h
Tdata: JMP proses
layar db 4000 DUP (?)
menu db 9,9,'+=======================================+',13,10
db 9,9,': """ FAKULTAS Di STMIK CIKARANG """ :',13,10
db 9,9,': :',13,10
db 9,9,': TEKNIK INFORMATIKA [S1] :',13,10
db 9,9,': SISTEM INFORMATIKA [S1] :',13,10
db 9,9,': MANAJEMEN INFORMATIKA [D3] :',13,10
db 9,9,': AKUNTANSI KOMPUTER [D3] :',13,10
db 9,9,': :',13,10
db 9,9,'+==========================================+$'
posX db 22
posY db 12
Panah_Atas EQU 72
Panah_Bawah EQU 80
TEnter EQU 0Dh
proses:
cls
gotoXY 0 8
MenuL Menu
SimpanL
ulang:
BalikL
Sorot posX,PosY
masukan:
readkey
CMP ah,Panah_Bawah
JE bawah
CMP ah,Panah_Atas
JE CekY
CMP al,TEnter
JNE  masukan
JMP selesai
cekY:
CMP PosY,12
JE MaxY
DEC PosY
JMP ulang
maxY:
MOV PosY,15
JMP ulang
Bawah :
CMP PosY,15
JE NolY
INC PosY,12
JMP ulang
NolY:
MOV PosY,12
JMP ulang
selesai:
INT 20h

end Tdata


Jumat, 05 Desember 2014

TUGAS ASSEMBLER 3 PRAK18

tulis_Kar MACRO X,Y,Kar,Attr
MOV AX,0B800h
MOV ES,AX ; ES Menunjuk pada segment layar
MOV AH,Y
MOV AL,160
MUL AH ; Hitung offset baris
MOV BX,AX ; Simpan hasilnya pada BX
MOV AH,X
MOV AL,2
MUL AH ; Hitung offset kolom
ADD BX,AX ; Tambahkan hasilnya pada BX
MOV AL,Kar ; AL=karakter yang akan ditampilkan
MOV AH,Attr ; AH=Atribut yang akan ditampilkan
MOV ES:[BX],AL ; Tampilkan Karakter dan atributnya
MOV ES:[BX+1],AH ; pada posisi kolom X dan baris Y
ENDM
;/===============================================\;
; Program : LAYAR1.ASM ;
; Author : S’to ;
; ;
; Fungsi : Menampilkan karakter dan atributnya ;
; dengan menuliskannya langsung pada ;
; memory layar ;
;\===============================================/;
.MODEL SMALL
.CODE
ORG 100h
Proses :
Tulis_Kar 40 12 'D' 95
Tulis_Kar 41 12 'I' 95
Tulis_Kar 42 12 'R' 95
Tulis_Kar 43 12 'M' 95
Tulis_Kar 44 12 'A' 95
Tulis_Kar 45 12 'N' 95
Tulis_Kar 46 12 ' ' 95
Tulis_kar 47 12 '1' 95
Tulis_Kar 48 12 '2' 95
Tulis_Kar 49 12 '4' 95
Tulis_Kar 50 12 '2' 95
Tulis_Kar 51 12 '9' 95
Tulis_Kar 52 12 '0' 95
Tulis_Kar 53 12 '4' 95
Tulis_Kar 54 12 '6' 95
; Tulis karakter 'S' dengan
; no atribut 95 pada posisi
INT 20h ; kolom 40 dan baris 12
END Proses

HASIL PROSES RUN

Selasa, 02 Desember 2014

tugas praktikum xii

.MODEL SMALL  = tanda directive ini digunakan untuk memberi tahu assembler tentang memori yang digunakan

.CODE         =
ORG 100h =tanda directive ini digunakan untuk memberi tahu assembler untuk mengosongkan memory sebanyak 100h

TData : JMP Proses = LOMPAT KE Proses

Kal DB 07,'LANG LING LUNG $'

Ganti DB 13,10,'$' = tanda directive ini digunakan untuk memberi tahu assembler untuk melakukan perintah ganti baris atau enter

Stacks DW ?=digunakan untuk menyimpan nilai dari suatu register untuk sementara
Proses:

LEA DX,Kal  = dapatkan alamat efektive dari register DX

MOV Stacks,DX =  pindahkan stack pada register DX

MOV AH,09 = Servis cetak kalimat

INT 21h  = Cetak kalimat !

LEA DX,Ganti = dapatkan alamat efektive dari register DX pada perintah GANTI

INT 21h =Cetak kalimat !

MOV DX,Stacks = pindahkan register DX yang ada pada  stack

INT 21h  = Cetak kalimat !

LEA DX,Ganti
INT 21h
MOV DX,Stacks
INT 21h
LEA DX,Ganti
INT 21h
MOV DX,Stacks
INT 21h
LEA DX,Ganti
INT 21h
MOV DX,Stacks
INT 21h
LEA DX,Ganti
INT 21h
MOV DX,Stacks
INT 21h
LEA DX,Ganti
INT 21h
MOV DX,Stacks
INT 21h
Exit : INT 20h =kembali ke DOS
END TData