打印

插入N个NOP的宏该怎么写??

[复制链接]
2142|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
weihualong|  楼主 | 2008-7-4 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个宏该怎么写?:
           InsetNnop   N             ( N=0~100)

      注意是插入N个NOP ,不是在那延时N个NOP的时间.发现要写下来会很长.

相关帖子

沙发
acmilann| | 2008-7-4 12:21 | 只看该作者

这个问题已经讨论过,你搜索一下

使用特权

评论回复
板凳
huangqi412| | 2008-7-4 13:37 | 只看该作者

讨论过了.

使用特权

评论回复
地板
ayb_ice| | 2008-7-4 15:38 | 只看该作者

前段时间我出了这个题的

里面有答案,题目好象是“给大家出道题吧”。

使用特权

评论回复
5
weihualong|  楼主 | 2008-7-4 19:32 | 只看该作者

看了一下那个主题是讨论的是C,能否也讨论一下汇编。

    不如再把也汇编完善一下,希望最终能得到一个比较理想结果,以后也可以供大家使用。写了一个,但觉得还是太长了。


;***********  Inset N  NOP  *******************

;**********************  2~10 nop ***************
N_2nop      macro 
        NOP
        NOP
        endm
N_3nop      macro 
        N_2nop
        NOP
        endm
N_4nop      macro 
        N_2nop
        N_2nop
        endm
N_5nop      macro 
        N_3nop 
        N_2nop
        endm
N_6nop      macro 
        N_3nop 
        N_3nop
        endm
N_7nop      macro 
        N_2nop
        N_5nop
        endm
N_8nop      macro 
        N_4nop
        N_4nop
        endm
N_9nop      macro 
        N_5nop 
        N_4nop
        endm
N_10nop     macro 
        N_5nop 
        N_5nop 
        endm

;**********************  10~100 NOP ***************
N_20nop      macro 
         N_10nop  
         N_10nop  
         endm
N_30nop      macro 
         N_20nop
         N_10nop
         endm
N_40nop      macro 
         N_30nop
         N_10nop
         endm
N_50nop      macro 
         N_40nop
         N_10nop
         endm
N_60nop      macro 
         N_50nop
         N_10nop
         endm
N_70nop      macro 
         N_60nop
         N_10nop
         endm
N_80nop      macro 
         N_70nop
         N_10nop
         endm
N_90nop      macro 
         N_80nop
         N_10nop
         endm
N_100nop     macro 
         N_90nop
         N_10nop
         endm

;---------- 插入 1~ 10 个NOP ---------------
N_1_10nop  macro   N
       IF      N==1
            NOP
       ELSEIF  N==2
           N_2nop
       ELSEIF  N==3
           N_3nop
       ELSEIF  N==4
           N_4nop
       ELSEIF  N==5
           N_5nop
       ELSEIF  N==6
           N_6nop
       ELSEIF  N==7
           N_7nop
       ELSEIF  N==8
           N_8nop
       ELSEIF  N==9
           N_9nop
       ELSEIF  N==10
           N_10nop 
           ENDIF
       endm


;---------- 插入 10~ 100 个NOP (只取能被10整除的参数) ---------------
N_10_100nop  macro   N
       IF      N==10
           N_10nop 
       ELSEIF  N==20
           N_20nop
       ELSEIF  N==30
           N_30nop
       ELSEIF  N==40
           N_40nop
       ELSEIF  N==50
           N_50nop
       ELSEIF  N==60
           N_60nop
       ELSEIF  N==70
           N_70nop
       ELSEIF  N==80
           N_80nop
       ELSEIF  N==90
           N_90nop
       ELSEIF  N==100
           N_100nop 
           ENDIF
       endm




;---------- 插入 1~ 100 个NOP(N任意)  ---------------

n_nop      macro    N
        IF     N/10==1
        N_10_100nop  10
        ELSEIF N/10==2
        N_10_100nop  20 
        ELSEIF N/10==3
        N_10_100nop  30 
        ELSEIF N/10==4
        N_10_100nop  40 
        ELSEIF N/10==5
        N_10_100nop  50 
        ELSEIF N/10==6
        N_10_100nop  60 
        ELSEIF N/10==7
        N_10_100nop  70 
        ELSEIF N/10==8
        N_10_100nop  80 
        ELSEIF N/10==9
        N_10_100nop  90 
        ELSEIF N/10==10
        N_10_100nop  100 
        ENDIF

        IF     N%10==1
        N_1_10nop  1
        ELSEIF N%10==2
        N_1_10nop  2
        ELSEIF N%10==3
        N_1_10nop  3
        ELSEIF N%10==4
        N_1_10nop  4
        ELSEIF N%10==5
        N_1_10nop  5
        ELSEIF N%10==6
        N_1_10nop  6
        ELSEIF N%10==7
        N_1_10nop  7
        ELSEIF N%10==8
        N_1_10nop  8
        ELSEIF N%10==9
        N_1_10nop  9
        ENDIF
        endm

使用特权

评论回复
6
walnutcy| | 2008-7-5 17:28 | 只看该作者

搞不明白,一个没意思的题目有必要讨论两次?

有时间大家想想做什么项目有意思

讨论应用可能更有意思,

使用特权

评论回复
7
ayb_ice| | 2008-7-7 10:25 | 只看该作者

没有意思是你还没有体会到好处

使用特权

评论回复
8
工控秀才| | 2008-7-7 12:04 | 只看该作者

是没有意思

当你发现有delay CONST 或者delay MM 甚至delay a这样的指令时,
的确觉得这样很没有意思的.插NOP不是为了精确延时,还有什么特殊功能吗?

使用特权

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

本版积分规则

26

主题

232

帖子

0

粉丝