Rabu, 16 Februari 2011

Prediksi 10 Binatang Yang Akan Punah

1. Badak Sumatra
Spoiler for badak sumatra:
Badak Sumatra (Dicerorhinus sumatrensis) adalah badak berukuran paling kecil di antara semua spesies badak di dunia. Badak kebanggaan Indonesia yang hidup di pulau Sumatera ini dinyatakan terancam punah karena saat ini hanya tersisa sekitar enam populasi di alam liar atau tinggal 300 ekor saja. Faktor utama berkurangnya jumlah badak ini adalah perburuan liar. Di pasar gelap, cula badak ini dihargai 30.000 dolar AS atau setara dengan Rp 300 juta per kilogram. Selain itu, tingkat keberhasilan pengembangbiakan badak yang sangat kecil turut menuntun hewan ini menuju kepunahan.

2. Paus Abu-Abu
Spoiler for paus abu-abu:
Lembaga International Union for Conservation of Nature (IUCN) menyatakan pada 2008 bahwa jumlah paus abu-abu (Esrichtiius robustus) berada dalam level aman. Namun, itu hanyalah paus abu-abu yang hidup di sejumlah tempat konservasi, bukan di alam liar. Sejak tahun 1947 pada masa-masa perburuan paus abu-abu, jumlah hewan berbobot 30 ton itu terus berkurang dan belum kembali normal hingga sekarang. Dari 100 paus abu-abu, kini hanya tersisa 23 betina yang masih mampu bereproduksi di wilayah perairan Pasifik Selatan.

3. Serigala Merah
Spoiler for serigala merah:
Anda pernah menonton film animasi Ice Age? Film ini menceritakan kehidupan unik sejumlah satwa pada zaman es, zaman dimana hampir seluruh permukaan bumi ditutupi es. Nah, percaya atau tidak, hewan bernama serigala merah (Canis lupus rufus) ini adalah salah satu hewan Ice Age yang masih hidup hingga kini. Para ilmuwan mengestimasi hanya ada 100 serigala merah di alam liar Carolina Utara, Amerika Serikat, dan sekitar 150 ekor di beberapa fasilitas penangkaran.

4. Harimau Siberia
Spoiler for harimau siberia:
Harimau Siberia atau disebut juga harimau amur (Panthera tigris altaica) adalah spesies harimau yang pernah tinggal di wilayah Cina, Semenanjung Korea, dan Mongolia. Namun, kini hewan tersebut hanya bisa bebas berkeliaran di Rusia, di wilayah perlindungan kawasan Amur-Ussuri. Sejumlah ahli meyakini masih terdapat 350 hingga 450 hewan ini di alam liar.

5. Musang Berkaki Hitam
Spoiler for luwak:
Akibat ulah manusia yang terus membabat alam liar tanpa henti, musang berkaki hitam (Mustela nigripes) hampir punah dari muka bumi. Hewan asli Amerika Utara ini kini dinyatakan sebagai mamalia paling terancam punah di kontinen AS. Hewan malam hari atau nokturnal ini memburu hewan pengerat, prairie dog sebagai makanan utama. Seiring menurunnya jumlah populasi hewan buruannya, jumlah musang berkaki hitam ini juga ikut berkurang.
6. Buaya Filipina
Spoiler for buaya filipina:
Sesuai namanya, buaya Filipina (Crocodylus mindorensis) adalah spesies buaya yang dilindungi di Filipina. Berdasarkan survei pada 1995, buaya bertubuh relatif kecil ini hanya tersisa 100 ekor di Filipina. Hal ini menjadikan buaya tersebut sebagai satu dari spesies hewan paling terancam di dunia.

7. Gorila Gunung
Spoiler for gorila gunung:
Sejak gorila gunung (Gorilla beringei beringei) ditemukan akhir 1902, jumlah populasi hewan ini terus berkurang akibat pembalakan liar, perburuan massal, dan perdagangan hewan ilegal. Saat ini, jumlah primata yang mampu hidup di daerah dingin maupun panas ini hanya ada 720 ekor yang tersebar di wilayah Uganda.

8. Hiu Gangga
Spoiler for hiu gangga:
Hiu penghuni Sungai Gangga di India bernama hiu gangga (Glyphis gangeticus) ini merupakan satu dari 20 daftar hiu terancam punah versi IUCN. Hiu yang memiliki reputasi sebagai pemakan manusia ini banyak diburu untuk diambil minyaknya. Selain itu, semakin tercemarnya Sungai Gangga menjadi faktor lain yang menyebabkan spesies ini kian sulit ditemukan.

9. Orangutan Sumatra
Spoiler for orang utan sumatra:
Satu lagi hewan terancam punah dari Tanah Air, Orangutan Sumatra (Pongo abelii). Primata langka bertubuh lebih kecil dari dua spesies orangutan yang lain ini adalah pemakan buah-buahan dan serangga. Seperti biasa, penyebab berkurangnya jumlah mereka adalah habitat yang hancur dan perburuan liar. Orangutan ini termasuk salah satu hewan yang memiliki kemampuan reproduksi rendah. Pongo abelli betina hanya mampu melahirkan tiga anak selama masa hidupnya.

10. Burung Kondor California
Spoiler for burung kondor:
Burung kondor California (Gymnogyps californianus) adalah burung pemakan bangkai asal California, AS, yang mempunyai masa hidup paling panjang dibanding burung lain, yaitu sekitar 50 tahun. Gara-gara perburuan liar dan berkurangnya habitat, burung langka ini hampir punah secara keseluruhan pada 1980. Namun berkat upaya konservasi dari berbagai ahli hewan, burung ini selamat. Kini, terdapat 332 Burung Kondor California di beberapa penangkaran, termasuk 152 ekor di alam liar

Minggu, 06 Februari 2011

CONTOH PROGRAM ASSEMBLY

Berikut contoh program dengan menggunakan assembly, semoga bermanfaat.

;=====Start Program=====

.MODEL SMALL
.CODE
org 100h

posisi macro baris,kolom
mov ah,02h
mov dh,baris
mov dl,kolom
mov bh,00h
int 10h
endm

cls proc near
mov ah,06h
mov cx,0000h
mov dh,24
mov dl,79
mov al,00
mov bh,1Ah
int 10h
jmp subp
POSISI 0,0
;ret
cls endp

awal: posisi 0,0
jmp proses
KAL0 DB ' << MASUKKAN PILIHAN MENU >> $'
KALZ DB 13,10,' *************************** $'
KALY DB 13,10, ' $'
KAL1 DB 13,10, '1. PENJUMLAHAN (BILANGAN KURANG DARI 10) $'
KAL2 DB 13,10, '2. INPUT KALIMAT $'
KAL3 DB 13,10, '3. CETAK STRING $'
KAL4 DB 13,10, '4. KELUAR $'
KAL5 DB 13,10, 'PILIHLAH APA YANG KAMU INGINKAN [1..4] : $'
KAL6 DB 13,10, 'Tekan (y/Y) untuk mengulang atau sembarang tombol untuk keluar!!$'

kata1 DB 13,10,'PENJUMLAHAN $'

kata2 DB 13,10,'INPUT KALIMAT $'

kata3 DB 13,10,'CETAK STRING $'

PROGRAM1: call P1

PROGRAM2: call P2

PROGRAM3: call P3

proses: call cls

