<?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/"
	>

<channel>
	<title>ploysics &#187; 2.52</title>
	<atom:link href="http://www.ploysics.com/tag/252/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ploysics.com</link>
	<description>s o m e s t r i n g</description>
	<lastBuildDate>Wed, 23 Jun 2010 09:52:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
  <link>http://www.ploysics.com</link>
  <url>http://www.ploysics.com/files/favicon.ico</url>
  <title>ploysics</title>
</image>
		<item>
		<title>The architecture styles</title>
		<link>http://www.ploysics.com/the-architecture-styles/</link>
		<comments>http://www.ploysics.com/the-architecture-styles/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 07:24:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Computer Article]]></category>
		<category><![CDATA[2.52]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[styles]]></category>

		<guid isPermaLink="false">http://garnet.cpe.ku.ac.th/~b4905112/blog/?p=85</guid>
		<description><![CDATA[ตามเอกสาร IMD2-Instruction-Set-Styles.pdf  มีดังนี้

Accumulator
Memory-memory
Stack
Load-store
ถ้าเราต้องการเขียน a = b + c จะสามารถเขียนตามแต่ละ  architecture styles ได้ดังนี้


Accumulator Architectures

 Instruction set
add A, sub A, mult A, div A, . . .
load A, store A
Example
load   AddressB       # Acc = Memory[AddressB], or Acc ...]]></description>
			<content:encoded><![CDATA[<p>ตามเอกสาร IMD2-Instruction-Set-Styles.pdf  มีดังนี้</p>
<ol>
<li>Accumulator</li>
<li>Memory-memory</li>
<li>Stack</li>
<li>Load-store<span style="color: #99cc00;"><strong><br />
ถ้าเราต้องการเขียน<span style="color: #000000;"> a = b + c</span> จะสามารถเขียนตามแต่ละ  architecture styles ได้ดังนี้</p>
<p></strong></span><span id="more-60"></span></li>
</ol>
<h3><strong>Accumulator Architectures</strong></h3>
<ul>
<li> <strong>Instruction set</strong><br />
<span style="color: #808080;">add A, sub A, mult A, div A, . . .<br />
load A, store A</span></li>
<li><strong>Example</strong><br />
load   AddressB       # <span style="color: #800000;">Acc</span> = Memory[AddressB], or <span style="color: #800000;">Acc</span> = B<br />
add    AddressC       # <span style="color: #800000;">Acc</span> = B + Memory[AddressC],or <span style="color: #800000;">Acc</span> = B + C<br />
store AddressA       # Memory[AddressA] = <span style="color: #800000;">Acc</span>, or A = B + Cจะเห็นว่า แต่ละคำสั่งมีแค่ OP(load,add,store) + Memory Address(A,B,C)โดยทุกการกระทำ<strong> จะถูกทำผ่าน ตัว <span style="color: #800000;">Acc</span> เพียงตัวเดียว</strong><br />
สมมติ (แค่สมมติ)  เขียน asm ปกติ แต่มี register แค่ตัวเดียว ประมาณนั้น</li>
</ul>
<h3><strong>Memory-Memory Architectures</strong></h3>
<ul>
<li><strong>Instruction set<br />
</strong><span style="color: #808080;">(3 operands)    add A, B, C    sub A, B, C     mul A, B, C</span></li>
<li><strong>Example</strong><br />
add        AddressA , AddressB , AddressCจะเห็นว่า คำสั่งถ้าทำแบบ memory-memory แล้ว <strong>จะสั่งผ่าน MemoryAddress โดยตรงเลย</strong></li>
</ul>
<h3><strong>Load-Store Architectures</strong></h3>
<ul>
<li><strong>Instruction set<br />
</strong><span style="color: #808080;">add R1,  R2, R3     sub R1, R2, R3     mul R1, R2, R3<br />
load R1, R4           store R1, R4</span><strong><br />
</strong></li>
<li><strong>Example<br />
</strong>load     R1, AddressC<br />
load     R2, AddressB<br />
add      R3, R1, R2<strong><br />
</strong>store    R3 , AddressAจะเห็นว่า<strong> memory address จะถูก load </strong>ใส่ใน register ก่อน<br />
จากนั้นค่อย ทำการ บวก ผ่าน register <strong>หลังจากนั้นค่อย store ค่าใส่ไปยัง Memory Address (A)</strong></li>
</ul>
<h3><strong>Stack Instructions</strong></h3>
<ul>
<li><strong>Instruction set<br />
</strong><span style="color: #808080;">add, sub, mult, div, . . .<br />
push A , pop A</span></li>
<li><strong>Example<br />
</strong>push AddressC                   # Top=Top+4;Stack[Top]=Memory[AddressC]<br />
push AddressB                   # Top=Top+4;Stack[Top]=Memory[AddressB]<br />
add                                     # Stack[Top–4]=Stack[Top]  + Stack[Top–4];Top=Top–4;<br />
pop   AddressA                  # Memory[AddressA]=Stack[Top];<br />
#  Top=Top–4;<br />
จะเห็นว่า <strong>คำสั่งจะถูกทำผ่าน stack</strong><br />
การ add (บวก) ก็จะเข้าไปทำในตัวที่ stack pointer ชื้อยู่ กับตัวด้านล่าง <strong> </strong>stack pointer<br />
แล้วนำค่ามาเก็บ  เป็นตัวที่  stack pointer ชื้อันใหม่</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ploysics.com/the-architecture-styles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
