SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode:...

13
opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File ....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program Counter Stack Program PC = 0; Loc = 0; } while (! EOF) Loc++; Program[Loc] = Instruction object; Create Instruction object for command; Read a command from file; do{ SaM while (HALT == 0){ Execute Program[PC]; } Interpreter: Loader: Reboot HALT 0 Stack Pointer FBR HP Object implements SaMmy Instruction ISaM I_Interface

Transcript of SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode:...

Page 1: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

� ��� ��� ����

� � �� � �

� ���� ����� � � �� ��� � �� �� � ��� ��� � � ������ ��� �

� ��� ���� ��� �� � !

"� ����# � ��� �� �� � �$ �%� ��� ��% ��� ��� ��� �&� !� ��

�� ��� �& �� � ���� ���� �� �&�# � ����� � �� �� �& !

'

opcode: TIM

ES

opcode: PUSH

IMM

operand: 5opcode: PU

SHIM

M

operand: 7

File.......TIMES

STOP

PUSHIMM 7

PUSHIMM 5

2

01

23

23

0

Program C

ounterStack

Program

PC =

0;L

oc = 0;

} while (! E

OF)

Loc+

+;

Program[L

oc] = Instruction object;

Create Instruction object for com

mand;

Read a com

mand from

file;do{SaM

while (H

AL

T =

= 0){

Execute Program

[PC];

}

Interpreter:L

oader:

Reboot

HA

LT

0

Stack Pointer

FBR

HP

(

)�� ���� �*,+-,.� � � ������ �� & +��� ���� �� �

Object

implem

ents

SaM

my

Instruction

ISaM

I_Interface

/

Page 2: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

0123 4567389 6 :;

<<= 3223 46 1>?3223 4@32 AB>?

CB 0>?32 DEFG 012CHI

012= 32 DEFGHI

CB 0>?32 JKG 012CHI

012= 32 JKGHI

CB 0>?329 JG 012CHI

012= 329 JGHI

CB 0>?329 267 LMN3 @3 12G 0126O 012CHI << 9 267 LP 6Q,RCI

012= 329 267 LMN3 @3 12G 0126HI << 432S 419 267 LP 6Q

<< 7B 1C3 103 12?3223 46 1>= 3223 4@32 AB>?

CB 0>T S? AG 012CHI

012T BT GHI

CB 0> 017 JKGHI

U

VV WXYZ\[]X Y^_^

`X ab Y_cXXdefg

ahd iXjbe k d Yahl ^fg VV ahm nd opai_ hj q_r Y_dn Yh^ hn qc_ YX psX qqj hb^ iXjb_b

`X ab^dj Ydefg VV ^dj Yd_ t_snd aX h

`X abbn qm k djd_efg VVm YahdXnd Y_l a^d_ Y^j hb^djs ZsX hd_ hd^

uuuuuuVV Xd ]_ Yq_d ]Xb^W_W aii^__ ijd_ Y

v

w

0123 456738x 81?2 4S72 0B 1;

CB 0>3 y37S23G 9 6 :@67 A013HI

z

{

)�� ���� �*,+- ��� ��� ��� �� � � ��� ���� �.

7 N6??9 0@S N62B 4;<< @6 017 N6??

||||z7 N6??

9 6 :@} 0@T N3 @3 12?89 6 :;

|||z7 N6??81?2 4S72 0B 10@T N3 @3 12?8x 81?2 4S72 0B 1;

|||z

~

Page 3: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

7 N6??9 0@S N62B 4;

T S�N07?262 07CB 0> @6 01G 9 2 401= PQ 6 4= H;

05G 6 4= |N3 1= 2 A RR�H;

9} ?23 @|BS2 |T 4012 N1G��?6 @50N3@S?2�37B @@6 1> N0136 4= S @3 12 �HI

432S 41I z

89 6 :9 S @62 46 R13�9 6 :@} GHI << :} @67 A0130?76 NN3>9 S @62 46

012T 9 0�3 R9 S @62 46 |NB6>G 6 4= P �QHI

9 S @62 46 |?26 42GHI

9 S @62 46 |>S @T 9 2623GHI

zz

7 N6??81?2 4S72 0B 10@T N3 @3 12?8x 81?2 4S72 0B 1;

T 40C6239 2 401= BT 7B>3I

T 40C623012BT 3 46 1>I << BT 2 0B 16 N

T S�N0781?2 4S72 0B 1G K9 ���815H;

<< 436>B 137B @@6 1> 54B @50N36 1> @6 L381?2 4S72 0B 1

zT S�N079 2 401= 2B9 2 401= GH;

<< 432S 41?2 401= 43T 43?3 12 01= 7B @@6 1>

zT S�N07CB 0>3 y37S23G 89 6 :@67 A013H;

<< 3 y37S2301?2 4S72 0B 1

zz

T S�N0781?2 4S72 0B 1G K9 ���81015H;

<< 436> 0101?2 4S72 0B 154B @50N3

BT 7B>3 R015|� 32�B 4>GHI

05G BT 7B>3 |3� S6 N?G��J�9 �8:: �H B 4BT 7B>3 |3� S6 N?G���� :J �H B 4|||H

BT 3 46 1> R015|� 32 812GHI

zT S�N079 2 401= 2B9 2 401= GH;

05GG BT 7B>3 |3� S6 N?G��J�9 �8:: �H B 4BT 7B>3 |3� S6 N?G���� :J �H B 4||H

432S 41G BT 7B>3 ����BT 3 46 1> ��� 1 �HI

3 N?3432S 41BT 7B>3 ��� 1 �I z

z

T S�N07CB 0>3 y37S23G 89 6 :@67 A013H;

05G BT 7B>3 |3� S6 N?G����� �HH;

012BT � R@67 A013 |T BT GHI

012BT � R@67 A013 |T BT GHI

@67 A013 |T S? AG BT � �BT �HI

@67 A013 |017 JKGHI

z

3 N?305G BT 7B>3 |3� S6 N?G��J�9 �8:: �H;

||||||||<< B2 A3 4BT 7B>3?

z

'

Page 4: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

7 N6??9 6 :@} 0@T N3 @3 12?89 6 :;

T 4B23723> 012 JKO DEFO 9 JO �JO ����I

T 4B23723> 8x 81?2 4S72 0B 1PQ J4B= 46 @ R13�8x 81?2 4S72 0B 1P ���QI

T 4B23723> 012PQ 9 267 LR13�012P ���QI

T S�N07012 NB6>G 9 2 401= J4B= 46 @D0N3H;

<< �B6> 0101?2 4S72 0B 1? 54B @J4B= 46 @D0N36 1>?2B 4301J4B= 46 @

K9 ���81015 R13�K9 ���81G J4B= 46 @D0N3HI << 7 4362301T S2 @6 16= 3 4

012 �K R�I << �K 0?� A3 43 13 y2 01?2 4S72 0B 1? ABS N>�3T S2

� A0N3G 015|T 33 L�2 �01>GH � R015|M� DH

; J4B= 46 @P �KQ R13�81?2 4S72 0B 1G 015HI

�K ��I

z015|7 NB?3GHI

432S 41�KI z

|||z

(

7 N6??9 6 :@} 0@T N3 @3 12?9 6 :;

|||T S�N07CB 0>?26 42GH;

<< My37S2301?2 4S72 0B 1??26 42 01= 62 J4B= 46 @P �Q

���� R�I

JK R�I

>B;J4B= 46 @P JKQ |3 y37S23G 2 A0?HI

z� A0N3G ���� RR�HI

z|||

z

/

� ��� �� � � ��� ��� �� �.

)&& ��� � ��� ��� �& �� � �� �� ��� �%� �� �� �� � ��&� ��� �

�h^d Ynsd aX h� ���� .�� ��� ����� �# ��� � ���� # � ��� # !!!

�� ��$ ��$ �� �� �&� � ��& ������ ���&�� �� � �� ��� �&� !

+�$ ��� ��� � ����� ��� ���& #$ ����� ����� ��� ��� �� ����

�� �  �� �� �� ��� ¡¡

U

�&� �� ��� ��� �� �.¢� £�¢ ¤¥¦§+�¨

© � � � �� �� ��� ��& %$ ����� �� ����!

)&& ��� � ��� ��& ��&& ��� � �� ������� ��� �� �¡

ª���� �� �� ������ � & �« � ���$ � �� ����� ���� �� �� ���� §��� �� �

� ���$ ��� � ¬

)��� �.� ������ ���� �� �� ���� � ��� � � �� ++��� ���� �� �¡

ª��� ��$ # �$ � � �§��� �� �����h^d Ynsd aX h¡

w

Page 5: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

)�� ���� �*,++-,.� � � ����� ��� ��� �&

PU

SH

IMM

InstJU

MP

Inst ......

AD

DInst

SU

BInst

ST

OP

Inst........

Object

InstructionS

aMm

y

I_InstructionIS

aM

{

7 N6??���81?2 0@T N3 @3 12?8x 81?2 4S72 0B 1;

T S�N079 2 401= 2B9 2 401= GH;

432S 41 ���� �I

zT S�N07CB 0>3 y37S23G 9 6 :@67 A013H;

012BT � R@67 A013 |T BT GHI

012BT � R@67 A013 |T BT GHI

@67 A013 |T S? AG BT � �BT �HI

@67 A013 |017 JKGHI

zz

~

7 N6??9� E81?2 0@T N3 @3 12?8x 81?2 4S72 0B 1;

T S�N079 2 401= 2B9 2 401= GH;

432S 41 �9� E �I

zT S�N07CB 0> My37S23G 9 6 :@67 A013H;

012BT � R@67 A013 |T BT GHI

012BT � R@67 A013 |T BT GHI

@67 A013 |T S? AG BT �­BT �HI

@67 A013 |017 JKGHI

zz

ª��&� �� ���� �� �� k j ®� ���� ¬

��� �� �� � & &�� ^dj Yd � � ��& ¡¡

7 N6??9 6 :@} 0@T N3 @3 12?9 6 :;

|||T S�N07CB 0>?26 42GH;

<< My37S2301?2 4S72 0B 1??26 42 01= 62 J4B= 46 @P �Q

���� R�I

JK R�I

>B;J4B= 46 @P JKQ |3 y37S23G 2 A0?HI << >} 16 @07@32 AB>�01> 01= ��

z� A0N3G ���� RR�HI

z|||

z

'�

Page 6: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

§��% � �.� � &��� �� �� � � ��& � �� � ���& �!

7 N6??9 6 :@} 0@T N3 @3 12?9 6 :;

|||T S�N07012 NB6>G 9 2 401= J4B= 46 @D0N3H;

<< �B6> 0101?2 4S72 0B 1? 54B @J4B= 46 @D0N36 1>?2B 4301J4B= 46 @

K9 ���81015 R13�K9 ���81G J4B= 46 @D0N3HI

012 �K R�I

� A0N3G 015|T 33 L�2 �01>GH � R015|M� DH

;J4B= 46 @P �KQ R13�81?2 4S72 0B 1G 015HI ¯­­­>B3?1B2 @6 L3?3 1?3

�K ��I

z015|7 NB?3GHI

432S 41�KI

z|||

z

'

°±² ³² ´µ ¶· 81?2 4S72 0B 1¸ ¹ºµµº ¶» ¼· ³²½· ´¶µ½º½ ´º½² ¾

''

§��% � �� .¿!ª��&� ����& ��� �� ����� ���� � � � � �� ��� � � �� ��& � ��

� � �� ��� �& ����� ��%À ��� �� � ��� ��� ���� � ���� ¬

Á!ª��� � � � �� �� �&� � �& ��¬

� � ��� �� �.� � iXjb � �& ���� ��& # � � �� � ������ �� � �� � ��� ��� ����# � �&

� �& ��� �$ �� �� �&� !

�& ��$ � � � ����� � �� ��� ��� �&� �����  �� ��� �� �&# ��� ���

§¢� ª+ # �� ��� ��� ��� ����� �� ��� �� ���� ���� � ����

� � �� � � �!

'(

7 N6??9 6 :@} 0@T N3 @3 12?9 6 :;

T S�N07012 NB6>G 9 2 401= J4B= 46 @D0N3H;<< BC3 440>3 �B6> 019 6 :

K9 ���81015 R13�K9 ���81G J4B= 46 @D0N3HI << 7 4362301T S2 @6 16= 3 4

012 �K R�I << �K 0?� A3 43 13 y2 01?2 4S72 0B 1? ABS N>�3T S2

F 36> �BBT Ã

� A0N3G 015|T 33 L�2 �01>GH � R015|M� DH

; 9 2 401= ? R015|= 32�B 4>GHI

8x 81?2 4S72 0B 10I

05G ? |3� S6 N?G����� �HH 0 R13����81?2GHI

3 N?305G ? |3� S6 N?G��J�9 �8:: �HH 0 R13�J�9 �81?2G 015|= 32 812GHHI

3 N?3||||<< 436> 01BT 3 46 1>??B @3 AB�

J4B= 46 @P �KQ R0I

�K ��I

'/

Page 7: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

z432S 41�KI

zz

'U

� ��� �� �� �� ����&��& .�� ���� &��� �& �� �� �� �� ��� ����%

��& �Ä &� � ��� ��& ���&& & ¡

ª � Å��� � ��� ���& .� �� ��� � ���� � � � � �� ��� �� ���� �� � #

� � �� � ������ �� � �� ���� ����¡

2 4} ; 0 RG 8x 81?2 4S72 0B 1HG K N6??|5B 4Æ6 @3G ? ��81?2 �HH |13�81?26 173GHI

z 7627 AG My73T 2 0B 13H

; 9} ?23 @|BS2 |T 4012 N1G��DS 11} BT 7B>3 ��?HI

� 436 LF 36> �BBT I

z

Dz Ȳ¸½ ´· ¶É´¶½² ³Ê ³²½ºµ½ ³´¶Ë ºµº¸ ¹ºµµ ¶º ¼²º ¶Ì¸ ³²º½²º ¶´¶µ½º ¶¸²· Í

½ ±º½¸ ¹ºµµ ¾

'w

T S�N07012 NB6>G 9 2 401= J4B= 46 @D0N3H;

K9 ���81015 R13�K9 ���81G J4B= 46 @D0N3HI << 7 4362301T S2 @6 16= 3 4

012 �K R�I << �K 0?� A3 43 13 y2 01?2 4S72 0B 1? ABS N>�3T S2

F 36> �BBT Ã

� A0N3G 015|T 33 L�2 �01>GH � R015|M� DH

; 9 2 401= ? R015|= 32�B 4>GHI

8x 8123 456730I

2 4}; 0 RG 8x 81?2 4S72 0B 1HG K N6??|5B 4Æ6 @3G ? ��81?2 �HH |13�81?26 173GHI

z 7627 AG My73T 2 0B 13H

; 9} ?23 @|BS2 |T 4012 N1G��DS 11} BT 7B>3 ��?HI

� 436 LF 36> �BBT I

z

<< 133>2B A6 1> N3BT 3 46 1>?

J4B= 46 @P �KQ,R0I

�K ��I

z

432S 41�KI zz

'{

� �� ��% � �.���&�� � �& ��� � �� �� �& ¬

� � ��� �� �.� �� �� ��� ���� ++��� ���� �� ��� �� � � � �� �� � ��&���

� �� ��� � �� �% �� ��� �� �&� �� ���� ��� �&# ��� ����� �� �

� �&� �� �� � ��&� �� ��� �� �&� !

0123 456738x 81?2 4S72 0B 1;

012 1S @�T 3 46 1>?GHI

012= 32�T 3 46 1>G 012 0HI << C6 NS3B 502 ABT 3 46 1>

CB 0>?32�T 3 46 1>G 012CO 012 0HI << ?32 02 ABT 3 46 1>2BC

CB 0>3 y37S23G 89 6 :@67 A013HI

z

'~

Page 8: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

ª � Å� � � � �� ���� � �� ��� ��� �&� !

s ij^^ ÎÏÏ�h^d aqm i_ q_ hd^ �Ð �h^d Ynsd aX hÑ

m nc ias ahd hn qÒm _ Yj hb^efÑ Y_dn YhÓg v

m nc ias ahdl _dÒm _ Yj hbe ahd afÑ Y_dn YhÓg vVV bn qqÔ aqm i_ q_ hdjd aX h

m nc ias`X ab^_dÒm _ Yj hbe ahd`r ahd afÑvg VV bn qqÔ aqm i_ q_ hdjd aX h

m nc iask d Yahl dXk d Yahl efÑ

Y_dn YhÕÎÏÏ Õg v

m nc ias`X ab_ t_snd_e k j ®qjs ]ah_fÑ

