Sunday 1 December 2013

Cookbook of Assembly

1. Kita akan modifikasi register berikut ini: AX, DS, CS, IP  menggunakan perintah register, assemble, dump, enter, trace command.

register: to display the content of our CPU register
assemble: to entering code to our code segment
dump: to display the content of our data segment
enter: to fill/change the content of our data segment
trace: to execute a code one at a time.




2. Semua angka yang dimasukkan kedalam debugger adalah hexadecimal.

3. Segment register = DS, ES, SS, CS

DS= data segment
ES = extra segment
SS =
CS = Code segment (place of code)

Flags: NV, VP, EI, PL, NZ, NA, PO, NC


Langkah 1: melihat isi register untuk pertama kali
How?
-r
What you see?
AX, BX, CX, DX, ......
AX= Acummulator register (Arithmetic and logic)
DX = Data register (DH + DL)

Int 21: print character to screen
Int 20: terminate program

-h
contoh: 
-n name

Langkah 2: mengisi register AX dengan nilai 1234
How?
- r ax
:1234

Langkah 3: Melihat (dump) isi register DS (untuk pertama kali)
How?
-d ds:0000
ds:0000
0B3C:0000

What you see?
Isi dari memory dari 0B3C:0000 sampai 0B3C:0070 dan printable ASCII character-nya
. --> unprintable ASCII character

Langkah 4: Memasukkan(enter)/mengubah data di data segment
How?
-e ds:0000


Langkah 5: Melihat kembali hasil perubahan yang tlah dilakukan
How?
-d ds:0000

Langkah 6: Put some code to the machine
How?
-a cs
Watch IP address (next instruction to be fetched)
so
-a cs:100
mov [0], ax

Langkah 7: trace
-t
what?
IP pointer from 0100 to 0103 is change


Langkah 8: Periksa isi konten register ds
-d ds:0000

What you see?
isi dari register ds:0000 berubah menjadi Langkah 4

Langkah 9: Assemble another code
- a cs:0000
mov ax, [0]

Langkah 10: Ubah register IP (Instruction Pointer)
-r IP



1. Ketik a
2. Setelah tanda - muncul, ketik baris berikut ini satu baris per satu baris:
mov ax,B800
mov ds,ax
mov byte[0F9E],24
int 20
3. Ketik return/enter dua kali, untuk keluar dari editor
4. Ketik g untuk menjalankan program

Keterangan:

Wednesday 27 November 2013



Calling sub procedure and function procedures

Bagaimana cara memanggil suatu sub procedure dari sub procedure yang lain?

Untuk memanggil suatu Sub procedure dari Sub procedure yang lain, ketik nama dari procedure yang kamu inginkan untuk dipanggil dan ikut sertakan argument-argumen yang dibutuhkan Sub procedure yang akan dipanggil itu.
Panggil namanya, sertakan argumen-argumen yang dibutuhkannya
Kamu bisa menggunakan Sub procedure untuk mengatur prosedur-prosedur yang lain supaya mudah dimengerti dan di-debug

Contoh dibawah ini, sub procedure Main memanggil sub procedure Multibeep, serta menyertakan value 56 sebagai argumennya. Setelah sub procedure Multibeep berjalan sampai selesai, pengendalian dikembalikan ke sub procedure Main, dan yang dilakukan sub procedure Main selanjutnya adalah memanggil Sub procedure Message, sub procedure Message bertugas menampilkan sebuah kotak pesan; ketika user menekan OK, pengendalian dikembalikan ke Main, dan Main selesai.

Sub Main()
    Multibeep 56
    Message
End sub

Sub Multibeep(numbeeps)
    For counter = 1 to numbeeps
        Beep
    Next counter
End sub

Sub Message()
    Msgbox "Time to take a break!"
End sub



Memanggil sub precedure yang memiliki lebih dari satu argumen

Pada dasarnya untuk memanggil sub procedure terdapat dua cara:
1. Menggunakan keyword Call
2. Tidak menggunakan keyword Call

Dengan menggunakan keyword call butuh parentheses atau tanda kurung.
Tidak menggunakan keyword call, tidak membutuhkan parentheses atau tanda kurung.

Sementara, untuk memasukkan lebih dari satu argument tambahkan tanda koma (argumen1 koma argumen2).

