打印

**,实在是强啊…………小弟我佩服佩服~~~!

[复制链接]
楼主: ztzer
手机看帖
扫描二维码
随时随地手机跟帖
61
ljm810010| | 2008-12-22 22:33 | 只看该作者 回帖奖励 |倒序浏览

天啊,dengm同志一个人在唱独角戏了。

这怎么行,无敌的感觉是很痛苦喔!
I真的服了YOU!

使用特权

评论回复
62
dengm| | 2008-12-22 22:38 | 只看该作者

61楼 的 ASM 已严格test, 绝对没Bug

使用特权

评论回复
63
ztzer|  楼主 | 2008-12-24 15:59 | 只看该作者

各位都是高人,现在我说下我的意义吧

实际意义是我接了一排子的传感器,每个位表示一个传感器,用来检测轮胎宽度,12个传感器一字排开,当测到哪几个传感器有效时判断它们之间的宽度。我不像个位汇编高人,我只让我的程序能正常运行,没有你们那种力求完美的心。程序我也弄好了,就是先从左到右检测,遇到1记下第几位,在从右往左,遇到1记住第几位。简简单单的实现,但对各位的佩服犹如滔滔江水连绵不绝....

使用特权

评论回复
64
dengm| | 2008-12-26 16:39 | 只看该作者

有意义, 就给一个 16 bit 的给LZ

CONVERT:
       ;INPUT:
       ;      B:A     B:BIT9..15 A:BIT0..7
       ;OUTPUT:
       ;      B:A
       JNZ L_CV_11
         ACALL L_CV10  
         XCH A, B
         RET

L_CV_11:
       XCH A, B
       JZ L_CV10
         ORL A, #1
         CALL L_CV
L_CV10:
         XCH A, B
L_CV:
         MOV R7, A
         ANL A, #0F0H
         JZ L_CV1
           ANL A, #11000000B
           MOV R6,#00011111B
           JZ L_CV2
             MOV R6, #01111111B
             SJMP L_CV2

L_CV1:
           MOV A, R7
           ANL A, #1100B
           JZ L_CV3
             MOV R6, #111B 
L_CV2:
             MOV A, R7
             CPL A
             INC A
             ANL A, R6
L_CV3:       ORL A, R7
             RET
;--------------------------------

使用特权

评论回复
65
ljm810010| | 2008-12-26 18:45 | 只看该作者

楼主早说,根本就是两回事。

你需要的只是左右两边的“1”之间的间距,中间的要不要填充为1根本不重要。忽悠啊...

使用特权

评论回复
66
dengm| | 2008-12-26 19:46 | 只看该作者

左右两边的“1”之间的间距

CONV:
        ; INPUT: B:A
        ; OUTPUT: A

         MOV R6, #0
         MOV R7, #1
         CLR F0
         CALL L_CV
         MOV A, B
         CALL L_CV
         MOV A, R6
         RET

L_CV:
         MOV R5, #8
L_CV1:
         RRC A
         JB F0, L_CV5
           JNC L_CV8
             SETB F0
             INC R6
             SJMP L_CV8

L_CV5:
          INC R7
          JNC L_CV8
            MOV R6, A
            MOV A, R7
            XCH A, R6
L_CV8:
         DJNZ R5, L_CV1   
         RET

使用特权

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

本版积分规则