ahdXm Ö×qjs ]ah_ um Xm efg

ahdXm Ø×qjs ]ah_ um Xm efg

qjs ]ah_ um n^ ]e Xm ÖÙXm Øfg

qjs ]ah_ uahs ÚÛefg

vv

'�

7 N6??J�9 �8::81?2 0@T N3 @3 12?8x 81?2 4S72 0B 1;

T 4B23723> 012BT 3 46 1>I

T S�N07012 1S @�T 3 46 1>?GH; 432S 41�I z

T S�N07012= 32�T 3 46 1>G 012 0H; 432S 41BT 3 46 1>I z

T S�N07CB 0>?32�T 3 46 1>G 012CO 012 0H; BT 3 46 1> RCI zI

T S�N079 2 401= 2B9 2 401= GH;

432S 41 �J�9 �8:: ��BT 3 46 1>I

zT S�N07CB 0>3 y37S23G 9 6 :@67 A013H;

@67 A013 |T S? AG BT 3 46 1>HI

@67 A013 |017 JKGHI

zz

(�

7 N6??�� :J81?2 0@T N3 @3 12?8x 81?2 4S72 0B 1;

T 4B23723> 012BT 3 46 1>I

T S�N07012 1S @�T 3 46 1>?GH; 432S 41�I z

T S�N07012= 32�T 3 46 1>G 012 0H; 432S 41BT 3 46 1>I z

T S�N07CB 0>?32�T 3 46 1>G 012CO 012 0H; BT 3 46 1> RCI zI

T S�N079 2 401= 2B9 2 401= GH;

432S 41 ��� :J ��BT 3 46 1>I

zT S�N07CB 0>3 y37S23G 9 6 :@67 A013H;

@67 A013 |?32 JKG BT 3 46 1>HI

zz

(

���� �� ���& ��$ � � ���& � � ��& !

T S�N07012 NB6>G 9 2 401= J4B= 46 @D0N3H;

K9 ���81015 R13�K9 ���81G J4B= 46 @D0N3HI << 7 4362301T S2 @6 16= 3 4

012 �K R�I << �K 0?� A3 43 13 y2 01?2 4S72 0B 1? ABS N>�3T S2

F 36> �BBT Ã

� A0N3G 015|T 33 L�2 �01>GH � R015|M� DH

; 9 2 401= ? R015|= 32�B 4>GHI

8x 8123 456730I

2 4}; 0 RG 8x 81?2 4S72 0B 1HG K N6??|5B 4Æ6 @3G ? ��81?2 �HH |13�81?26 173GHI

z 7627 AG My73T 2 0B 13H

; 9} ?23 @|BS2 |T 4012 N1G��DS 11} BT 7B>3 ��?HI

