<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Arjuno84&#039;s</title>
	<atom:link href="http://arjuno84.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://arjuno84.wordpress.com</link>
	<description>cari ilmu dimana saja</description>
	<lastBuildDate>Sun, 20 Jul 2008 08:15:18 +0000</lastBuildDate>
	<language>id</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='arjuno84.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Arjuno84&#039;s</title>
		<link>http://arjuno84.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://arjuno84.wordpress.com/osd.xml" title="Arjuno84&#039;s" />
	<atom:link rel='hub' href='http://arjuno84.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Assembly Tutorial</title>
		<link>http://arjuno84.wordpress.com/2008/07/20/assembly-tutorial/</link>
		<comments>http://arjuno84.wordpress.com/2008/07/20/assembly-tutorial/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 08:15:18 +0000</pubDate>
		<dc:creator>arjuno84</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://arjuno84.wordpress.com/?p=26</guid>
		<description><![CDATA[ready to Start! First of all, we&#8217;ll talk about the registers and then about the instructions to manipulate (change) them. The 8086 has 14 16-bit registers, all with different usage (see below). You might not understand some of the registers purposes, but be patient, I&#8217;ll explain everything later. Segment Registers CS Code Segment 16-bit number [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=26&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;"><a name="ready"></a><span>ready to Start!</span></h2>
<p><strong><span style="font-size:18pt;">F</span></strong>irst of all, we&#8217;ll talk about the registers and then about the instructions to manipulate (change) them. The <strong>8086</strong> has 14 16-bit registers, all with different usage (see below). You might not understand some of the registers purposes, but be patient, I&#8217;ll explain everything later.</p>
<table class="MsoNormalTable" border="0" cellpadding="0">
<tbody>
<tr style="height:96.6pt;">
<td style="width:268pt;height:96.6pt;padding:0.75pt;" width="357">
<table class="MsoNormalTable" style="border:1.5pt outset;" border="1" cellpadding="0">
<tbody>
<tr style="height:13.25pt;">
<td style="width:250.95pt;height:13.25pt;border:1.5pt 1pt 1pt inset 0;padding:0.75pt;" colspan="3" width="335">
<p class="MsoNormal" style="text-align:center;" align="center"><strong>Segment     Registers</strong></p>
</td>
<td style="border-color:0;border-style:none none outset;border-width:medium medium 1pt;" width="7">
<p class="MsoNormal">
</td>
</tr>
<tr style="height:13.25pt;">
<td style="width:52.3pt;height:13.25pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">CS</span></p>
</td>
<td style="width:68.15pt;height:13.25pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Code Segment</p>
</td>
<td style="width:134.45pt;height:13.25pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">16-bit number that points to the active code-segment</p>
</td>
</tr>
<tr style="height:8.9pt;">
<td style="width:52.3pt;height:8.9pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">DS</span></p>
</td>
<td style="width:68.15pt;height:8.9pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Data Segment</p>
</td>
<td style="width:134.45pt;height:8.9pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">16-bit number that points to the active data-segment</p>
</td>
</tr>
<tr style="height:13.25pt;">
<td style="width:52.3pt;height:13.25pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">SS</span></p>
</td>
<td style="width:68.15pt;height:13.25pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Stack Segment</p>
</td>
<td style="width:134.45pt;height:13.25pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">16-bit number that points to the active stack-segment</p>
</td>
</tr>
<tr style="height:13.25pt;">
<td style="width:52.3pt;height:13.25pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">ES</span></p>
</td>
<td style="width:68.15pt;height:13.25pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Extra Segment</p>
</td>
<td style="width:134.45pt;height:13.25pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">16-bit number that points to the active extra-segment</p>
</td>
</tr>
<tr style="height:8.9pt;">
<td style="width:257.95pt;height:8.9pt;border:1pt medium 1pt 1pt inset none inset inset 0;padding:0.75pt;" colspan="4" width="344">
<p class="MsoNormal"><strong>Pointer Registers</strong><span style="font-size:10pt;"></span></p>
</td>
</tr>
<tr style="height:13.25pt;">
<td style="width:52.3pt;height:13.25pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">IP</span></p>
</td>
<td style="width:68.15pt;height:13.25pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Instruction Pointer</p>
</td>
<td style="width:134.45pt;height:13.25pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">16-bit number that points to the offset of the next     instruction</p>
</td>
</tr>
<tr style="height:13.25pt;">
<td style="width:52.3pt;height:13.25pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">SP</span></p>
</td>
<td style="width:68.15pt;height:13.25pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Stack Pointer</p>
</td>
<td style="width:134.45pt;height:13.25pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">16-bit number that points to the offset that the stack     is using</p>
</td>
</tr>
<tr style="height:8.9pt;">
<td style="width:52.3pt;height:8.9pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">BP</span></p>
</td>
<td style="width:68.15pt;height:8.9pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Base Pointer</p>
</td>
<td style="width:134.45pt;height:8.9pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">used to pass data to and from the stack</p>
</td>
</tr>
<tr style="height:13.25pt;">
<td style="width:257.95pt;height:13.25pt;border:1pt medium 1pt 1pt inset none inset inset 0;padding:0.75pt;" colspan="4" width="344">
<p class="MsoNormal"><strong>General-Purpose Registers</strong><span style="font-size:10pt;"></span></p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:52.3pt;height:2.3pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:#00c000;">AX</span></p>
</td>
<td style="width:68.15pt;height:2.3pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Accumulator Register</p>
</td>
<td style="width:134.45pt;height:2.3pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">mostly used for calculations and for input/output</p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:52.3pt;height:2.3pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:#00c000;">BX</span></p>
</td>
<td style="width:68.15pt;height:2.3pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Base Register</p>
</td>
<td style="width:134.45pt;height:2.3pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">Only register that can be used as an index</p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:52.3pt;height:2.3pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:#00c000;">CX</span></p>
</td>
<td style="width:68.15pt;height:2.3pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Count Register</p>
</td>
<td style="width:134.45pt;height:2.3pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">register used for the loop instruction</p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:52.3pt;height:2.3pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:#00c000;">DX</span></p>
</td>
<td style="width:68.15pt;height:2.3pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Data Register</p>
</td>
<td style="width:134.45pt;height:2.3pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">input/output and used by multiply and divide</p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:257.95pt;height:2.3pt;border:1pt medium 1pt 1pt inset none inset inset 0;padding:0.75pt;" colspan="4" width="344">
<p class="MsoNormal"><strong>Index Registers</strong><span style="font-size:10pt;"></span></p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:52.3pt;height:2.3pt;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">SI</span></p>
</td>
<td style="width:68.15pt;height:2.3pt;padding:0.75pt;" width="91">
<p class="MsoNormal">Source Index</p>
</td>
<td style="width:134.45pt;height:2.3pt;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">used by string operations as source</p>
</td>
</tr>
<tr style="height:2.3pt;">
<td style="width:52.3pt;height:2.3pt;border:1pt 1pt 1.5pt inset 0;padding:0.75pt;" width="70">
<p class="MsoNormal"><span style="color:red;">DI</span></p>
</td>
<td style="width:68.15pt;height:2.3pt;border:1pt 1pt 1.5pt inset 0;padding:0.75pt;" width="91">
<p class="MsoNormal">Destination Index</p>
</td>
<td style="width:134.45pt;height:2.3pt;border:1pt 1pt 1.5pt inset 0;padding:0.75pt;" colspan="2" width="179">
<p class="MsoNormal">used by string operations as destination</p>
</td>
</tr>
<p><!--[if !supportMisalignedColumns]--></p>
<tr>
<td style="border:medium none;" width="71"></td>
<td style="border:medium none;" width="93"></td>
<td style="border:medium none;" width="174"></td>
<td style="border:medium none;" width="11"></td>
</tr>
<p><!--[endif]--></tbody>
</table>
<p class="MsoNormal">
</td>
<td style="width:0.7pt;height:96.6pt;padding:0.75pt;" width="1">
<p class="MsoNormal">
</td>
</tr>
</tbody>
</table>
<p><a name="flags"></a><em>(The general purpose registers can be &#8220;split&#8221;. You have the AH and the </em><em>AL</em><em> register for example. AH contains the high byte of AX and </em><em>AL</em><em> contains the lowbyte. You also have: BH, BL, CH, CL, DL, DH So if eg. DX contains the value 1234h DH would be 12h and DL would be 34h).</em> And a 16-bit FLAG Register. All &#8220;flags&#8221; (see below) are stored here. The FLAGS Register consists of 9 status bits. These bits are also called flags, because they can either be <strong>SET</strong> (<strong>1</strong>) or <strong>NOT SET</strong> (<strong>0</strong>). All these flags have a name and purpose.</p>
<table class="MsoNormalTable" border="0" cellpadding="0">
<tbody>
<tr>
<td style="padding:0.75pt;">
<table class="MsoNormalTable" style="width:333pt;" border="1" cellpadding="0" width="444" align="left">
<tbody>
<tr>
<td style="border:medium none;width:330pt;padding:0.75pt;" colspan="4" width="440">
<p class="MsoNormal" style="text-align:center;vertical-align:top;" align="center"><strong>Flags Register</strong></p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center"><strong>Abr.</strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center"><strong>Name</strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center"><strong>bit nº</strong></p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal" style="text-align:center;" align="center"><strong>Description</strong></p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">OF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Overflow Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">11</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">indicates an overflow when <em>set</em></p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">DF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Direction Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">10</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">used for string operations to check direction</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">IF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Interrupt Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">9</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">if <em>set</em>, interrupt are enabled, else disabled</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">TF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Trap Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">8</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">if <em>set</em>, CPU can work in single step mode</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">SF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Sign Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">7</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">if <em>set</em>, resulting number of calculation is     negative</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">ZF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Zero Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">6</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">if <em>set</em>, resulting number of calculation is zero</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">AF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Auxiliary Carry</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">4</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">some sort of second carry flag</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">PF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Parity Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">2</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">indicates even or odd parity</p>
</td>
</tr>
<tr>
<td style="padding:0.75pt;">
<p class="MsoNormal"><strong><span style="color:gray;">CF</span></strong></p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal">Carry Flag</p>
</td>
<td style="padding:0.75pt;">
<p class="MsoNormal" style="text-align:center;" align="center">0</p>
</td>
<td style="width:227.45pt;padding:0.75pt;" width="303">
<p class="MsoNormal">contains the left-most bit after calculations</p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal">
</td>
<td style="padding:0.75pt;"></td>
</tr>
</tbody>
</table>
<p><strong><span style="font-size:18pt;">Test it! </span></strong></p>
<p class="MsoNormal">If you want to see all these register and flags, you can go to DOS and then start &#8220;debug&#8221; (just type debug) When you&#8217;re in debug, just type &#8220;r&#8221; and you&#8217;ll see all the registers and some abreviations for the flags. Type &#8220;q&#8221; to quit again. We won&#8217;t use debug to program in this tutorial, we&#8217;ll use a real assembler. I use TASM 3.2, but MASM or any other assembler works just fine too.</p>
<h2 style="text-align:center;"><a name="memory">Memory Segmentation</a></h2>
<p class="MsoNormal"><strong><span style="font-size:18pt;">N</span></strong>ow I&#8217;ve to explain something about the way the <strong>8086</strong> uses memory (actually about how DOS uses memory). Since the databus of the <strong>8086</strong> is 16-bits, it can move and store 16-bits (1 word=2 bytes) at a time. If the processor stores a &#8220;word&#8221; (16-bits) it stores the bytes in reverse order in the memory. It looks like this:<br />
<strong>1234h </strong><em><strong>(word)</strong></em><strong> &#8212;&gt; memory 34h </strong><em><strong>(byte)</strong></em><strong> 12h </strong><em><strong>(byte)</strong></em></p>
<p>So if the memory looks like this: 78h 56h and you get a word from memory you&#8217;ll get the value 5678h. (note, I use the &#8220;h&#8221; after a number to indicate it&#8217;s hexadecimal) However, if you just get a byte from memory it goes this way: memory 78h 56h &#8212;&#8211;&gt; first byte you get 78h. Okay, pretty clear huh?</p>
<p>Now let&#8217;s talk about segments. The <strong>8086</strong> divides it&#8217;s memory into segments. Segments are (standard in DOS) 64 KB big and have a number. These numbers are stored in the segment registers (see above). Three main segments are the code, data and stack segment. Segments overlap each other almost completely. If you start debug again and type &#8220;d&#8221; you can see some addresses at the left of the screen. The format is like this: 4576:0100. that&#8217;s a memory address. The first number is the segment number and the second number is the offset within the segment. So FFFF:FFF0 means: Segment FFFFh and FFF0h bytes from the beginning of the segment.</p>
<p>As I said before, segments overlap. The address 0000:0010 is <span style="text-decoration:underline;">EXACTLY</span> the same address as 0001:0000. That means that segment begin at paragraph boundaries. (a paragraph=16 bytes, so the segment starts at an address divisible by 16) Now you can start calculating REAL addresses in memory. An example: 0000:0010 means: segment 0000h offset 10h Now we multiply the segment number with 16 and add the offset.<br />
<em>Note that the offset 10h means the value 16 in decimal</em>: <em>(0 * 16 = 0 + 16 = 16)</em> this is the linear address.</p>
<p>Next, the other address 0001:0000: <em>(16 * 1 = 16 + 0 = 16)</em>. Same linear address! Like I told you. These are some basic things you need to know when you want to program in Assembly. Learn the registers and flags by heart and try to understand the segmentation of memory.</p>
<p>By The Way, this segmentation of memory is actually done by DOS at startup. On a <strong>286</strong> or higher, you have something called real-mode and protected-mode. This Segment explanation is based on Real-mode, in Protected-mode it&#8217;s way different, but don&#8217;t bother, that&#8217;s real complicated stuff you don&#8217;t need to know. Just assume that what I explained about segments is ALWAYS true. But remember in the back of your head, that there&#8217;s more&#8230;. Trust me&#8230;&#8230; I know what I&#8217;m talking about.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<h2 style="text-align:center;"><a name="firstprg">Our first program</a></h2>
<p class="MsoNormal"><strong><span style="font-size:18pt;">O</span></strong>ur first program will be a real simple one. I&#8217;ll first give you the code and then I&#8217;ll explain it. Here&#8217;s the code, cut it out and put it in a file called FIRST.ASM. <a href="http://www.xs4all.nl/%7Esmit/exsrc1.zip">Download the source.</a></p>
<table class="MsoNormalTable" border="0" cellspacing="50" cellpadding="0" align="left">
<tbody>
<tr>
<td style="padding:0.75pt;">
<pre> 
.model small
.stack
.data
message<span>   </span>db "Hello world, I'm learning Assembly !!!", "$"

.code

main<span>   </span>proc
<span>   </span>mov<span>   </span>ax,seg message
<span>   </span>mov<span>   </span>ds,ax

<span>   </span>mov<span>   </span>ah,09
<span>   </span>lea<span>   </span>dx,message
<span>   </span>int<span>   </span>21h

<span>   </span>mov<span>   </span>ax,4c00h
<span>   </span>int<span>   </span>21h
main<span>   </span>endp
end main

You can assemble this by typing: "tasm first [enter] tlink first [enter]" or something like: "masm first [enter] link first [enter] You must have an assembler and</pre>
</td>
</tr>
</tbody>
</table>
<p>the link/tlink program. I&#8217;ll explain the code now.</p>
<p><strong><em>.model small</em></strong> : Lines that start with a &#8220;.&#8221; are used to provide the assembler with infomation. The word(s) behind it say what kind of info. In this case it just tells the assembler the program is small and doesn&#8217;t need a lot of memory. I&#8217;ll get back on this later.<br />
<strong><em>.stack</em></strong> : Another line with info. This one tells the assembler that the &#8220;stack&#8221; segment starts here. The stack is used to store temporary data. It isn&#8217;t used in the program, but it must be there, because we make an .EXE file and these files MUST have a stack.<br />
<em><strong>.data</strong></em> : indicates that the data segment starts here and that the stack segment ends there.<br />
<strong><em>.code</em></strong> : indicates that the code segment starts there and the data segment ends there.</p>
<p><strong><em>main proc</em></strong> : Code must be in procedures, just like in C or any other language. This indicates a procedure called main starts here. <strong><em>main endp</em></strong> states that the procedure is finished. Procedures MUST have a start and end. <strong><em>end main</em></strong> : tells the assembler that the program is finished. It also tells the assembler were to start the program. At the procedure called main in this case.</p>
<p><strong><em>message db &#8220;xxxx&#8221;</em></strong> : DB means Define Byte and so it does. In the data-segment it defines a couple of bytes. These bytes contain the information between the brackets. &#8220;Message&#8221; is a name to indentify this byte-string. It&#8217;s called an &#8220;indentifier&#8221;.<br />
<strong><em>mov ax, seg message</em></strong> : AX is a register. You use registers all the time, so that&#8217;s why you had to know about them before I could explain this. MOV is an instruction that moves data. It can have a few &#8220;operands&#8221; (don&#8217;t worry, I&#8217;ll explain these names later) Here the operands are AX and seg message. Seg message can be seen as a number. It&#8217;s the number of the segment &#8220;message&#8221; is in (The data-segment) We have to know this number, so we can load the DS register with it. Else we can&#8217;t get to the bit-string in memory. We need to know WHERE the bit-string is located in memory. The number is loaded in the AX register. MOV always moves data to the operand left of the comma and from the operand right of the comma.</p>
<p><strong><em>mov ds,ax</em></strong> : The MOV instruction again. Here it moves the number in the AX register (the number of the data segment) into the DS register. We have to load this DS register this way (with two instructions) Just typing: &#8220;mov ds,segment message&#8221; isn&#8217;t possible.</p>
<p><strong><em>mov ah, 09</em></strong> : MOV again. This time it load the AH register with the constant value nine.</p>
<p><strong><em>lea dx, message</em></strong> : LEA Load Efective Address. This intructions stores the offset within the datasegment of the bit-string message into the DX register. This offset is the second thing we need to know, when we want to know where &#8220;message&#8221; is in the memory. So now we have DS:DX. See the segment explanation above.</p>
<p><strong><em>int 21h</em></strong> : This instruction causes an Interrupt. The processor calls a routine somewhere in memory. 21h tells the processor what kind of routine, in this case a DOS routine. INT&#8217;s are very important and I&#8217;ll explain more of them later, since they&#8217;re also very, very complex. However, for now assume that it just calls a procedure from DOS. The procedure looks at the AH register to find out out what it has to do. In this example the value 9 in the AH register indicates that the procedure should write a bit-string to the screen.</p>
<p><strong><em>mov ax, 4c00h</em></strong> : Load the Ax register with the constant value 4c00h<br />
<strong><em>int 21h</em></strong> : The same INT again. But this time the AH register contains the value 4ch (AX=4c00h) and to the DOS procedure that means &#8220;exit program&#8221;. The value of AL is used as an &#8220;exit-code&#8221; 00h means &#8220;No error&#8221;</p>
<p>That&#8217;s it!!! You now fully understand this program (I hope)</p>
<p class="MsoNormal">Go to DOS and type &#8220;debug first.exe&#8221;. The debug screen will appear. When you are in the debugger, type &#8220;d&#8221;. You see some addresses and our program.<br />
Now type &#8220;u&#8221; you&#8217;ll see a list that looks like this:</p>
<pre>0F77:0000<span>  </span>B8790F<span>          </span>MOV AX,0F79
0F77:0003<span>  </span>8ED8<span>            </span>MOV DS,AX
0F77:0005<span>  </span>B409<span>            </span>MOV AH,09</pre>
<p class="MsoNormal">First 0F77:0000 is the segment number and offset. B8790F is the machine code of the mov ax,0f79 instruction. B8 means &#8220;mov ax,&#8221; and 790F is the number. (<a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#memory#memory">reversed order</a>) Note that the instruction was: <strong>mov ax,seg message</strong> and the assembler made it <strong>mov ax,0f79</strong> (number might be different at your computer) So that means our data is stored in the segment with the number 0F79.</p>
<p>The other instruction <strong>lea dx,message</strong> turned into <strong>mov dx,0</strong>. So that means that the offset of the bit-string is 0 &#8211;&gt; 0F79:0000. Let&#8217;s look at that address. Type &#8220;d 0f79:0000&#8243; and <span style="text-decoration:underline;">YES</span> our data is there! Look at the right of the screen and you can see the message.<br />
Now let&#8217;s calculate another address for the data. 0F79:0000 substract 2 from the segment number. That would give you 0F77 (the code segment). 0002:0000 &#8211;&gt; 2*16+0=32. Two segments further means 32 bytes further, and that means an offset of 32.</p>
<p><!--[if gte vml 1]&gt;                     &lt;![endif]--><!--[if !vml]--><img src="/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg" alt="Diagram" hspace="10" width="255" height="188" align="right" /><!--[endif]-->So at this location the data is: 0F77:0020. Check by typing &#8220;d 0f77:0020&#8243;. Please note that it&#8217;s the SAME data. We can see it at multiple addresses only because the segments overlap! But in the program we said the data had to be in a data-segment. Remember, the .data instruction? Well, it IS in a data-segment, the data is just stored directly behind the code, but that doesn&#8217;t matter. I mean, we can address the data with a segment number and an offset of zero.</p>
<p>Also note, that after the <strong><em>int 21h</em></strong> instruction to end the program the data doesn&#8217;t immediately start, first there some undefined bytes. (probably zero) That&#8217;s because segments start at paragraph boundaries. The data-segment couldn&#8217;t start at 0F77:0010 anymore, because there is code there, if there wasn&#8217;t any code there, the data-segment would have been: 0F78. So the data-segment has to be 0F79 (closest match) and so, some bytes after the code and before the data just take up space. But that doesn&#8217;t matter. Please remember that the assembler doesn&#8217;t care how the segment are in the .ASM file. In this example we first declared the data-segment, but the assembler puts it last in memory.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal">
<h2 style="text-align:center;"><a name="stack">The Stack</a></h2>
<p class="MsoNormal"><strong><span style="font-size:18pt;">T</span></strong>he stack is a place where data is temporarily stored. The SS and SP registers point to that place like this: SS:SP So the SS register is the segment and the SP register contains the offset. There are a few instructions that make use of the stack. POP and PUSH are the most basic ones. PUSH can &#8220;push&#8221; a value on the stack and POP can retrieve that value from the stack. It works like this:</p>
<table class="MsoNormalTable" style="width:240.3pt;" border="0" cellspacing="30" cellpadding="0" width="320">
<tbody>
<tr style="height:34.4pt;">
<td style="height:34.4pt;padding:0.75pt;">
<pre><strong><span style="font-family:&quot;"> </span></strong>
<strong><span style="font-family:&quot;"> MOV<span>   </span>AX,1234H</span></strong>
<strong><span style="font-family:&quot;"> PUSH<span>  </span>AX</span></strong>
<strong><span style="font-family:&quot;"> MOV<span>   </span>AH,09</span></strong>
<strong><span style="font-family:&quot;"> INT<span>   </span>21H</span></strong>
<strong><span style="font-family:&quot;"> POP<span>   </span>AX</span></strong></pre>
</td>
<td style="height:34.4pt;padding:0.75pt;">
<pre><strong><span style="font-family:&quot;"> </span></strong>
<strong><span style="font-family:&quot;"> MOV<span>   </span>AX, 1234H</span></strong>
<strong><span style="font-family:&quot;"> MOV<span>   </span>BX, 5678H</span></strong>
<strong><span style="font-family:&quot;"> PUSH<span>  </span>AX</span></strong>
<strong><span style="font-family:&quot;"> POP<span>   </span>BX</span></strong></pre>
</td>
<td style="height:34.4pt;padding:0.75pt;">
<p class="MsoNormal">The final values will be: AX=1234h BX=1234h. We pushed the   AX to the stack and we popped that value in BX. &lt;/TD&lt; TR&gt;</p>
</td>
</tr>
<tr style="height:34.4pt;">
<td style="height:34.4pt;padding:0.75pt;">
<pre><strong><span style="font-family:&quot;"> </span></strong>
<strong><span style="font-family:&quot;"> </span></strong></pre>
</td>
<td style="height:34.4pt;padding:0.75pt;">
<pre><strong><span style="font-family:&quot;"> </span></strong></pre>
</td>
<td style="height:34.4pt;padding:0.75pt;">
<p class="MsoNormal">
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal">As in <a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#firstprg#firstprg">the first program</a>, you have to define a stack segment. It is easy done by the instruction <strong>.stack</strong> that will create a stack of 1024 bytes. Yes, there&#8217;s more about the stack than just this. The stack usses a LIFO system (Last In First Out) Another example:</p>
<table class="MsoNormalTable" style="width:294.8pt;" border="0" cellspacing="30" cellpadding="0" width="393">
<tbody>
<tr style="height:61.4pt;">
<td style="height:61.4pt;padding:0.75pt;">
<pre><span> </span>MOV<span>   </span>AX,1234H
 MOV<span>   </span>BX, 5678H
 PUSH<span>  </span>AX
 PUSH<span>  </span>BX
 POP<span>   </span>AX
 POP<span>   </span>BX</pre>
</td>
<td style="height:61.4pt;padding:0.75pt;">
<p class="MsoNormal">The values: AX=5678h BX=1234h First the value 1234h was   pushed after that the value 5678h was pushed to the stack. Acording to LIFO   5678h comes of first, so AX will pop that value and BX will pop the next.</p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal">The final value of AX will be 1234h. First we load 1234h into AX, then we push that value to the stack. We now store 9 in AH, so AX will be 0934h and execute an INT. Then we pop the AX register. We retreive the pushed value from the stack. So AX contains 1234h again. Another example:</p>
<p class="MsoNormal">
<p class="MsoNormal">How does the stack look in memory? Well, it &#8220;grows&#8221; downwards in memory. When you push a word (2 bytes) for example, the word will be stored at SS:SP and SP will be decreased to times. So in the beginning SP points to the top of the stack and (if you don&#8217;t pay attention) it can grow so big downwards in memory that it overwrites the source code. Major system crash is the result.</p>
<h2 style="text-align:center;"><a name="names">Names</a></h2>
<p class="MsoNormal"><strong><span style="font-size:18pt;">T</span></strong>here are some names you need to know. Well, you don&#8217;t HAVE to know them, but it&#8217;s handy if you do. I&#8217;ll use these names from now on, so better learn them.</p>
<table class="MsoNormalTable" border="1" cellpadding="0">
<tbody>
<tr>
<td style="padding:11.25pt;">
<p class="MsoNormal"><strong>Indentifiers</strong></p>
</td>
<td style="width:276pt;padding:11.25pt;" width="368">
<p class="MsoNormal">An identifier is a name you aply to items in your program.   the two types of indetifiers are &#8220;name&#8221;, wich refers to the address   of a data item, and &#8220;label&#8221;, wich refers to the address of an   instruction. The same rules aply to names and labels.</p>
</td>
</tr>
<tr>
<td style="padding:11.25pt;">
<p class="MsoNormal"><strong>Statements</strong></p>
</td>
<td style="width:276pt;padding:11.25pt;" width="368">
<p class="MsoNormal">A program is made of a set of statements, there are two   types of statements, &#8220;instructions&#8221; such as MOV and LEA, and   &#8220;directives&#8221; wich tell the assembler to perform a specific action,   like &#8220;.model small&#8221;</p>
</td>
</tr>
</tbody>
</table>
<p>Here&#8217;s the general format of a statement:<br />
<em>indentifier &#8211; operation &#8211; operand(s) &#8211; comment</em></p>
<p>The <em>identifier</em> is the name as explained above.<br />
The <em>operation</em> is an instruction like MOV.<br />
The <em>operands</em> provide information for the Operation to act on. Like MOV (operation) AX,BX (operands).<br />
The <em>comment</em> is a line of text you can add as a comment, everything the assembler sees after a &#8220;;&#8221; is ignored.</p>
<p>So a complete instruction looks like this: <strong></strong></p>
<pre><strong>MOVINSTRUCTION:<span>      </span>MOV<span>   </span>AX,BX<span>   </span>;this is a MOV instruction</strong></pre>
<p>The label and the comment are optional. In fact I allready explained directives , but, okay, I&#8217;ll do it again. Directives provide the assembler with information on how to assemble a .ASM file. <strong><em>.MODEL SMALL</em></strong>, or <em><strong>.CODE</strong></em> are, for example, directives.</p>
<p>And so we have come to the end of Section 1 of this tutorial. If you fully understand this stuff (<a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#ready#ready">registers</a>, <a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#flags#flags">flags</a>, <a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#memory#memory">segments</a>, <a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#stack#stack">stack</a>, <a href="http://www.xs4all.nl/%7Esmit/asm01001.htm#names#names">names</a>, etc.) you may, from now on, call yourself a &#8220;<em>Level 0 Assembly Coder</em>&#8220;. Congratulations!</p>
<p>In Part 2 I&#8217;ll explain some more instructions and I&#8217;ll explain how to address data yourself.<br />
<strong><em>(MOV BYTE PTR ES:[DI],AL)</em></strong><br />
I&#8217;ll also explain the Interrupts and interrupt table.</p>
<p class="MsoNormal">
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/arjuno84.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/arjuno84.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arjuno84.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arjuno84.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arjuno84.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arjuno84.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arjuno84.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arjuno84.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arjuno84.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arjuno84.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=26&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arjuno84.wordpress.com/2008/07/20/assembly-tutorial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee5bb975fa5569f230155d2c82ae9f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arjuno84</media:title>
		</media:content>

		<media:content url="/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg" medium="image">
			<media:title type="html">Diagram</media:title>
		</media:content>
	</item>
		<item>
		<title>Mengenal perintah-perintah dasar DOS</title>
		<link>http://arjuno84.wordpress.com/2008/07/14/mengenal-perintah-perintah-dasar-dos/</link>
		<comments>http://arjuno84.wordpress.com/2008/07/14/mengenal-perintah-perintah-dasar-dos/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 01:21:38 +0000</pubDate>
		<dc:creator>arjuno84</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Artikel]]></category>

		<guid isPermaLink="false">http://arjuno84.wordpress.com/?p=24</guid>
		<description><![CDATA[cd Pindah directory contoh : cd windows, untuk pindah ke directory windows copy Meng-copy file copy file1.txt filebaru.txt Meng-copy file1.txt, nama file hasil copy-an adalah filebaru.txt. Jadi akan terdapat file1.txt dan filebaru.txt dengan isi yang sama. Ganti file1.txt dan filebaru.txt dengan nama file yang akan Anda copy copy file1.txt c:\data Mengcopy file1.txt ke directory data [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=24&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#ffffff">
<tbody>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">cd</span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Pindah                                            directory<br />
contoh : cd windows, untuk pindah ke                                            directory windows </span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">copy</span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Meng-copy                                            file</span></td>
</tr>
<tr>
<td width="38%" height="54" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">copy                                            file1.txt filebaru.txt</span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Meng-copy                                            file1.txt, nama file hasil copy-an adalah                                            filebaru.txt. Jadi akan terdapat file1.txt                                            dan filebaru.txt dengan isi yang sama.                                            Ganti file1.txt dan filebaru.txt dengan                                            nama file yang akan Anda copy </span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">copy                                            file1.txt c:\data</span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Mengcopy                                            file1.txt ke directory data pada drive                                            C (nama file hasil copy-an adalah file1.txt)</span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">copy                                            file1.txt c:\data\filebaru.txt</span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Meng-copy                                            file1.txt ke directory data dengan nama                                            file hasil copy-an filebaru.txt</span></td>
</tr>
<tr>
<td width="38%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">dir</span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Menampilkan                                            file dan directory</span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">dir                                            a: </span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Menampilkan                                            file dan directory pada drive A</span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">dir                                            /p </span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Menampilkan                                            file dan directory per halaman. Perintah                                            ini sangat berguna bila terdapat file                                            dan directory yang banyak.</span></td>
</tr>
<tr>
<td width="38%" height="48" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">dir                                            /w </span></td>
<td width="62%" height="48"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Menampilkan                                            file dan directory secara &#8220;singkat&#8221;                                            (cuma menampilkan nama file atau directory                                            saja, tidak ada keterangan ekstensi,                                            ukuran file, tanggal dan jam)</span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">ren </span></td>
<td width="62%"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Mengganti                                            nama file</span></td>
</tr>
<tr>
<td width="38%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">ren                                            filelama.txt filebaru.txt</span></td>
<td width="62%" valign="top"><span style="font-size:x-small;font-family:Verdana,Arial,Helvetica;">Mengganti                                            nama file filelama.txt menjadi filebaru.txt</span></td>
</tr>
</tbody>
</table>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/arjuno84.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/arjuno84.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arjuno84.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arjuno84.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arjuno84.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arjuno84.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arjuno84.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arjuno84.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arjuno84.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arjuno84.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=24&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arjuno84.wordpress.com/2008/07/14/mengenal-perintah-perintah-dasar-dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee5bb975fa5569f230155d2c82ae9f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arjuno84</media:title>
		</media:content>
	</item>
		<item>
		<title>Membuka Password Xp</title>
		<link>http://arjuno84.wordpress.com/2008/06/23/membuka-password-xp/</link>
		<comments>http://arjuno84.wordpress.com/2008/06/23/membuka-password-xp/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 11:02:01 +0000</pubDate>
		<dc:creator>arjuno84</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://arjuno84.wordpress.com/?p=22</guid>
		<description><![CDATA[Membuka Password Log on Windows XP Sebenarnya, untuk membobol password log on pada Windows XP tidak diperlukan software khusus. Ada cara yang sangat sederhana untuk melakukannya. Kita hanya pelu melakukan langkah-langkah sebagai berikut: * Hidupkan komputer. * Jika sudah, tekan F8. Maka akan masuk ke mode select. pilih safe mode, lalu tunggu beberapa saat. * [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=22&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Membuka Password Log on Windows XP</p>
<p>Sebenarnya, untuk membobol password log on pada Windows XP tidak diperlukan software khusus. Ada cara yang sangat sederhana untuk melakukannya. Kita hanya pelu melakukan langkah-langkah sebagai berikut:</p>
<p>* Hidupkan komputer.<br />
* Jika sudah, tekan F8. Maka akan masuk ke mode select. pilih safe mode, lalu tunggu beberapa saat.<br />
* Tekan Ctrl + Alt + Del Maka akan muncul form Log on dan Password.<br />
* Isi log on dengan Administrator dan masukkan password semau anda.<br />
* Jika telah melakukan hal di atas, restart kembali komputer anda.<br />
* Pilihlah start in normaly windows.<br />
* Tekan kembali Ctrl + Alt + Del .<br />
* Ketikkan nama logonnya Administrator terus password yang baru anda ubah tadi.</p>
<p>Kalaucara diatas masih kurang manjur, masih ada cara cadangan:</p>
<p>* Hidupkan komputer, lalu masuk ke safe mode (tekan F8 saat booting),<br />
* Masuk ke System dengan akun yang tidak terpassword, bisa Guest atau akun lain,<br />
* Klik Start &#8211; Control Panel &#8211; Account Setting,<br />
* Pilih account Administrator, maka anda akan melihat pilihan Remove Password …<br />
* Silakan dilanjutkan</p>
<p>Mudah kan Semoga berguna dan bermanfaat bagi and yang mencoba.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/arjuno84.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/arjuno84.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arjuno84.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arjuno84.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arjuno84.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arjuno84.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arjuno84.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arjuno84.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arjuno84.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arjuno84.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=22&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arjuno84.wordpress.com/2008/06/23/membuka-password-xp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee5bb975fa5569f230155d2c82ae9f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arjuno84</media:title>
		</media:content>
	</item>
		<item>
		<title>Melindungi Data Penting</title>
		<link>http://arjuno84.wordpress.com/2008/06/23/melindungi-data-penting/</link>
		<comments>http://arjuno84.wordpress.com/2008/06/23/melindungi-data-penting/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 10:25:24 +0000</pubDate>
		<dc:creator>arjuno84</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://arjuno84.wordpress.com/?p=11</guid>
		<description><![CDATA[Saat anda bekerja di kantor dengan data yang penting, anda mungkin tidak ingin data tersebut dikopi oleh pihak yang tidak bertanggung jawab. berbagai cara dilakukan mulai dari meniadakan CD Writer, USB Drive, bahkan ada yang melakukan cara ekstrim dengan menutup/ mencabut konektor USB. Masalah datang saat kita ingin mengkopi data dari USB Drive, kita akan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=11&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Saat anda bekerja di kantor dengan data yang penting, anda mungkin tidak ingin data tersebut<br />
dikopi oleh pihak yang tidak bertanggung jawab. berbagai cara dilakukan mulai dari meniadakan<br />
CD Writer, USB Drive, bahkan ada yang melakukan cara ekstrim dengan menutup/ mencabut konektor USB.<br />
Masalah datang saat kita ingin mengkopi data dari USB Drive, kita akan kesulitan bahkan mungkin tidak bisa melakukannya. Sebenarnya ada cara yang lebih mudah dan aman. Ingin tahu, berikut beberapa tips yang saya kumpulkan.<br />
1. Seting USB ke Read Only<br />
Tips ini hanya dapat dijalankan di Windows XP dengan SP 2 terinstall.<br />
a. Pertama-tama buka Registry Editor.<br />
b. Lalu tuju ke key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies. Bila key ini belum ada, anda bisa membuatnya.<br />
c. Buat DWORD value baru bernama WriteProtect.<br />
d. Beri nilai “1″.<br />
e. Restart komputer untuk melihat perubahannya.<br />
Sekarang, tiap kali anda mencoba menulis data pada USB Drive, anda akan diberi peringatan Unable to create file seperti di bawah ini.<br />
Peringatan pada USB Drive</p>
<p>2. Meniadakan fitur Burning<br />
Memang bijaksana menyediakan CD Writer di kantor, namun resiko pencurian dara semakin besar. Untuk itu, tiadakan saja fitur burning dari Windows. Caranya:<br />
a. Klik Start &#8211; Run &#8211; ketik gpedit.msc (tidak ada di Windows XP Home Edition).<br />
b. Tuju ke User Configuration &#8211; Administrative Templates &#8211; Windows Explorer. Pada SP 2 lokasinya berada di Group Policy &#8211; User Configuration &#8211; Windows Components &#8211; Windows Explorer.<br />
c. Cari “Remove CD Burning Features” lalu klik 2 kali.<br />
d. Pilih ENABLED dan apply.<br />
e. Restart Komputer.</p>
<p>3. Matikan fitur Sharing dari Shared Documents.<br />
Jika anda jeli, sebenarnya tiap user dalam Windows XP diberikan folder khusus yang bernama Shared Documents. File yang anda letakkan di folder ini akan dapat diakses oleh tiap user yang logon. Untuk menghilangkan fitur ini, ikuti langkah dibawah ini.<br />
a. Buka Registry Editor, lalu tuju ke HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer<br />
\MyComputer\NameSpace\DelegateFolders.<br />
b. Cari key {59031a47-3f72-44a7-89c5-5595fe6b30ee}. Jika sudah ditemukan, hapus saja.<br />
c. Restart komputer.</p>
<p>4. Cegah User Logon sesudah jam kerja. (Win NT dan 200 saja)<br />
Anda bisa mengatur waktu logon sesuai jam kerja di kantor. Tips ini hanya bisa dilakukan pada komputer yang terhubung dengan jaringan dan menjadi bagian dari sebuah domain. Caranya:<br />
a. Buka Command Prompt. Caranya klik Start &#8211; Run &#8211; cmd.<br />
Perintah untuk pengaturan user adalah net user. Contoh:<br />
net user bangbambang /time:S-F,08:00-16:00 (user bangbambang hanya bisa logon pada Senin sampai Jum’at (Sunday-Friday), pada pukul 08:00 sampai 16:00.<br />
net user bangbambang /time:S-F,8am-4pm (sama seperti pengaturan diatas).<br />
net user bangbambang /time:M,4am-5pm;T,1pm-3pm;W-F,8:00-17:00 (pada contoh ini, waktu tiap hari ditentukan secara spesifik.</p>
<p>5. Mencegah User Logon sebagai Admin dengan Auto Logon<br />
Saat startup, secara default anda akan ditanya username dan password. Anda bisa melewatkan bagian ini dan mengatur Windows agar logon dengan username dan account yang telah anda tentukan.<br />
a. Pertama-tama buat akun baru sebagai default account, atau anda bisa menggunakan akun yang sudah ada (disarankan bukan akun Administrator). Beri password bila perlu. Tapi password ini tidak akan bergunakarena anda akan logon secara otomatis.<br />
b. Buka Registry Editor, lalu tuju ke HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon.<br />
c. Buat 4 value REG_SZ baru masing dengan nama DefaultUserName, DefaultPassword, AutoAdminLogon, dan DefaultDomainName.<br />
d. Untuk DefaultUserName, DefaultPassword, dan DefaultDomainName masukkan nilai sesuai seting anda.<br />
e. Untuk AutoAdminLogon beri nilai 1.<br />
f. Restart komputer, maka anda akan logon secara otomatis.</p>
<p>Demikian beberapa tips yang dapat saya berikan. Semoga bermanfaat bagi anda yang sering kecolongan.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/arjuno84.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/arjuno84.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arjuno84.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arjuno84.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arjuno84.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arjuno84.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arjuno84.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arjuno84.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arjuno84.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arjuno84.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=11&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arjuno84.wordpress.com/2008/06/23/melindungi-data-penting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee5bb975fa5569f230155d2c82ae9f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arjuno84</media:title>
		</media:content>
	</item>
		<item>
		<title>Selamat Datang Di jymmy</title>
		<link>http://arjuno84.wordpress.com/2008/06/01/selamat-datang-di-jymmy/</link>
		<comments>http://arjuno84.wordpress.com/2008/06/01/selamat-datang-di-jymmy/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 00:20:35 +0000</pubDate>
		<dc:creator>arjuno84</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Selamat Datang Blog spot ane silakan menikmati layanan ane,jika adasaran atau kritik silakan isi koment<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=1&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Selamat Datang Blog spot ane silakan menikmati layanan ane,jika adasaran atau kritik silakan isi koment</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/arjuno84.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/arjuno84.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/arjuno84.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/arjuno84.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/arjuno84.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/arjuno84.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/arjuno84.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/arjuno84.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/arjuno84.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/arjuno84.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=arjuno84.wordpress.com&amp;blog=3866738&amp;post=1&amp;subd=arjuno84&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://arjuno84.wordpress.com/2008/06/01/selamat-datang-di-jymmy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee5bb975fa5569f230155d2c82ae9f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arjuno84</media:title>
		</media:content>
	</item>
	</channel>
</rss>
