急救:::如何编写一个编译器?!~~

jinli218 2011-04-04 01:15:39
哪位牛人知道L1吗? 我需要编一个L1 -> x86 的编译器, 什么语言编的都行,希望大家能给点提示,给我讲讲编译器是怎么回事都行~!~ 我是一大菜鸟!~~~

下面是L1的一个代码,结果得89:

(((esi <- 89) ;; size of the array to create
(eax <- (allocate esi 3))
(edi <- eax) ;; save this register for the array base pointer
(ebx <- edi) ;; - loop index variable is now a pointer into
(ebx += 12) ;; the array; it starts at the 2nd word.

(esi *= 2) ;; - convert esi so it is the location of
(esi += 2) ;; the word just past the end of
(esi += edi) ;; the array

:loop
(cjump ebx < esi :keep_going :done)
:keep_going

(edx <- (mem ebx -8))
(ecx <- (mem ebx -4))
(edx += ecx)
(edx -= 1)
((mem ebx 0) <- edx)

(ebx += 4)

;; go back to the loop test
(goto :loop)

:done
(eax <- (print edi))))

...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gentleboy2009 2011-04-05
  • 打赏
  • 举报
回复
楼上说的对
  • 打赏
  • 举报
回复
这样的帖子势必是没有人回的!

23,406

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