� 436 LF 36> �BBT I

z

05G 0|1S @�T 3 46 1>?GH RR�H 0|?32�T 3 46 1>G 015|= 32 812GHO �HI

J4B= 46 @P �KQ,R0I

�K ��I

( '

Page 9: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

z

432S 41�KI zz

((

� Ü# ��� ��� ����� �# %��� � � ��� �� ��� ��� ��� ���& � � �� & !

)������ ���� �� ��� �� ����� �� �&�

* )ÝÝ# �¢ ¤# ¥+ £�# ¨© £)¥£©# �� ¥# !!!- � ������ ���� �$ � �

�� � ��& �� ��� �& ���� �� �� �&� !

)������ ���� �� ��� �� �� � �� �� �&* §¢� ª+ # Þ¢ §# !!!- � ������

���� �$ � � �� � ��& �� ��� �& ���� �� �� �&� !

+�� � � ���$ ��àß� �� � á� �����& % �� �& �« � ��� ���� � ¬

( /

)��� �.�� ��� ���� ��

Ý Ä� ����%�� ����� ���� �.

â+��� ���� �� �.�� ��� �����& �� ��� ���� ������ ���� �� ��* &� �Å�

�� ���� � ���� �� �� �& +��� ���� �� �� ����� & � &��� � ��� ��# +