SUBP:
mov ah,09h
mov dx,offset kal0
int 21h
mov ah,09h
mov dx,offset kalz
int 21h
mov ah,09h
mov dx,offset kalY
int 21h
mov ah,09h
mov dx,offset kal1
int 21h
mov ah,09h
mov dx,offset kal2
int 21h
mov ah,09h
mov dx,offset kal3
int 21h
mov ah,09h
mov dx,offset kal4
int 21h
mov ah,09h
mov dx,offset kal5
int 21h

MOV AH,01H
INT 21H
MOV DL,AL

cmp DL,'1'
JL AWAL

CMP DL,'4'
JG AWAL

CMP DL,'1'
JE PROGRAM1

CMP DL,'2'
JE PROGRAM2

CMP DL,'3'
JE PROGRAM3

CMP DL,'4'
JE EXIT


INT 20H

p1 proc near
mov ah,09h
mov dx,offset kata1
int 21h

A: jmp start

kalB db 13,10, 'masukkan bilangan pertama: $'
kalC db 13,10, 'masukkan bilangan kedua: $'
kalD db 13,10, 'total penjumlahan: $'

start:

mov ah,09h
lea dx,kalB
int 21h

mov ah,01h
int 21h
mov bh,al
;add bh,30h

mov ah,09h
lea dx,kalC
int 21h

mov ah,01h
int 21h
mov bl,al

mov ah,09h
lea dx,kalD
int 21h

add bh,bl

mov ah,02h
sub bh,30h
mov dl,bh
int 21h

jmp PERULANGAN
ret
p1 endp

p2 proc near
mov ah,09h
mov dx,offset kata2
int 21h


MULEI:
MOV CL,30H
JMP PROS
KALH DB 13,10,'Ketikkan satu kalimat:$'
KALI DB 13,10,'Kalimat yang diinput adalah:$'
KALJ DB 13,10,'Cetak dari belakang:$',13,10
KALK DB 13,10,'panjang string adalah:$'
KALX DB 13,10,'$'
KALL DB 13,10,'Jumlah Huruf Vokal:$'
KALM DB 13,10,'Jumlah Huruf Konsonan:$'
KATA DB 10,?,10 DUP (?)


VOKAL: INC CL
JMP PLUS


PROS:
;============= CETAK STRING ================

MOV AH,09H
MOV DX,OFFSET KALH
INT 21H


;============= INPUT STRING ================

MOV AH,0AH
LEA DX,KATA
INT 21H

;============= CETAK STRING ================

MOV AH,09H
MOV DX,OFFSET KALI
INT 21H

;============ CETAK VARIABEL STRING DG MODEL COMPARASI ==========

MOV BX,OFFSET KATA+2


CET:
MOV DL,[BX]
CMP DL,0DH
JE BELAKANG

MOV AH,02H
INT 21H

CMP DL,'a'
JE VOKAL
CMP DL,'i'
JE VOKAL
CMP DL,'u'
JE VOKAL
CMP DL,'e'
JE VOKAL
CMP DL,'o'
JE VOKAL
CMP DL,'A'
JE VOKAL
CMP DL,'I'
JE VOKAL
CMP DL,'U'
JE VOKAL
CMP DL,'E'
JE VOKAL
CMP DL,'O'
JE VOKAL

PLUS:INC BX
JMP CET

;============= CETAK KATA DARI BELAKANG ==================

BELAKANG:MOV AH,09H
MOV DX,OFFSET KALJ
INT 21H
MOV AH,09H
MOV DX,OFFSET KALX
INT 21H

CETAK1:
MOV DL,[BX]
CMP DL,KATA+1
JE VOKAL1

MOV AH,02H
INT 21H
DEC BX
JMP CETAK1


;============ CETAK JUMLAH VOKAL ================

VOKAL1:
MOV AH,09H
MOV DX,OFFSET KALL
INT 21H

MOV DL,CL
;ADD DL,30H
MOV AH,02H
INT 21H


;============ CETAK JUMLAH KONSONAN ===============

KONSONAN:
MOV AH,09H
MOV DX,OFFSET KALM
INT 21H

MOV BX,OFFSET KATA+1
MOV DL,[BX]
ADD DL,30H
SUB DL,CL
ADD DL,30H
MOV AH,02H
INT 21H


;============= CETAK PANJANG STRING ================

AKHIR:
MOV AH,09H
MOV DX,OFFSET KALK
INT 21H

MOV BX,OFFSET KATA+1
MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H

jmp PERULANGAN
ret
p2 endp

P3 proc near
mov ah,09h
mov dx,offset kata3
int 21h

B:
JMP KLIK
KALE DB 13,10,'CETAK MULAI DARI: $'
KALF DB ' S/D: $'
KALG DB 13,10,'HASIL : $'

KLIK:
MOV AH,09H ;CETAK KAL1
LEA DX,KALE
INT 21H

MOV AH,01H ;BACA INPUTAN DARI
INT 21H
MOV BH,AL ;PINDAH INPUTAN KE BH

MOV AH,09H ;CETAK KAL2
LEA DX,KALF
INT 21H

MOV AH,01H ;BACA INPUTAN SAMPAI
INT 21H
MOV BL,AL ;PINDAH INPUTAN KE BL

MOV AH,09H ;CETAK HASIL
LEA DX,KALG
INT 21H


CMP BL,BH ;BANDINGKAN BL DENGAN BH
JG ASCEND ;BILA BL LEBIH BESAR, MAKA JUMP KE ASCEND

JMP DESCEND ;BILA TIDAK, JUMP KE DESCEND

DESCEND:
MOV AH,02H ;INTERUPT CETAK
MOV DL,BH ;ISI DL DENGAN BH
INT 21H ;CETAK DL

mov ah,02h
mov dl,0ah
int 21h

DEC BH ;KURANGI BH 1H
CMP BH,BL ;BANDINGKAN BH DENGAN BL
JG DESCEND ;BILA BH LEBIH BESAR, JUMP KE DESCEND

ASCEND:
MOV AH,02H ;PERINTAH CETAK
MOV DL,BH ;ISI DL DENGAN BH
INT 21H ;PERINTAH CETAK DL

mov ah,02h
mov dl,0ah
int 21h

INC BH ;TAMBAHKAN BH DENGAN 1H
CMP BH,BL ;BANDINGKAN BH DENGAN BL
JLE ASCEND ;BILA BH LEBIH KECIL, JNP KE ASCEND

JMP PERULANGAN
ret
P3 endp

PERULANGAN:
MOV AH,09H
LEA DX,KAL6
INT 21H

MOV AH,01H
INT 21H
MOV BH,AL

CMP BH,'Y'
JE AWAL

CMP BH,'y'
JE AWAL
EXIT:
INT 20H
;=====End Program=====

Jumat, 04 Februari 2011

Install Mikrotic

CD-Install
Description
To install the RouterOS using a CD you will need a CD-writer and a blank CD. Burn the CD-image (an .iso file) to a CD. The archive with image can be downloaded here.
Follow the instructions to install RouterOS using CD-Install:
After downloading the CD image from www.mikrotik.com you will have an ISO file on your computer:

Open a CD Writing software, like Ahead NERO as in this example:

In the program, choose Burn Image entry from the Recorder menu (there should be similary named option in all major CD burning programs):

Select the recently extracted ISO file and click Open:

Finally, click Burn button:

