Anda di halaman 1dari 4

Pindah macro baris,kolom

mov ah,02h
mov dh,baris
mov dl,kolom
mov bh,0
int 10h
endm

Ckal macro kalimat


mov ah,09h
lea dx,kalimat
int 21h
endm

Layar macro baris,kolom,kar,atr


mov ax,0b800h
mov es,ax

mov ah,160
mov al,baris
mul ah
mov bx,ax

mov ah,2
mov al,kolom
mul ah
add bx,ax

mov al,kar
mov es:[bx],al
mov al,atr
mov es:[bx+1],al
endm

Nama macro namp


mov ah,0ah
lea dx,namp
int 21h
Endm

Pengguna macro guna


local ctknama
local akhir
lea bx, guna+2

Ctknama:cmp byte ptr [bx], 13


je akhir
mov ah, 02h
mov dl, [bx]
inc bx
int 21h

jmp ctknama
Akhir :
endm

.model small
.code
Org 100h

Data : jmp mulai


tunggu db 10,13,'loading ........$'
kal1 db 13,10,'username :$'
buf db 20,?,20 dup(?)
kal2 db 13,10,'masukkan username anda!$'
kal3 db 13,10,'enter first number :$'
kal4 db 13,10,'enter second number :$'
kal5 db 13,10,'enter the sentence :$'
buffer db 20,?,20 dup(?)
kal6 db 13,10,'----------------------------'
db 13,10,'1.pencetakan'
db 13,10,'2.aritmatika'
db 13,10,'3.operasi layar'
db 13,10,'4.exit'
db 13,10,'----------------------------'
db 13,10,'operasi yang ingin dilakukan :$'
kal7 db 13,10,'hasil = $'
kal8 db 13,10,'thank you.username anda =$'
kal9 db 13,10,'anda melakukan operasi layar'

Mulai : call bersih


pindah 10 38

ckal tunggu

call brslyr

call bersih
pindah 0 0

call user1

Proses: ckal kal6

mov ah,01h
int 21h

cmp al,'1'
je satu
cmp al,'2'
je dua
cmp al,'3'
je tiga
jne exit

Satu : call kalimat1


jmp tutup
Dua : call kali
jmp tutup
Tiga : jmp mulai
ckal kal9
jmp tutup
Tutup: ckal kal8
pengguna buf
jmp exit

Exit : int 20h

Kali proc near


ckal kal3

mov ah,01h
int 21h
sub al,'0'
mov bl,al

ckal kal4

mov ah,01h
int 21h

sub al,'0'
mul bl
mov bx,ax

ckal kal7

xor ax,ax
mov ax,bx
mov bx,10
xor cx,cx

Ulang: xor dx,dx


div bx
push dx
inc cx
cmp ax,0
jne ulang

Ctak : pop dx
add dl,'0'
mov ah,02h
int 21h
loop ctak
ret
Kali endp

Kalimat1 proc near


ckal kal5
nama buffer

ckal kal7
lea bx,buffer+2

Cetak: cmp byte ptr[bx],13


je akhir
mov ah,02h
mov dl,[bx]
inc bx
int 21h
jmp cetak
Akhir : ret
Kalimat1 endp

Brslyr proc near


mov cx,40
mov dh,0
Ulangx: call tunda
layar 22 dh ' ' 01111000b
add dh,2
loop ulangx
ret
Brslyr endp

Bersih proc near


mov ah,7
mov al,25
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,00001111b
int 10h
ret
Bersih endp

Tunda proc near


push cx
push bx
mov cx,0
Ulang1: mov bx,3000
Ulang2: dec bx
jnz ulang2
loop ulang1
pop bx
pop cx
ret
Tunda endp
User1 proc near
Tanya : ckal kal1
nama buf

xor cx,cx

lea bx,buf+2

Periksa:cmp byte ptr [bx], 13


je periksa2
inc bx
inc cx
jmp periksa

Periksa2:cmp cx,0
je ctk
jmp akhir1
Ctk: ckal kal2
jmp tanya

Akhir1 : ret
User1 endp

End data

Anda mungkin juga menyukai