À ��� �� ����� �� � �� ���� ��� � �-

â+��� ���� �� �ã �� ��� �� �& �� �&� +��� ���� �� �.�� ��� �����&

�� ��� ���� ������ ���� �� ��� �� �� ��� �� �& !

(U

)�� ���� �*,+++-,.¢ � ��� ���� �� �� ������� ��& &�� ����� �� �

PU

SH

IMM

InstJU

MP

Inst ......

AD

DInst

SU

BInst

ST

OP

Inst........

Object

SaM

my

InstructionWithO

perand

Instruction

I_InstructionIS

aM

(w

Page 10: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

0123 456738x 81?2 4S72 0B 1;

012 1S @�T 3 46 1>?GHI

CB 0>3 y37S23G 89 6 :@67 A013HI

z6�?2 46727 N6??81?2 4S72 0B 10@T N3 @3 12?8x 8123 45673;

T 4B23723>9 2 401= @13 @B 107GH;<< 6 1B2 A3 4S?3B 543 5N372 0B 1

9 2 401= ? R2 A0? |= 32K N6??GH |= 32 Æ6 @3GHI

432S 41?|?S�?2 401= G �O ?|N3 1= 2 AGH ­G �81?2 �|N3 1= 2 AGHHHI

zT S�N07012 1S @�T 3 46 1>?GH; 432S 41�I z<< BC3 440>>3 1�} ?B @3?S�7 N6??3?