Set the first boot device to CDROM in router's BIOS.
After booting from CD you will see a menu where to choose packages to install:
Welcome to MikroTik Router Software installation

Move around menu using 'p' and 'n' or arrow keys, select with 'spacebar'.
Select all with 'a', minimum with 'm'. Press 'i' to install locally or 'r' to
install remote router or 'q' to cancel and reboot.

[X] system [ ] isdn [ ] synchronous
[X] ppp [ ] lcd [ ] telephony
[X] dhcp [ ] ntp [ ] ups
[X] advanced-tools [ ] radiolan [ ] web-proxy
[ ] arlan [ ] routerboard [ ] wireless
[ ] gps [X] routing
[ ] hotspot [X] security

Follow the instructions, select needed packages, and press 'i' to install the software.
You will be asked for 2 questions:
Warning: all data on the disk will be erased!

Continue? [y/n]

Press [Y] to continue or [N] to abort the installation.
Do you want to keep old configuration? [y/n]:
You should choose whether you want to keep old configuration (press [Y]) or to erase the configuration permanently (press [N]) and continue without saving it. For a fresh installation, press [N].
Creating partition...
Formatting disk...
The system will install selected packages. After that you will be prompted to press 'Enter'. Before doing that, remove the CD from your CD-Drive:
Software installed.

Installing RouterOS with NetInstall

Document revision: 1.3 (Mon Jul 19 12:58:25 GMT 2004)
Applies to: V2.9
NetInstall
Description
NetInstall is a program that allows you to install MikroTiK RouterOS on a dedicated PC or RouterBoard via Ethernet network. All you need is a blank floppy or an Ethernet device that supports PXE (like RouterBoard 100, RouterBoard 200 and RouterBoard 500 series), an Ethernet network between workstation and dedicated computer, and a serial null-modem console cable (for RouterBoard routers).
NetInstall Program Parameters

The program runs on Windows 95/98/ME/NT/2000/XP platforms.
Netinstall parameters:
Routers/Drives - in this list you can see all the devices waiting for installation.
Software ID - a unique ID that is generated for licensing purposes.
Key - a key that is generated for the Software ID. When you purchase a license, you get a key file. Click the Browse... button next to the key field to select your key file.
Get Key... - obtain software key from MikroTIK server:

Software ID - ID for which the key will be generated (depending on the license level).
Username - client's username in the Account data base.
Password - client's password.
Level - license level of RouterOS.
Debit key - a key that you have paid for, but haven't generated yet.
Debit money - money that you have on your account. To add money to your account, use the 'add debit' link in the account server.
Credit key - a key that you can take now, but pay later.
Credit money - paying with credit money allows you to get your keys now and pay for them later.
Keep old configuration - used for reinstalling the software. If checked, the old configuration on the router will not be overwritten, otherwise it will be lost.
IP address/mask - address with subnet mask that will be assigned to ether1 interface after the packages are installed.
Gateway - specifies the default gateway (static route).
Baud rate - this baud rate will be set for serial console (bps).
Configure script - a RouterOS script to execute after the package installation. Note that not all the devices (especially, wireless cards) may be discovered at the time this script is run, so it is suggested to put a delay (about 20 seconds) at the start of the script to be sure that all devices are up and running.
Make floppy - make a bootable NetInstall floppy.
Net booting - opens the Network Booting Settings window. Enter an IP address from your local network. This address will be temporarily assigned to the computer where RouterOS will be installed on.
Install - installs the RouterOS on a computer.
Cancel - cancel the installation.
Sets - an entry in this list represents the choice of packages selected to install from a directory. If you want to make your own set, browse for a folder that contains packages (*.npk files), select needed packages in the list, and press the Save set button.
From - type the directory where your packages are stored or press the Browse... button to select the directory.
Select all - selects all packages in the list
Select none - unselects all packages in the list
Note: some of the Get key... parameters could not be available for all account types.
NetInstall Example
This example shows step-by-step instructions how to install the software on a RouterBoard 200.
Connect the routerboard to a switch (or a hub) as it is shown in the diagram using ether1 interface (on RouterBoard 230 it is next to the RS-232 interface):

Run NetInstall program on your workstation (you can download it here. It is necessary to extract the packages (*.npk files) on your hard drive.
NetInstall v1.10

Enter the Boot Server Client's IP address. Use an address from a network to which belongs your NIC (in this case 172.16.0.0/24). This IP address will be temporarily assigned to the routerboard.

Set the RouterBoard to boot from Ethernet interface. To do this, enter the RouterBoard BIOS (press any key when prompted):
RouterBIOS v1.3.0 MikroTik (tm) 2003-2004

RouterBOARD 230 (CPU revision B1)
CPU frequency: 266 MHz
Memory size: 64 MB

Press any key within 1 second to enter setup.
You will see a list of available commands. To set up the boot device, press the 'o' key:
RouterBIOS v1.3.0
What do you want to configure?
d - boot delay
k - boot key
s - serial console
l - debug level
o - boot device
b - beep on boot
v - vga to serial
t - ata translation
p - memory settings
m - memory test
u - cpu mode
f - pci back-off
r - reset configuration
g - bios upgrade through serial port
c - bios license information
x - exit setup
your choice: o - boot device
Press the 'e' key to make the RouterBoard to boot from Ethernet interface:
Select boot device:
* i - IDE
e - Etherboot
1 - Etherboot (timeout 15s), IDE
2 - Etherboot (timeout 1m), IDE
3 - Etherboot (timeout 5m), IDE
4 - Etherboot (timeout 30m), IDE
5 - IDE, try Etherboot first on next boot (15s)
6 - IDE, try Etherboot first on next boot (1m)
7 - IDE, try Etherboot first on next boot (5m)
8 - IDE, try Etherboot first on next boot (30m)
your choice: e - Etherboot
When this is done, the RouterBoard BIOS will return to the first menu. Press the 'x' key to exit from BIOS. The router will reboot.
When booting up, the RouterBoard will try to boot from its Ethernet device. If successful, the Workstation will give to this RouterBoard an IP address, specified in Network Booting Settings. After this process, the RouterBoard will be waiting for installation.
On the workstation, there will appear a new entry in Routers/Drives list:

You can identify the router by MAC address in the list. Click on the desired entry and you will be able to configure installation parameters.
When done, press the Install button to install RouterOS.
When the installation process has finished, press 'Enter' on the console or 'Reboot' button in the NetInstall program. Remember to set the boot device back to IDE in the RouterBoard BIOS.

Keterangan :
What's new in 4.11 (2010-Jul-26 10:16):

*) changed "wireless registration table entry count" snmp oid to 1.3.6.1.4.1.14988.1.1.1.4.0;
*) fix 5&10MHz channel support for 11n cards;

What's new in 4.10 (2010-May-28 13:59):

*) added support for ethernet switch configuration in WinBox;
*) allow to configure 11n wireless rate tx powers in WinBox;
*) dhcp server - show non-printable option 82 agent-circuit-id and
agent-remote-id values in hexadecimal notation also in winbox;
*) api - fixed '/ip/route/print', was not showing '.id' values;
*) console - fixed printing of OID values;
*) lcd - added support for AX89063

What's new in 4.9:

*) fixed problem - some of the bridge ports stayed invalid after reboot;
*) console - added '/port remote-access export' command;

What's new in 4.8:

*) added support for second serial port on RB800/RB1100;
*) fixed problem - WinBox crashed while opening VAP interface;
*) dhcp server - fixed possible inactive dhcp server in case of many
dhcp leases with address-pool enabled (broken in v4.7);
*) dhcp server - show non-printable option 82 agent-circuit-id and
agent-remote-id values in hexadecimal notation
(in the same way as client-id is shown);
*) api - can supply password to '/system/upgrade/upgrade-package-source/add';
*) console - fixed bug that caused "cannot set ..." error when using
some properties in 'find' commands;
*) api - 'print' command was not showing values of some properties
such as 'servers' in "/ip/dns";
*) show old software id in export file header;

What's new in 4.7:

*) fixed problem - wireless packet bridging with nstreme enabled
sometimes was very slow on RB1xx, RB5xx and RB4xx;
*) fixed problem - ipv6 traffic was not bridged if ipv6 package was not enabled;
*) '/user active' now lists type of api connections as 'api'
*) fixed getting interface stats in dude
*) fixed metarouter stability problem on RB400s & RB750s;
*) fixed metarouter - it didn't work on RB1000 with 2Gb;
*) fixed metarouter - it locked up on RB800;
*) fixed problem - SFQ queues did not work on interfaces (wireless) if none
of simple or tree queues were added;
*) fixed RB800 temperature;
*) silentboot feature updated;
*) multicast - fixed possible crash during PIM startup;
*) ospf - changed "/routing ospf route" to show type 2 metric instead of
internal metric for type 2 external routes;
*) report platform name in "/sysrem resource";
*) fixed problem - vlans were not working on RB750 ether1;
*) fixed mac address handling on RB750, some specific arp requests did not work;
*) more than two dns servers allowed in /ip dns;
*) sniffer and torch could process packet from other interfaces;
*) dns cache rotates order of records in reply messages;
*) ospf - fixed DR and BDR election;

What's new in 4.6:

*) only accept dotted decimal notation for IP addresses. Use of numbers
with leading zero, numbers larger than 255 and non-decimal numbers
is not accepted (but still can ommit third or second and third numbers,
if they are zero);
*) email - user must enable tls explicitly
*) remove limit on number of multicast enabled interfaces, maximum was 32;
*) dhcp server - show last-seen time for leases;
*) dhcp server - do not create busy lease if client declines all IP addresses;
*) fixed - when closing winbox terminal window with active serial-terminal
console command, serial port sometimes was left in acquired state;

What's new in 4.5:

*) ipsec - added blowfish, twofish, and camellia encryption algorithms;
*) fixed static route removing;
*) fixed DHCP client compatibility with some DHCP servers;
*) added static multi-cast route support;
*) fixed temperature monitor on RB800 and RB450G;
*) user manager - payment bug fix - now able to buy
credits without extend price specified;

What's new in 4.4:

*) snmp - fixed snmp version three;
*) snmp - fixed vlan interface speed;
*) hotspot - fixed radius variables in hotspot html pages;
*) removed support for xen;
*) routing - added support for BFD protocol;
*) fixed problem - MetaROUTER sometimes froze on RB4xx;
*) fixed OSPFv3 on bridge interfaces;

What's new in 4.3:

*) kvm - vnc support, booting from cdrom image
*) API - fixed possible crash when running concurrent commands;
*) console - fixed logging commands: 'warning', 'error' and 'debug' were
all using 'info' topic;
*) bgp - added routing-table configuration option for instances;
*) bgp - added 'as-override' and 'passive' configuration options for peers;
*) bgp - added support for Site of Origin extended communities;
*) bgp - fixed some network issues;
*) ospf - fixed problem: when last neighbor on multi-access interface disappeared,
incorrect RouterLSA was generated on designated router;
*) metarouter - allow to specify metarouter's memory size when importing image;
*) firewall - added 'routing-table' matcher;
*) fixed problem - e1000 driver did not work in virtual machines;

What's new in 4.2:

*) fixed problem - RB450G ethernet did not work if one of the ports was disabled;
*) fixed ethernet of RB433 with switch chip IP175D;
*) fixed route attribute problem;
*) fixed route next-hops falling under multiple connected routes;

What's new in 4.1:

*) fixed problem - RB750 (clocked at 300MHz) Ethernet did not work;
*) fixed problem - routes on some interfaces (like VLAN) were not activated;
*) ppp, gps, sms, serial terminal - allow use of different channels
on same port across multiple programs simultaneous
*) dhcp server - added support for dynamic address-list entries;
*) hotspot - added support for dynamic address-list entries;
*) hotspot - fixed redirect after login in case if client gets new IP address
(problem introduced in 3.28);

What's new in 4.0:

*) IT87XX hardware monitoring sensor support;
*) kvm allows to choose emulated nic model;
*) hotspot - fixed redirect after login in case if client gets new IP address
(problem introduced in 3.28);
*) hotspot - fixed redirect after login in case if client gets new IP address;
*) console - commands like 'monitor', 'torch' and others that periodically
refresh information sometimes failed to work when started from
the scheduler;
*) console - scheduled scripts no longer require 'test' policy to run;
*) console - fix issues with scripts that contain lines with trailing spaces;
*) console - add back compatibility with old scripts that use space instead
of '=' to separate argument name and value;
*) console - following fixes:
- accept item numbers when prompted by command to specify item;
- argument names without '=' were matched even when expecting unnamed
value; this broke code such as:
:foreach i in=1,2,3 do {}
here 'i' was matched as argument name "in";
- 'tab' key did not automatically append '=' after complete argument
names;

What's new in 4.0rc1:

*) console - removed support for Lua (will be reintroduced later);
*) incorporated all the bug fixes since v3.30;
*) port remote-access - added 'log-file' property. If value is a non-empty
string, then all data that is read from the port is appended to a file
with that name, regardless of the active remote connection;
*) console - removed '/user' from the output of top level '/export' command,
still can be exported by '/user export';

What's new in 4.0beta4:

*) routing - changed BGP network and default-originate behavior;
*) web proxy - allow to edit error page;
*) console - terminal window size change now does not trigger full terminal
reset;
*) mesh protocol - improved loop prevention (becomes incompatible with earlier versions);

*) incorporated all the bug fixes since v3.27;

What's new in 4.0beta3:

*) added support for 802.11n atheros based wireless cards;
*) added ability to run other OSs in MetaROUTERs;
*) console: Lua scripting language. http://wiki.mikrotik.com/wiki/Lua
*) console: added nstreme-dual OIDs;
*) incorporated all the bug fixes since v3.23;

What's new in 4.0beta2:

*) console: added 'without-paging' argument to 'monitor' commands;
*) console: now 'without-paging' and 'interval' arguments in of 'print'
commands work together. Printing can be stopped by pressing 'q' or
ctrl-c, any other key triggers printing;
*) incorporated all the bug fixes since v3.22;
*) fixed TFTP server logging;
*) fixed problem - "/system upgrade" did not show proper package
architecture and was unable to fetch new packages;

What's new in 4.0beta1:

*) added support for MetaROUTERs;
*) all test packages are regular ones;
*) console - can mix named and unnamed arguments, can use names for unnamed
argument values. For example all of the following commands are
accepted now:
/ping 10.11.12.13 count=4
/ping address=10.11.12.13 count=4
/ping count=4 10.11.12.13

Perintah pada terminal (Command)

