Instructions Words of the Machine's language More primitive than higher level languages e.g., no sophisticated control flow ° Very restrictive e.g., MIPS Arithmetic Instructions We will be working with the mips instruction set architecture similar to other architectures developed since the 1980s used by NEc, Nintendo, Silicon Graphics, Sony Design goals: maximize performance and minimize cost, reduce design time 北京大学计算机科学技术系 计算机系统结枃教硏室
GÜWÑÇj°_+ ÑÇj+´DÔ ,QVWUXFWLRQV e:RUGVRIWKH0DFKLQH¶V/DQJXDJH e0RUHSULPLWLYHWKDQKLJKHUOHYHOODQJXDJHV HJQRVRSKLVWLFDWHGFRQWUROIORZ e9HU\UHVWULFWLYH HJ0,36$ULWKPHWLF,QVWUXFWLRQV e:HZLOOEHZRUNLQJZLWKWKH0,36LQVWUXFWLRQVHWDUFKLWHFWXUH VLPLODUWRRWKHUDUFKLWHFWXUHVGHYHORSHGVLQFHWKH V XVHGE\1(&1LQWHQGR6LOLFRQ*UDSKLFV6RQ\ 'HVLJQJRDOVPD[LPL]HSHUIRUPDQFHDQGPLQLPL]HFRVW UHGXFHGHVLJQWLPH
MIPS arithmetic All instructions have 3 operands Operand order is fixed ( destination first Example: c code A =B+C MIPS code: add Ss0, Ssl, $s2 associated with variables by compiler) 北京大学计算机科学技术系 计算机系统结枃教硏室
GÜWÑÇj°_+ ÑÇj+´DÔ 0,36DULWKPHWLF e$OOLQVWUXFWLRQVKDYHRSHUDQGV e2SHUDQGRUGHULVIL[HGGHVWLQDWLRQILUVW ([DPSOH &FRGH $ %& 0,36FRGH DGGV VV DVVRFLDWHGZLWKYDULDEOHVE\FRPSLOHU
MIPS arithmetic Design Principle: simplicity favors regularity. Why? of course this complicates some things c code: A=b+C+d: EE F-A MIPS code: add sto, ss1, ss2 add sso, sto, $s3 sub ss4, Ss5, Ss0 Operands must be registers, only 32 registers provided Design Principle: smaller is faster. Why? 北京大学计算机科学技术系 计算机系统结枃教硏室
GÜWÑÇj°_+ ÑÇj+´DÔ 0,36DULWKPHWLF e'HVLJQ3ULQFLSOHVLPSOLFLW\IDYRUVUHJXODULW\ :K\" e2IFRXUVHWKLVFRPSOLFDWHVVRPHWKLQJV &FRGH $ %&' ( ) $ 0,36FRGH DGGW VV DGGV WV VXEV VV e2SHUDQGVPXVWEHUHJLVWHUVRQO\UHJLVWHUVSURYLGHG e'HVLJQ3ULQFLSOHVPDOOHULVIDVWHU :K\"