T S�N079 2 401= 2B9 2 401= GH;

432S 41@13 @B 107GHI

zz

({

<< �A0?0?2 A37 N6?? 5B 46 NN01?2 4S72 0B 1?�02 AB 13BT 3 46 1> |

<< �A3BT 3 46 1>76 1�36�B 4>B 46 10123= 3 4|

6�?2 46727 N6??81?2 4S72 0B 1� 02 A�T 3 46 1>3 y23 1>?81?2 4S72 0B 1;

T 4B23723> 012BT 3 46 1>I

T S�N079 2 401= 2B9 2 401= GH;

432S 41@13 @B 107GH ����BT 3 46 1>I

zT S�N07012 1S @�T 3 46 1>?GH; 432S 41�I z

T S�N07012= 32�T 3 46 1>G 012 0H; 432S 41BT 3 46 1>I z

T S�N07CB 0>?32�T 3 46 1>G 012CO 012 0H; BT 3 46 1> RCI z

z

(~

7 N6??���81?23 y23 1>?81?2 4S72 0B 1;

T S�N07CB 0>3 y37S23G 9 6 :@67 A013H;

012BT � R@67 A013 |T BT GHI

012BT � R@67 A013 |T BT GHI

@67 A013 |T S? AG BT � �BT �HI

@67 A013 |?32 JKG @67 A013 |= 32 JKGH ��HI

zz

(�

7 N6??�� :J81?23 y23 1>?81?2 4S72 0B 1� 02 A�T 3 46 1>;

T S�N07CB 0>3 y37S23G 9 6 :@67 A013H;

@67 A013 |?32 JKG BT 3 46 1>HI

zz

/�

Page 11: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

���� �� �� � � ���&��& � ��� �� �$ !

T S�N07012 NB6>G 9 2 401= J4B= 46 @D0N3H;

K9 ���81015 R13�K9 ���81G J4B= 46 @D0N3HI << 7 4362301T S2 @6 16= 3 4

012 �K R�I << �K 0?� A3 43 13 y2 01?2 4S72 0B 1? ABS N>�3T S2

F 36> �BBT Ã

� A0N3G 015|T 33 L�2 �01>GH � R015|M� DH

; 9 2 401= ? R015|= 32�B 4>GHI

8x 8123 456730I

2 4}; 0 RG 8x 81?2 4S72 0B 1HG K N6??|5B 4Æ6 @3G ? ��81?2 �HH |13�81?26 173GHI

z 7627 AG My73T 2 0B 13H

; 9} ?23 @|BS2 |T 4012 N1G��DS 11} BT 7B>3 ��?HI

� 436 LF 36> �BBT I

z

05G 0|1S @�T 3 46 1>?GH RR�HGG 81?2 4S72 0B 1� 02 A�T 3 46 1>H 0H |?32�T 3 46 1>G 015|= 32 812GHO �HI

J4B= 46 @P �KQ,R0I

�K ��I

/

z

432S 41�KI zz

/'

£& ��� ��� �� �� �Â�

â)�� ���� �*,+-,.& �& ����� �� � ��� � ���� ��!ª� �&�� �� �&