Perintah pada terminal yang biasa disebut dengan command line tidak asing bagi pengguna sistim operasi linux, karena fungsi terminal ini sangat besar pengaruhnya, dengan menggunakan terminal ini kita bisa memanipulasi file ataupun menginstall suatu program tanpa menggunakan grafik alias berbasis perintah command, bagaimana cara kita menggunakan terminal ini, kalau kalian menggunakan Linux ubuntu caranya adalah klik Applications>Accessories>Terminal seperti gambar berikut tampilan terminal :
Untuk mengetahui suatu perintah kalian dapat melihat manualnya, misalnya dengan mengetikkan perintah man:
$man cd
Maka nanti akan diperjelas lagi macam-macam perintah cd di dalam sistim linux itu.
Macam-macam perintah command yang ada di linux ubuntu adalah sebagai berikut :
&, adduser, alias, bg, cat, cd, chgrp, chmod, chown, cp, fg, find, grep, gzip, alt, hostname, kill, less, login, logout, ls, man, mesg,  mkdir,  more,  mount, mv, passwd, pwd, rm, rmdir, shutdown, su, tail, talk, tar, umount, unalias, unzip, wall, who, xhost +, xset, dan masih banyak lagi.

1. & : Perintah & dipakai dibelakang perintah lain dan menjalankannya di background. Tujuannya adalah untuk membebaskan shell agar bisa dipergunakan menjalankan proses-proses yang lain. Lihat juga perintah bg dan fg.
2. adduser : Biasanya hanya dilakukan oleh root untuk menambahkan user atau account yg baru. Setelah perintah ini bisa dilanjutkan dengan perintah passwd, yaitu perintah untuk membuat password bagi user tersebut.
#adduser andi
#passwd andi
Selanjutnya kalian akan diminta memasukkan password untuk user andi. Isikan password untuk andi dua kali dengan kata yang sama.
3. alias : Digunakan untuk memberi nama lain dari sebuah perintah. Misalnya kalo kalian ingin perintah ls dapat juga dijalankan dengan mengetikkan perintah dir, maka buatlah aliasnya sbb:
$ alias dir=ls
Untuk melihat perintah-perintah apa saja yang mempunyai nama lain saat itu, cukup ketikkan alias. Lihat juga perintah unalias.
4. bg : Digunakan untuk memaksa sebuah proses yang dihentikan sementara(suspend) agar berjalan di background. Misalnya kalian sedang menjalankan sebuah perintah di foreground (tanpa diakhiri perintah &) dan suatu saat ente membutuhkan shell tersebut maka ente dapat memberhentikan sementara perintah tersebut dengan Ctrl-Z kemudian ketikan perintah bg untuk menjalakannya di background. Dengan cara ini ente telah membebaskanshell tapi tetap mempertahankan perintah lama berjalan di background. Lihat juga perintah fg.

5. cat : Digunakan untuk menampilkan isi dari sebuah file dilayar.
$ cat namafile

6. cd : Change Directory atau untuk berpindah direktori dan menurut ane ente tidak akan menemui kesulitan menggunakan perintah ini karena cara penggunaanya mirip dengan perintah cd di DOS.
7. chgrp : Digunakan untuk merubah kepemilikan kelompok file atau direktori. Misalnya untuk memberi ijin pada kelompok atau grup agar dapat mengakses suatu file. Sintaks penulisannya adalah sbb:
# chgrp
8. chmod : Digunakan untuk menambah dan mengurangi ijin pemakai untuk mengakses file atau direktori. Kalian dapat menggunakan sistem numeric coding atau sistem letter coding. Ada tiga jenis permission/perijinan yang dapat dirubah yaitu r untuk read, w untuk write dan x untuk execute.
Dengan menggunakan letter coding, Kalian dapat merubah permission diatas untuk masing-masing u (user), g (group), o (other) dan a (all) dengan hanya memberi tanda plus (+) untuk menambah ijin dan tanda minus (-) untuk mencabut ijin.
Misalnya untuk memberikan ijin baca dan eksekusi file andi kepada owner dan group, perintahnya adalah:
$ chmod ug+rx andi
Untuk mencabut ijin-ijin tersebut:
$ chmod ug-rx andi
Dengan menggunakan sitem numeric coding, permission untukuser, group dan other ditentukan dengan menggunakan kombinasi angka-angka, 4, 2 dan 1 dimana 4 (read), 2 (write) dan 1 (execute).
Misalnya untuk memberikan ijin baca(4), tulis(2) dan eksekusi(1) file coba2 kepada owner, perintahnya adalah:
$ chmod 700 andi2
Contoh lain, untuk memberi ijin baca(4) dan tulis(2) file coba3 kepada user, baca(4) saja kepada group dan other, perintahnya adalah:
$ chmod 644 andi3
9. chown : Digunakan untuk merubah user ID (owner) sebuah file atau direktori.
$ chown
10. cp : Digunakan untuk menyalin file atau copy. Misalnya untuk menyalin file1 menjadi file2:
$ cp
11. fg : Digunakan untuk mengembalikan suatu proses yang dihentikan sementar(suspend) agar berjalan kembali di foreground. Lihat juga perintah bg diatas.
12. find : Digunakan untuk menemukan dimana letak sebuah file. Perintah ini akan mencari file sesuai dengan kriteria yang Kalian tentukan. Sintaksnya adalah perintah itu sendiri diikuti dengan nama direktori awal pencarian, kemudian nama file (bisa menggunakan wildcard, metacharacters) dan terakhir menentukan bagaimana hasil pencarian itu akan ditampilkan. Misalnya akan dicari semua file yang berakhiran .doc di current direktori serta tampilkan hasilnya di layar:
$ find . -name *.doc -print
. /public/docs/account.doc
. /public/docs/balance.doc
. /public/docs/statistik/prospek.doc
./public/docs/statistik/presconf.doc
13. grep : Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan kriteria yang telah Kalian tentukan.
$ grep
Misalnya akan dicari file-file yang mengandung teks marginal di current direktori:
$ grep marginal
diferent.doc: Catatan: perkataan marginal luas dipergunakan di dalam ilmu ekonomi
prob.rtf: oleh fungsi hasil marginal dan fungsi biaya marginal jika fungsi
prob.rtf: jika biaya marginal dan hasil marginal diketahui maka biaya total
 
