java吧 关注:1,215,617贴子:12,664,612
  • 29回复贴,共1

刚看到吧里有人发了个题目,感觉挺有意思,虽然我不会

只看楼主收藏回复


这个题目大多数人是死在汇编的基本语法上。
虽然以前接触过汇编,现在也是忘得差不多了。现在让我来做也就只能考虑到几种基本类型可能需要不同的寄存器来做操作,因此在输入的JAVA语句时,需要判断不同的基本类型,然后用不同的汇编寄存器来存储操作。当然这里扩展一下就是超越long的数据的定义,这个隐约还记得以前在【王爽版汇编】中有一个加减乘除的汇编程序,而且需要考虑极大数据的情况,就需要好几个寄存器存储?大概是这个样子。
顺序、循环和选择语句其实记得不是很清楚了。
输入、输出的话,C和JAVA各有几种打印的方式,感觉用反射来判断是否以System.out.print开头是不是打印语句更快一点?输入也有几种方式。。好烦啊。
好了,思路就是这样,反正我是不会。


IP属地:浙江1楼2015-12-14 18:26回复
    2L


    IP属地:上海2楼2015-12-14 18:29
    收起回复
      编译原理。。。


      IP属地:广东来自Android客户端3楼2015-12-14 18:32
      收起回复
        其实实现起来并不难,但是用汇编速度还是慢了点,不如直接用机器码来得实在,代码如下
        00101010101100101010101010111001010001101011101000101010101110010001010111100001101101010001101101010111010101110


        IP属地:广东来自Android客户端4楼2015-12-14 18:32
        收起回复
          柯南君,求流量,都快没了


          IP属地:上海来自Android客户端5楼2015-12-14 18:52
          收起回复
            写个c编译,再反编译为汇编,就有了。。。。


            IP属地:广东来自Android客户端6楼2015-12-14 23:00
            收起回复
              这个问题一点都不难。首先思路要清晰,会不会汇编倒是其次的,主要是编程思想。楼上有个用机器码实现的也是醉了,压根没必要呀。觉得汇编慢完全是技术不行嘛
              好了说了这么多上干货
              IDEAL
              DOSSEG
              MODEL small
              STACK 256
              DATASEG
              exitCode db 0
              prompt1 db 'Enter value 1: ', 0
              prompt2 db 'Enter value 2: ', 0
              string db 20 DUP (?)
              地方太小剩下的写不下了。不过相信已经很清楚了


              IP属地:福建来自Android客户端7楼2015-12-14 23:11
              收起回复


                IP属地:陕西来自Android客户端8楼2015-12-15 07:46
                回复