� � � �� �� ��� ��� �&� !

â)�� ���� �*,++-,.�� & ��� ���� �# ��%  �$ � ��� # � �&&$ �� ���

� � ��&% ��& ��� �� ��  ��& �� �� �% � !ª�� � �# ���� ���&

&�� ����� �� �% �� �� ���� �!

â)�� ���� �*,+++-,.�� %�� ���� ���� �� �& ��� ���� �� !

+�� ���� �� ������� &��& &�� ����� �� �!

âÝ � �� ����� .+���& &�� ����� �� �� ��� � ��� ��� �� �� �

�� �� �� �� ��� � � ��&� ���� ��� � � ����# �� �� �& ��� ���

��� ���� ��� ������� &�� ����� �� �!+���& &�� ����� �� �� ��� �

��� ���� ��� �� � � � ��& ��& �« � ��� ���� �# �� �� �& ��� ���

��� ���� �� �� ������� &�� ����� �� �!

/(

"��� ��� ������ � ��� � .äå æçèéêëéìçíéä ��� � �� ��� �&�

� � �� �# Þ¢ §� �&Þ¢ §� �� ��� �&�* ��� � Ä� - ��� Â� ���� � �

�� �� �& !

£�� �� � .Þ¢ §îïð

+� ���� � �� �� �� ������ äå æçèéêëéìçíéä �� ��� ��� �&� !

�% �.� �� � � ������ ���� �� �� � �� �� �&�� ��� ���� �� ��� �&

�� �% ��â)�$ �� ��� �&�� �% � �� �� ��% �!