14. gzip : Ini adalah software kompresi zip versi GNU, fungsinya untuk mengkompresi sebuah file. Sintaksnya sangat sederhana:
$ gzip
Walaupun demikian Anda bisa memberikan parameter tertentu bila memerlukan kompresi file yang lebih baik, silakan melihat manual page-nya. Lihat juga file tar, unzip dan zip.
15. halt : Perintah ini hanya bisa dijalankan oleh super useratau Kalian harus login sebagai root. Perintah ini untuk memberitahu kernel supaya mematikan sistem atau shutdown.
16. hostname : Digunakan untuk menampilkan host atau domain name sistem dan bisa pula digunakan untuk mengesset nama host sistem.
[flory@localhost docs] $ hostname
localhost.localdomain
17. kill : Perintah ini akan mengirimkan sinyal ke sebuah proses yang kita tentukan. Tujuannya adalah menghentikan proses.
$ kill
PID adalah nomor proses yang akan di hentikan.
18. less : Fungsinya seperti perintah more.
19. login : Untuk masuk ke sistem dengan memasukkan login ID atau dapat juga digunakan untuk berpindah dari user satu ke user lainnya.
20. logout : Untuk keluar dari sistem.
21. ls : Digunakan untuk menampilkan isi dari sebuah direktori seperti perintah dirdi DOS. Kalian dapat menggunakan beberapa option yang disediakan untuk mengatur tampilannya di layar. Bila Kalian menjalankan perintah ini tanpa option maka akan ditampilkan seluruh file nonhidden(file tanpa awalan tanda titik) secara alfabet dan secara melebar mengisi kolom layar. Option -la artinya menampilkan seluruh file/all termasuk file hidden(file dengan awalan tanda titik) dengan format panjang.
22. man : Digunakan ntuk menampilkan manual pageatau teks yang menjelaskan secara detail bagaimana cara penggunaan sebuah perintah. Perintah ini berguna sekali bila sewaktu-waktu Kalian lupa atau tidak mengetahui fungsi dan cara menggunakan sebuah perintah.
$ man
23. mesg : Perintah ini digunakan oleh user untuk memberikan ijin user lain menampilkan pesan dilayar terminal. Misalnya mesg Kalian dalam posisi y maka user lain bisa menampilkan pesan di layar Kalian dengan write atau talk.
$ mesg y atau mesg n
Gunakan mesg n bila Kalian tidak ingin diganggu dengan tampilan pesan-pesan dari user lain.
24. mkdir : Digunakan untuk membuat direktori baru, sama dengan perintah md di DOS.
25. more : Mempaging halaman, seperti halnya less
26. mount : Perintah ini akan me-mount filesystem ke suatu direktori atau mount-point yang telah ditentukan. Hanya superuser yang bisa menjalankan perintah ini. Untuk melihat filesystem apa saja beserta mount-pointnya saat itu, ketikkan perintah mount. Perintah ini dapat Kalian pelajari di bab mengenai filesystem. Lihat juga perintah umount.
$ mount
/dev/hda3 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/hda1 on /dos type vfat (rw)
/dev/hda4 on /usr type ext2 (rw)
none on /dev/pts type devpts (rw,mode=0622)
27. mv : Untuk memindahkan file dari satu lokasi ke lokasi yang lain. Bila argumen yang kedua berupa sebuah direktori maka mv akan memindahkan file ke direktori tersebut. Bila kedua argumen berupa file maka nama file pertama akan menimpa file kedua. Akan terjadi kesalahan bila Kalian memasukkan lebih dari dua argumen kecuali argumen terakhir berupa sebuah direktori.
28. passwd : Digunakan untuk mengganti password. Kalian akan selalu diminta mengisikan password lama dan selanjutnya akan diminta mengisikan password baru sebanyak dua kali. Password sedikitnya terdiri dari enam karakter dan sedikitnya mengandung sebuah karakter.
29. pwd : Menampilkan nama direktori dimana Kalian saat itu sedang berada.
30. rm : Untuk menghapus file dan secara default rm tidak menghapus direktori. Gunakan secara hati-hati perintah ini terutama dengan option -r yang secara rekursif dapat mengapus seluruh file.
31. rmdir : Digunakan untuk menghapus direktori kosong.
32. shutdown : Perintah ini untuk mematikan sistem, seperti perintah halt. Pada beberapa sistem Kalian bisa menghentikan komputer dengan perintah shutdown -h now dan merestart sistem dengan perintah shutdown -r now atau dengan kombinasi tombol Ctr-Alt-Del.
33. su : Digunakan untuk login sementara sebagai user lain. Bila user ID tidak disertakan maka komputer menganggap Kalian ingin login sementara sebagai super user atau root. Bila Kalian bukan root dan user lain itu memiliki password maka Kalian harus memasukkan passwordnya dengan benar. Tapi bila Kalian adalah root maka Kalian dapat login sebagai user lain tanpa perlu mengetahui password user tersebut.
34. tail : Untuk menampilkan 10 baris terakhir dari suatu file. Default baris yang ditampilkan adalah 10 tapi Kalian bisa menentukan sendiri berapa baris yang ingin ditampilkan:
$ tail
35. talk : Untuk mengadakan percakapan melalui terminal. Input dari terminal Kalian akan disalin di terminal user lain, begitu sebaliknya.
36. tar : Menyimpan dan mengekstrak file dari media seperti tape drive atau hard disk. File arsip tersebut sering disebut sebagai file tar. Sintaknya sebagai berikut:
$ tar

PENGENALAN DEBUG DALAM ASSEMBLER

 Program Debug
Untuk menjalankan utility DEBUG, anda cukup mengetik DEBUG dari prompt. Sedang bila ingin membuka sebuah file langsung untuk dioperasikan DEBUG, anda cukup menambahkan nama file itu sebagai command tail. Contohnya :
A> DEBUG AGUS.COM
1. Perintah Debug
a. Q (Quit)
Bila anda mengetikan huruf Q dan menekan enter, maka akan segera kembali ke dos prompt.
b. H (Hexa)
Perintah Hexa adalah perintah yang melaksanakan penjumlahan dan pengurangan terhadap dua bilangan Hexa. Bentuk umum instruksi adalah H operand1,operand2
c. R (Register)
Perintah R digunakan untuk mengetahui isi masing-masing register pada saat mengetik R dan menekan enter
d. A (Assembler)
Perintah Assembler berguna untuk tempat menulis program Assembler.
-A100
0FD8:100
e. N (Name)
Perintah ini digunakan untuk memberi nama suatu program assembler
f. RCX (Register CX)
Perintah ini digunakan untuk mengetahui dan memperbaruhi isi register CX yang merupakan tempat penampungan panjang program yang sedan aktif
g. RIP (Register IP)
Perintah ini digunakan untuk memberitahu komputer untuk memulai memproses program dari titik tertentu.
h. W (Write)
Perintah ini digunakan untuk menulis/ menyimpan program
i. G (Go)
Perintah ini digunakan untuk menjalankan suatu program
j. T (Trace)
Perintah ini digunakan untuk memproses sebaris program saja.
k. U (Unassemble)
Perintah ini digunakan untuk melihat listing program yang sedang aktif.

2. Perintah Dasar Assembler
a. MOV
Perintah MOV adalah perintah untuk mengisi, memindahkan, memperbaruhi isi suatu register, variable ataupun lokasi memory
Adapun tata penulisan perintah MOV adalah :
MOV [operand A], [Operand B]
Contoh :
MOV AH,02
Operand A adalah Register AH
Operand B adalah bilangan 02
Hal yang dilakukan oleh komputer untuk perintah diatas adalah memasukan 02 ke register AH.
b. INT (Interrupt)
Bila anda pernah belajar BASIC, maka pasti anda tidak asing lagi dengan perintah GOSUB. Perintah INT juga mempunyai cara kerja yang sama dengan GOSUB, hanya saja subroutine yang dipanggil telah disediakan oleh memory komputer yang terdiri 2 jenis yaitu :

- Bios Interrupt ( interput yang disediakan oleh BIOS (INT 0 – INT 1F))
- Dos Interrupt ( Interrupt yang disediakan oleh DOS (INT 1F – keatas))
 Contoh Program Sederhana
