如何在平面汇编程序中使宏工作

时间:2015-02-25 11:32:53

标签: windows assembly fasm

我想使用平面汇编程序(FASM)测试一个小的汇编程序,但是在使用宏时我遇到了问题:


scount    =     0
smult     =     320
label screenoff word
rept 200
dw        smult*scount
scount    = scount + 1
endm

任何人都可以帮我使用平板汇编程序吗? 它应该创建一个包含200个单词的数组(在标签中定义的单词,使用rept指令定义200次)。

我得到Error: unexpected characters when trying to compile in flat assembler vers. 1.71.22 (editor vers 3.11 beta 3, interface version 0.97.01)。 第dw smult*scount行突出显示错误。

赞赏指向帮助的指针。

1 个答案:

答案 0 :(得分:1)

您缺少实际启动宏定义的第一行 在手册中查找!

...  <-- Missing here
scount    =     0
smult     =     320
label screenoff word
rept 200
dw        smult*scount
scount    = scount + 1
endm

修改

变式1 - 与SetupArray200

一起使用
macro SetupArray200 { times 200 dw (%-1)*320 }

变体2 - 与SetupArray200

一起使用
macro SetupArray200
 {
  repeat 200
   dw (%-1)*320
  end repeat
 }

带参数的变体3 - 与SetupArray 200,320

一起使用
macro SetupArray scount,smult
 {
  repeat scount
   dw (%-1)*smult
  end repeat
 }