â)�� ��� �& ��$ ��� �� �� �� � ��% �� !

//

Page 12: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

J�9 �8::��<< ?B @3C6 NS3 1

�� J<< >ST N076232BT B 5?267 L

J�9 �8::�

�F M��MF<< 1 ñ� ò

�� :JK E� Æ�<< 5B 4�6 4>ó S @T 2B 01?2 4S72 0B 1N6�3 N3> E� Æ�

J�9 �8::­�

�8:M9<<G 1H ôG ­�H

� �:M9 Ã

E� Æ�Ã9 �� J

/U

õ � �� �� �.

â� � ��� �&� �� ޢ §� �&Þ¢ §� ��  �$ �%� ��� ��% ����

�� �� �&�âã �� ������ ��� # ���� ���� �� ���� ޢ §� � � �� ��� � �

�&& � �� ����� �� �&� !

âã ��&� �� � �� �� �� �� ���� ���% ���� ��� � �� ¬

)��� �.���& �!

/w

)&& �� �� �� �&��$ � ����& �.

âã ��� ���& ��� � � � ��� �� �# � � �� � ��� � �* �$ �%� ��� �� � #

�&& � ��- � � ���* �� �� � � �� � & �� ��� �$-

* � !ö * ¤� �Ý# ï- #* Þ ) £�# ï-÷ - !

