打印

请教 汇编 转C 感觉转不了 是个 环扣环

[复制链接]
3128|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
itelectron|  楼主 | 2014-2-1 18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        JNB    P0.4,LOOP1               
        JNB    P0.3,LOOP2               
LOOP1:
        JNB    P0.2,LOOP5               
LOOP2:
        JNB    P0.4,LOOP4
        JB     P0.1,LOOP3
        
        LCALL  FUN1                        
LOOP3:
        LCALL  FUN2                        
LOOP4:               
        LCALL  FUN3               
LOOP5:
        LCALL  FUN4   

相关帖子

沙发
itelectron|  楼主 | 2014-2-1 18:52 | 只看该作者

1

本帖最后由 itelectron 于 2014-2-1 18:54 编辑

1

环.JPG (30.84 KB )

1

1

环.JPG (10.51 KB )

2

2

使用特权

评论回复
板凳
wzda_gundam| | 2014-2-1 19:14 | 只看该作者
本帖最后由 wzda_gundam 于 2014-2-1 19:33 编辑

好转
main()
{
if(!P04)loop1();
else if(!P03)loop2();
}
loop1()
{
if(!P02)loop5();
else loop2();
}
loop2()
{
if(!P04)loop4();
else
{
if(P01)loop3();
else
{
fun1();
loop3();
}
}
}
loop3()
{
fun2();
loop4();
}
loop4()
{
fun3()
loop5();
}
loop5()
{
fun4();
}

使用特权

评论回复
地板
itelectron|  楼主 | 2014-2-1 19:22 | 只看该作者
楼上 能 吧C 写成 汇编 那样 形式吗?

使用特权

评论回复
5
wzda_gundam| | 2014-2-1 19:28 | 只看该作者
itelectron 发表于 2014-2-1 19:22
楼上 能 吧C 写成 汇编 那样 形式吗?

刚才有错误,改了一下
应该可以

使用特权

评论回复
6
NE5532| | 2014-2-1 20:13 | 只看该作者
楼主之所以能这样写,是钻了汇编自由性大的“漏洞”,这个也是汇编的优点,C是结构化的,以函数为基础的语言,要做到这样高技巧的跳转会吧程序弄得很乱(当然C也可以用goto来做).

不过楼主可以用一个变量来”计算“各种条件,最后根据这个”计算“的结果来选择执行哪些程序,这样就满足C的结构化了,程序也好读得多。

使用特权

评论回复
7
itelectron|  楼主 | 2014-2-1 20:24 | 只看该作者
楼上  其实  这个汇编 是 C生成 的

使用特权

评论回复
8
itelectron|  楼主 | 2014-2-1 20:27 | 只看该作者
本帖最后由 itelectron 于 2014-2-9 14:07 编辑

11

使用特权

评论回复
9
itelectron|  楼主 | 2014-2-1 20:28 | 只看该作者
TO 6楼 应该用C也可以 完成的  

使用特权

评论回复
10
NE5532| | 2014-2-1 22:16 | 只看该作者
那请楼主写个试一下了。

使用特权

评论回复
11
itelectron|  楼主 | 2014-2-2 08:09 | 只看该作者
正因为思考无果,特来求助。  确定这个汇编 是 C生成 的,

使用特权

评论回复
12
lxyppc| | 2014-2-2 18:12 | 只看该作者
四输入,四输出
画个卡洛图化简一下,看看是什么

使用特权

评论回复
13
呆板书生| | 2014-2-2 18:39 | 只看该作者
12楼正解

使用特权

评论回复
14
publicrtos| | 2014-2-2 19:44 | 只看该作者
C语言采用高级优化之后,就会出现类似于你的汇编里面的那种效果,甚至跳到其他函数里面执行。当然执行的结果和C语言结构里面逾期的一样。

使用特权

评论回复
15
itelectron|  楼主 | 2014-2-3 18:35 | 只看该作者
楼上说的 是  确实 是 优化 过 的  但是 现在 想 用C写回去  

使用特权

评论回复
16
itelectron|  楼主 | 2014-2-3 18:35 | 只看该作者
楼上说的 是  确实 是 优化 过 的  但是 现在 想 用C写回去  

使用特权

评论回复
17
itelectron|  楼主 | 2014-2-3 18:37 | 只看该作者
卡洛图 还有 顺序执行不好办

使用特权

评论回复
18
itelectron|  楼主 | 2014-2-3 18:41 | 只看该作者
        JNB    P0.1,LOOP1               
        JNB    P0.2,LOOP2               
LOOP1:
        JNB    P0.3,LOOP5               
LOOP2:
        JNB    P0.4,LOOP4
        JB     P0.5,LOOP3
        
        LCALL  FUN1                        
LOOP3:
        LCALL  FUN2                        
LOOP4:               
        LCALL  FUN3               
LOOP5:
        LCALL  FUN4  

使用特权

评论回复
19
itelectron|  楼主 | 2014-2-3 18:43 | 只看该作者
四输入,四输出 那不是16X16

使用特权

评论回复
20
NE5532| | 2014-2-3 21:30 | 只看该作者
itelectron 发表于 2014-2-2 08:09
正因为思考无果,特来求助。  确定这个汇编 是 C生成 的,

已经告诉你C的处理技巧了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:MARK: zhi kan ji shu

274

主题

2764

帖子

8

粉丝