Dibawah ini adalah contoh bagaimana sub procedure housecalc dipanggil dari dalam sub procedure main.

Statement housecalc 99800, 43100 menyertakan 2 buah argumen dan tidak menggunakan keyword Call.

Statement  Call housecalc(380950, 49500) menyertakan 2 buah argumen dan menggunakan keyword Call dan mengapit kedua argumen itu didalam tanda kurung.


Sub main()
    housecalc 99800, 43100
    Call housecalc(380950, 49500)
End Sub

Sub housecalc(price As Single, wage As Single)
    If 2.5 * wage <= 0.8 * price Then
        MsgBox "You cannot afford this house"
    Else
        MsgBox "This house is affordable."
    End If
End Sub

Memanggil Prosedur Function

Dari tadi kita hanya membahas cara memanggil sub procedure. Dengan menggunakan keyword Call atau dengan tidak menggunakan keyword Call.

Bagaimana dengan cara memanggil prosedur function?

Untuk memanggil function dan memanfaatkan hasil return nya, assign function itu sebuah variabel, bungkus argumennya dengan tanda kurung.
Contoh statement:
Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")
     

Untuk memanggil function dan tidak memanfaatkan hasil return nya, tidak perlu assign function itu ke sebuah variabel dan tidak perlu bungkus argumennya dengan tanda kurung.
Contoh statement:
MsgBox "Task Completed!", 0, "Task Box"



Melepas named argument

Komponen Named argument terdiri dari: {nama argumen, tanda ( =: )dan nilai yang diberi}

Urutan named-named argument bebas siapa yang duluan. Pada Contoh 1 dan 2 dibawah ini named argumen Title yang lebih dulu dari named argumen Prompt.

Contoh 1:
msgbox Title=:"Task Box", Prompt :="Task completed!"
Contoh 2:
answer3 = msgbox(title :="Question3", _
prompt:="Are you happy with your salary?", buttons:=4)

Msgbox arguments


Calling sub procedure and function procedures

Bagaimana cara memanggil suatu sub procedure dari sub procedure yang lain?

Untuk memanggil suatu Sub procedure dari Sub procedure yang lain, ketik nama dari procedure yang kamu inginkan untuk dipanggil dan ikut sertakan argument-argumen yang dibutuhkan Sub procedure yang akan dipanggil itu.
Panggil namanya, sertakan argumen-argumen yang dibutuhkannya
Kamu bisa menggunakan Sub procedure untuk mengatur prosedur-prosedur yang lain supaya mudah dimengerti dan di-debug

Contoh dibawah ini, sub procedure Main memanggil sub procedure Multibeep, serta menyertakan value 56 sebagai argumennya. Setelah sub procedure Multibeep berjalan sampai selesai, pengendalian dikembalikan ke sub procedure Main, dan yang dilakukan sub procedure Main selanjutnya adalah memanggil Sub procedure Message, sub procedure Message bertugas menampilkan sebuah kotak pesan; ketika user menekan OK, pengendalian dikembalikan ke Main, dan Main selesai.

Sub Main()
    Multibeep 56
    Message
End sub

Sub Multibeep(numbeeps)
    For counter = 1 to numbeeps
        Beep
    Next counter
End sub

Sub Message()
    Msgbox "Time to take a break!"
End sub



Memanggil sub precedure yang memiliki lebih dari satu argumen

Pada dasarnya untuk memanggil sub procedure terdapat dua cara:
1. Menggunakan keyword Call
2. Tidak menggunakan keyword Call

Dengan menggunakan keyword call butuh parentheses atau tanda kurung.
Tidak menggunakan keyword call, tidak membutuhkan parentheses atau tanda kurung.

Sementara, untuk memasukkan lebih dari satu argument tambahkan tanda koma (argumen1 koma argumen2).

Dibawah ini adalah contoh bagaimana sub procedure housecalc dipanggil dari dalam sub procedure main.

Statement housecalc 99800, 43100 menyertakan 2 buah argumen dan tidak menggunakan keyword Call.

Statement  Call housecalc(380950, 49500) menyertakan 2 buah argumen dan menggunakan keyword Call dan mengapit kedua argumen itu didalam tanda kurung.


Sub main()
    housecalc 99800, 43100
    Call housecalc(380950, 49500)
End Sub