- A100
0FD8:0100 MOV AH,02
0FD8:0102 MOV DL,41
0FD8:0104 INT 21
0FD8:0106 INT 20
0FD8:0108
- Jika sudah Ketikan perintah G ( Go ) maka akan tampil huruf A
- Cara menyimpan program :
- RIP
IP 102
: 100 - diisi
- RCX
CX 0000
: 8 --> diisi ( panjangnya program)
- N Coba.Com memberi nama program
- W Menulis program


LOOPING DAN STACK
 Looping
Dalam Assembler perintah untuk melakukan perulangan digunakan perintah LOOP. Yang mempunyai tata penulisan sebagai berikut :
Loop [lokasi memory]
Adapun syarat lain untuk operasi Loop adalah harus mengisi register CX untuk setiap kali pengulangan. Coba anda lihat contoh program looping dibawah ini :

MOV CX,05
:0103 MOV AH,02
MOV DL,41
INT 21
LOOP 0103
INT 20

Jika program diatas dijalankan maka akan terjadi perulangan sebanyak lima kali. Hal ini karena isi dari register CX adalah 5 dan program akan looping ke memory segment 0103 yaitu tempat yang berisikan perintah MOV AH,02


Untuk setiap kali looping komputer akan mengurangi isi register CX satu sampai dengan CX menunjukan nol dan komputer akan melanjutkan ke baris berikutnya dibawah loop. Jika anda meletakan Loop ke tempat MOV CX,05 maka hasil running program tidak akan berhenti.

Bahasa Rakitan

BUKU AJAR
PEMROGRAMAN BAHASA
RAKITAN
oleh :
Deni Fauzi,ST?
Program Studi Sistem Komputer
Fakultas Teknik
Universitas STMIK WU 2010

Diharapkan dengan telah disusunnya buku ajar ini, perkuliahan akan dapat dilaksanakan
dengan lebih terarah dan sistematis.
Secara umum materi Bahan-bahan Listrik ini meliputi :
1. Pengantar Bahasa Rakitan
2. Dasar – Dasar Mikroprosesor
3. Konversi Bilangan
4. Sintaks-sintaks instruksi Bahasa Rakitan
5. Interupsi – Interupsi pada Bahasa Rakitan
Tiada gading yang tak retak, penyusunan buku ajar inipun tentu masih terdapat
kekurangan disana-sini, saran dan kritik yang membangun sangat diharapkan.
Penyempurnaan akan dilakukan dengan menambah materi dari beberapa referensi buku,
jurnal maupun artikel hasil penelitian.
Semoga buku ajar ini bermanfaat.