â �� � �� ����� �� ���� �� &�äå æçèéøìçéí ���� �� �� �� !� �

��� � � ���� �� �� ���� ��Þ ��� .ª�� � �� � ����!

�� �� ���� ��� �� ��.

â��� ��� � �*  $ # �� �� - � � ��.� ��* � %À ��  $ # � %À ���� �� -

â��� Â�� � � �� �� �� �� �� � �& ��� ���  $ .� �* � %À ��  $-

â¥��  � ��� ���& �.Ä���� ���# �� �Â�� �� � � ��� �� �� �&%� ��&

� � ��� !� �� �&� ���# �� ��� ���� �� ��� ���$ �%� ���

�� �� �&� ���� ��� � �� !* � # � � ��� ùÒ úÏ������ ���� �� �ûü ®ÚÛ

ùÒ úÏ%$ ý!

â+� ��� ���� ��� �% � ��& � �� ��� �  � ��� ���& �# %��� ��� ��� ��� Â$ .

���&�$ �� �� �& � �� ��� �&Þ¢ §� ���� ��� � � ��� ¬

/{

"��� �� � ��& .��� Â�� ��� �  ��� � ��� � � �� !

/~

Page 13: SaM - cs.cornell.edu · %! " # $ % &! & & # &! ' opcode: TIMES opcode: PUSHIMM operand: 5 opcode: PUSHIMM operand: 7 File....... TIMES STOP PUSHIMM 7 PUSHIMM 5 2 0 1 2 3 23 0 Program

"��� ���� �� �� �

§� ���% ����$ � �� � ��& .

â� � ��� �&� �& . � �$ � � �� � �� �� � �� ��� �&�# ��% �� �� !

â� �� �� ���þ §� �þ ��#� ��� �& � � � ��� ���� �� ���� ���$ �� �

���� ��� �� �� ��� * ¤)� +�# "�© ¥© )�# !!!- !

â� � ��& ��� � ���% �  � ��� � � ��& * � ��� �� �� � � ��&

��� ���$ �Þ ���� ��� �� �- � �&� ��� � � ��& � ��� �&� �

+�� �� � !

âÞ ����� �� � �� � ���% ����$ � � �� � ��$  Þ ���ÿ ����� � �� ���

* Þÿ - �� �� � � !

âÞÿ ����� ��� � �� �� ����� &� �� �� �  � &������ � ��

� �� �&�# �� �� �� � &����$ � �# � &���� ��$ �%���� �� ���$ �� !

/�

+�� ���� �� �& ��� ���� �� � � � �� ��� ���� �� �� �� ��� ��� � ���% �

� ��� �� �� !

� �� �� ��& �� .

â� �%�$ � ��� .� �����$ ����& Ä� � � �� �� �� �� �� � ���� ���

�$ � * ��� ���� �� # ��� ���� �- !

âÝ$ �� ��� � � ��&% ��& ��� .� ����� ���� ��� ��& ���� ��� ��

� � � ��$ � � �� ���� ��& ���� �� �!

¢ � �� ��& � .

+�� ���� �� * � ���� � � ���� �� �- § �������%�$ � ��% & Ä� &

ê�ë�íæí�øìééå

U�

+�� ���� � ��� � � ��� ���� �.

�+�� ���� �&��� � ���� � ���� �� ��!

ã ��� � � ��&� ����� � ���� � ����� ���� ���� ���� �� ����

� ��� ¬ã ��� � � ��&�&� ���� ���� �� ������ � �� ¬

�+�� ���� �� ���� ��& � �& ��& � ��� � ��� ���� � � ���� �� �

��& � �&� �� ����& !

�+�� ���� �� �����%À ���� �& �« � ���$ � ���% ��� � & ��� �

&����� ����� � ! £�� �� � .���� ���� �� ��� �& �« � ���$ � � ��

§��� �� �� ���$

� � � ��� ���� �% ���� �� ��� � � �& ����� � � �!

U