Sub housecalc(price As Single, wage As Single)
    If 2.5 * wage <= 0.8 * price Then
        MsgBox "You cannot afford this house"
    Else
        MsgBox "This house is affordable."
    End If
End Sub

Memanggil Prosedur Function

Dari tadi kita hanya membahas cara memanggil sub procedure. Dengan menggunakan keyword Call atau dengan tidak menggunakan keyword Call.

Bagaimana dengan cara memanggil prosedur function?

Untuk memanggil function dan memanfaatkan hasil return nya, assign function itu sebuah variabel, bungkus argumennya dengan tanda kurung.
Contoh statement:
Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")
     

Untuk memanggil function dan tidak memanfaatkan hasil return nya, tidak perlu assign function itu ke sebuah variabel dan tidak perlu bungkus argumennya dengan tanda kurung.
Contoh statement:
MsgBox "Task Completed!", 0, "Task Box"



Melepas named argument

Komponen Named argument terdiri dari: {nama argumen, tanda ( =: )dan nilai yang diberi}

Urutan named-named argument bebas siapa yang duluan. Pada Contoh 1 dan 2 dibawah ini named argumen Title yang lebih dulu dari named argumen Prompt.

Contoh 1:
msgbox Title=:"Task Box", Prompt :="Task completed!"
Contoh 2:
answer3 = msgbox(title :="Question3", _
prompt:="Are you happy with your salary?", buttons:=4)

Msgbox arguments

Tuesday 26 November 2013

COMPARE: REBOL, C, JAVASCRIPT, PYTHON, VBA

NOTES about below scripts:
1. Python's should be written in its CLI
2. REBOL's should be written in its CLI
3. JAVASCRIPT should be written in a windows 7 notepad, inside <script> and </script> tags
4. VBA should be written on Visual Basic Editor on Microsoft Excel
5. C should be written on .....

VARIABLE DECLARATION
On REBOL:
No need

On Python:
No need

On C:

On Javascript:


Conditional statement(IF)
: Make decision
General task:
- define the condition to be evaluated
- define one or more statements to run

Looping Statment / Control structures
: Repeat actions (for how long, until what)
 
FOR
On REBOL



On VBA
For  i = 0 to 10
    

USER DEFINED FUNCTION

 Via REBOL

>> cetak: func [kata][print kata]
>> cetak ("yoss....")
yoss...

*** Rebol tidak perlu mendefinisikan var printer atau kata terlebih dahulu***
***use func keyword***

Via Javascript

var printer: function(kata){
alert kata
}

Via PYTHON


>>> def cetak(kata):
    print kata
    return
>>> cetak('yuyu hakuso')
yuyu hakuso
>>> cetak('aloha')
aloha

*** Sama seperti REBOL, Python tidak perlu mendefinisikan variabel printer atau variabel kata terlebih dahulu***

Via VBA (Microsoft Excel)

Writing editor on  Visual Basic Editor (tekan ALT+F11):
1. Insert new module
2. Insert below code
Function cetak()
    cetak = "Aloha"
End Function


Monday 25 November 2013

Tombol HTML trus dikasih script

Cara membuat tombol html dan kasih script

<html>
<head>
</head>
<body>
<button onclick=greeting()>tombol</button>
<script>

var greeting = function () {
alert ('hello world!')
}

</script>
</body>

apa itu alert? cuma nampilan pop-up browser dengan tulisan hello world!
apa itu var greeting = function() ?


My work: Javascript trial and error

Watch how the code grows.
All codes are executable (error free)


<html>
<head> <title> Hello </title> </head>
<body>
<script>

var name = ['Totardo', 'Andriani', 'Jonathan']

var greeting = function (person)
{
return 'Halo untuk kamu dari ' + person
}

alert (greeting(name[0]))

</script>
</body>

</html>



<html>
<head> <title> Hello </title> </head>
<body>
<script>

var name = ['Totardo', 'Andriani', 'Jonathan']

var greeting = function (person)
{
return 'Halo untuk kamu dari ' + person
}

for (var i = 0; i < name.length; i ++)
{
alert (greeting(name[i]))
}

</script>
</body>

</html>

Notice that:  alert (greeting(name[0])) changed to alert (greeting(name[i]))


Welcome network security guy

Your tools is : extended access-list
Your job is:
- watch newly born network application
- block bad guy