有关宏的,高手请进

ciahi 2006-10-14 06:42:50
msg macro count,string
msg&count db string
endm
errmsg macro text
inc cntr
msg %cntr,text
endm

DATAS SEGMENT
cntr db ?
mov cntr,01h
errmsg 'Syntax error!'
;errmsg 'no error!'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX

MOV AH,4CH
INT 21H
CODES ENDS
END START

errmsg 'Syntax error!'在这一句中,一直提示constant expected
为什么呢?
谢谢了
...全文
77 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2006-10-14
  • 打赏
  • 举报
回复
errmsg 'no error!' 宏展开后, 传递给 msg 宏的 count 参数是 cntr 变量, 这个无法被宏展开并形成 msg&count 标号. 可以试试下面的代码:
...
errmsg macro text
; inc cntr
cntr = cntr + 1 ;*
msg %cntr,text
endm

DATAS SEGMENT
; cntr db ?
; mov cntr,01h
cntr = 1 ;*+
...

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