2012-03-22 79 views
0

好吧當我製作宏時,如果我做了,我無法讓循​​環正常工作。宏和未聲明的變量用法

move macro x,y 
      mov esi, 0 
      mov ecx, SIZEOF x  
      a: 
      mov al, x[esi] 
      mov y[esi], al 
      inc esi 
      LOOP a 
endm 

但是當我添加一個參數,更改標籤,它工作正常

move macro x,y,a 
      mov esi, 0 
      mov ecx, SIZEOF x  
      a: 
      mov al, x[esi] 
      mov y[esi], al 
      inc esi 
      LOOP a 
endm 

當我調用宏我一起 移動A,B,L1 動線C做一些事情, d,L2

但我不知道爲什麼它的工作..

+1

'無法讓循環正常工作'是什麼意思? – 2012-03-22 18:32:18

+0

當我運行它與第一個宏,它給了我錯誤說,重新宣佈我每次調用宏 – 2012-03-22 18:34:18

回答

2

如果沒有參數的標籤,你就會把同一標籤在您使用宏的每個實例中。您不能在多個地方使用相同的標籤名稱。您的解決方案看起來很合理,但您的彙編程序也可能支持本地標籤(其中一些中爲@@:,其他編號中爲1:),這樣也可以解決您的問題並且使用更簡單。