PENGANTAR BAHASA RAKITAN DAN KONVERSI
BILANGAN HEX, DEC DAN BINER
Tujuan Instruksional
Pada Bab ini dijelaskan kedudukan dan posisi bahasa rakitan dibandingkan dengan
bahasa aras sangat rendah (bahasa mesin) dan bahasa tingkat menengah (C/C++) dan
bahasa tingkat tinggi (Pascal dsb). Juga dijelaskan dalam bab ini mengenai representasi
kode kode dalam bilangan biner, desimal dan hexadesimal. Yang diharapkan dalam bab
selanjutnya akan lebih mudah mengikuti pembelajaran mengenai instruksi bahasa rakitan,
mengingat kesemua data menggunakan pola pola konversi bilangan yang wajib bagi
mahasiswa untuk menguasai terlebih dahulu bab ini.
1. Pendahuluan
Bahasa Rakitan termasuk ke dalam bahasa tingkat rendah dan merupakan bahasa
dasar komputer. Bahasa ini memerlukan logika yang cukup rumit di samping instruksinya
yang jauh berbeda dengan bahasa pemrograman lainnya. Program yang dihasilkan
memiliki kecepatan
yang paling baik. Kelebihan dari bahasa rakitan adalah :
1. Memiliki fasilitas fungsi dan makro (ciri khas bahasa pemrograman yang
menyebabkan pemrograman menjadi lebih mudah).
2. Program dapat dibuat secara modular (dipecah dalam modul-modul kecil dan
dapat diintegrasikan kembali).
3. Ukuran program lebih kecil, sehingga lebih menghemat media penyimpan.
4. Lebih dekat ke hardware sehingga seluruh kemampuan komputer dapat
dimanfaatkan secara maksimal.
Bahasa rakitan merupakan bahasa pemrograman yang posisinya di antara bahasa
pemrograman lainnya adalah termasuk dalam bahasa pemrograman tingkat rendah karena
bahasa ini berhubungan langsung dengan bahasa mesin. Sedangkan bahasa pemrograman
Delphi berada di atas bahasa pemrograman rakitan, yang sering disebut OOP (Object
Orinted Programming).Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa
dijalankan oleh komputer. Sedangkan bahasa rakitan memakai kode mnemonic untuk
menggantikan kode biner, agar lebih mudah diingat sehingga memudahkan penulisan
program.
Program yang ditulis dengan bahasa rakitan terdiri dari label; kode mnemonic dan
lainnya, pada umumnya dinamakan sebagai program sumber (source code) yang belum
bisa diterima oleh prosesor untuk dijalankan sebagai program tapi harus diterjemahkan
terlebih dahulu menjadi bahasa mesin dalam bentuk kode biner.
Jika yang ditulis hanya bahasa rakitan saja maka biasanya program dibuat dengan
program editor biasa, misalnya note pad pada Windows atau sidekick pada DOS,
selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan
program rakitan. Hasil kerja program rakitan adalah “program objek” dan juga “rakitan
listing”. Tapi karena di sini bahasa rakitan ditulis bersama dengan bahasa Delphi maka
program dibuat di dalam editor milik Delphi.
Program objek berisikan kode – kode bahasa mesin, kode – kode bahasa mesin
inilah yang diumpankan ke memori – memori prosesor.
Perlu diperhatikan bahwa setiap prosesor mempunyai konstruksi yang berbeda –
beda, instruksi untuk mengendalikan masing – masing prosesor juga berbeda – beda.
Dengan demikian bahasa rakitan untuk masing – masing prosesor juga berbeda, yang
sama hanyalah pola dasar cara penulisan program rakitan saja. Adapun bagan kerja
proses rakitan dapat dilihat pada Gambar 2.2 :
Gambar 2.2 Bagan kerja proses rakitan
Kode Sumber Rakitan
Program Objek
Assembly Listing
EPROM/
MicrocontrollerDalam bahasa rakitan program sumbernya menganut prinsip 1 baris untuk satu
perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian, yaitu bagian
label, bagian mnemonic, dan bagian operan yang bisa lebih dari satu.
Label mewakili nomor memori program dari instruksi pada baris yang
bersangkutan, misal pada saat menulis JUMP, label ini ditulis pada bagian operand untuk
menyatakan nomor memori program yang dituju. Dengan demikian label selalu mewakili
nomor memori program dan harus ditulis di bagian awal baris instruksi. Selain label
dikenal pula symbol, yakni satu nama yang mewakili satu nilai tertentu dan nilai yang
diwakili bisa apa saja tidak harus nomor memori program. Cara penulisan simbol sama
dengan penulisan label, harus dimulai di huruf pertama dari baris instruksi.
Mnemonic merupakan singkatan perintah, dikenal dua macam mnemonic, yakni
mnemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD,
MOV, DJNZ dan lainnya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari
program rakitan misalnya ORG, EQU atau DB, mnemonic untuk mengatur kerja dari
program rakitan ini dinamakan sebagai “rakitan directive”.
Operan adalah bagian yang letaknya di belakang bagian mnemonic, merupakan
pelengkap bagi mnemonic. Kalau sebuah instruksi diibaratkan sebagai kalimat perintah,
maka mnemonic merupakan subjek (kata kerja) dan operan merupakan objek (kata benda)
dari kalimat perintah tersebut.
2. Konversi Bilangan Hexadesimal, Biner dan Desimal sebagai modal awal belajar
Bahasa Pemrograman Rakitan
Salah satu penyebab kesulitan mahasiswa untuk mempelajari bahasa Rakitan adalah hal –
hal yang menyangkut konversi Bilangan biner dan hexadecimal. Meskipun dianggap
sesuatu hal yang mengada – ada oleh sebagian anda bahwa : untuk apa bilangan bilangan
direpresentasikan dengan orde yang bermacam-macam? Yang malah menyulitkan bagi
pengguna bilangan. Sebetulnya tidak demikian. Coba anda bayangkan bagaimana
merepresentasikan Bilangan desimal 4 (yang kita pakai sehari hari) dalam digital?
Seperti yang anda ketahui dalam dunia digital representasi adalah 1 dan 0, karena secara
fakta lebih mudah dan tegas perbedaan antara 1 dan 0. 1 adalah on dan 0 adalah off.Disebut sebagai biner (1 dan 0) sehingga dari ungkapan saya diatas dapat dipahami
mengapa biner dibutuhkan, sehingga desimal 4 adalah 100 (biner) kalau representasi pada
nyala 3 buah led maka nyala padam dan padam. Kemudian muncul pertanyaan untuk apa
bilangan hexadesimal? Coba bayangkan representasi bilangan desimal 65536 dalam
biner..? maka anda dapat menulis sepanjang 16 bilangan biner. Hal ini sangat
menyulitkan kala sudah masuk dalam pemrograman, sehingga muncul bilangan orde 16
atau hexadesimal yang berfungsi untuk menyederhanakan penulisan (mengecilkan ukuran
representasi bilangan desimal dan biner ) menjadi FF (hexadesimal) hanya membutuhkan
dua karakter bilangan saja. Oleh sebab itulah mengapa biner dan hexadesimal dibutuhkan
dalam representasi bilangan.
Oleh karena itu pemahaman konversi bilangan penting sebab penggunaan mereka
menyederhanakan lain topik kompleks termasuk desain logika dengan aljabar boolean,
untuk meyederhanakan representasi data.
Bab ini mendiskusikan beberapa konsep penting mencakup konversi biner dan
hexadecimal, sistem, organisasi data biner (bytes), sistem nomorsign dan unsign,
perhitungan, logis, pergeseran, dan operasi rotasi pada biner, bit dan representasi data,
dan karakter ASCII. Bab ini wajib anda kuasai, sebelum anda menguasai sistem bilangan
dan konversinya sebaiknya tidak melangkah ke bab berikutnya.
BILANGAN DESIMAL
Kita terbiasa dengan bilangan basis 10 (desimal) coba anda lihat angka ini 123
representasi dalam bilangan basis 10 adalah seperti berikut :
1*102
+ 2*101
+ 3*100
atau sama dengan
100 + 20 + 3
kemudian coba perhatikan bilangan ini 123,456
direpresentasikan dalam desimal sebagai berikut
1*102
+ 2*101
+ 3*100
+4*10.
-1
+5*10-2
+6*10-3
atau sama dengan
100 + 20 + 3 + 0,4 + 0,05 + 0,006BILANGAN BINER
Sistem komputer menggunakan bilangan biner, dioperasikan menggunakan logika biner.
Komputer merepresentasikan nilai-nilai menggunakan dua tingkatan voltase yang pada
umumnya 0v dan + 5v. Dengan dua nilai seperti kita dapat merepresentasikan persisnya
dua nilai-nilai berbeda. Ini bisa karena dimanapun dua nilai yang berbeda secara absolut,
Dalam penggunaanya kita menggunakan nilai-nilai nol dan satu.
Contoh disini sangat mudah untuk mengkonversikan bilangan biner ke desimal. Anda
perhatikan bilangan biner ini 110010102 direpresentasikan dengan cara seperti pada
desimal diatas menjadi sebagai berikut :
1*27
+ 1*26
+ 0*25
+ 0*24
+ 1*23
+ 0*22
+ 1*21
+ 0*20
sama dengan
128 + 64 + 8 + 2
20210
Mudah kan?
Sedangkan untuk mengkonversi desimal ke biner agak sedikit lebih sulit, karena anda
harus menemukan terlebih dahulu pangkat dua tertinggi berapakah yang sama dengan
atau lebih kecil dari bilangan desimal yang akan dikonversi. Contoh anda perhatikan
bilangan berikut : 1359 (desimal) coba kita konversikan..
- cari nilai pangkat dua yang sama dengan atau lebih kecil dari 1359, kita ambil
misalnya 2
10
= 1024 -> lebih kecil dari 1359, kemudian
- kita naikkan satu tingkat 2
11
= 2048 ternyata 2048 lebih besar dari 1359,
sehingga kita pilih 2 pangkat 10 (210
).
- Kurangkan desimal yang akan dikonversi dengan nilai desimal dari pangkat
dua yang lebih kecil dari bilangan tersebut sehingga, 1359-1024 adalah sama
dengan 335
- Cari bilangan pangkat dua yang lebih kecil atau sama dengan 335 -> 28
= 256.
- Kurangkan 335 dengan 256, 335 – 256 = 79
- Ulangi langkah keempat kita dapatkan pangkat dua yang mendekati adalah 64
shg 79-64 = 5
- Ulangi lagi langkah sebelumnya kita dapat 4, mjd 5-4 = 1- Dari hasil langkah langkah tersebut diatas dilengkapi sampai nilai nomila
terkecil kemudian diurutkan dan kemudian kita susun binernya menjadi
seperti berikut ini
- 210
28
26
24
23
22
21
dan 20
selanjutnya kita urutkan mulai bilangan pangkat dua
terbesar sampai yang terkecil, pangkat dua yang terepresentsi spt hitungan kita
tadi kita urutkan dengan 1 yang terwakili dan 0 tidak terwakili menjadi urutan
bilangan biner seperti ini : 1010101111
BILANGAN HEXADESIMAL
Bilangan Hexadesimal merupakan bilangan dengan orde 16, Dengan urutan
sebagai berikut (paling kiri merupakan MSB dan paling kanan adalah LSB) :
F E D C B A 9 8 7 6 5 4 3 2 1 0. dimana bilangan F adalah 16 dalam orde 10 dan 1111
dalam orde biner. Konversi bilangan dari bilangan biner ke hexadesimal sangat mudah,
bila dibandingkan konversi dari bilangan hexadesimal ke desimal. Cara mengkonversi
bilangan hexadesimal ke biner adalah dengan cara menguraikan bilangan bilangan
hexadesimal tersebut empat bit empat bit sesuai dengan konversi dalam biner. Contoh
bilangan FE16 dalam konversi biner nya adalah F menjadi 11112 dan E menjadi 00012
sehingga FE16 = 111100012.
Cara mengkonversi ke bilangan desimal sama dengan biner Contoh:
3A hexa = (3 * 161) + (10 * 160)
= 48 + 10
= 58 desimal