- UID
- 128206
- 帖子
- 2175
- 积分
- 2592
- 阅读权限
- 50
- 注册时间
- 2010-8-27
- 最后登录
- 2015-4-12
- 在线时间
- 3813 小时
|
如下我现在的实现跟大多数语言一样- var x [stack:0]
- var y [stack:1]
- ;var x = {};
- 0 New_Obj
- 1 Pop eax
- 2 Mov x [stack:0], eax
- ;x.name = 3;
- 3 Push x [stack:0]
- 4 Push "name"
- 5 Push 3
- 6 Set_Field
- ;var y = x.name++ + x.name++;
- 7 Push x [stack:0]
- 8 Push "name"
- 9 Get_Field
- 10 Push 1
- 11 Add_Field 1
- 12 Push x [stack:0]
- 13 Push "name"
- 14 Get_Field
- 15 Push 1
- 16 Add_Field 1
- 17 Pop ebx
- 18 Pop eax
- 19 Add eax, ebx
- 20 Push eax
- 21 Pop eax
- 22 Mov y [stack:1], eax
- 23 Ret 0
复制代码 但是我觉得c编译器的遇到EOS之后再 add/sub 1的处理方式更好
才有了这么个帖子 |
|