Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 汇编中的宏与子程序_Assembly_Macros - Fatal编程技术网

Assembly 汇编中的宏与子程序

Assembly 汇编中的宏与子程序,assembly,macros,Assembly,Macros,语句:在汇编语言程序中,不能始终使用子例程替换宏 上述陈述是真是假 我的书给出了错误的答案。但我想不出任何一种情况下,宏是可能的,但子程序是不可能的。你能告诉我这种情况是否可能发生吗?提示:递归。@笔名递归是另一个方向的例子。这取决于汇编程序,而不是汇编语言本身。宏通常是元代码,它们可以输出源代码,而例程只是指令的逻辑分组。宏不一定最终生成指令。顺便说一句,如果答案是错误的,它是否意味着子程序总是可以替换宏?这只有在宏支持有限的汇编程序中才有意义。@笔名您当然可以递归调用宏。一个电话只是一个保存

语句:在汇编语言程序中,不能始终使用子例程替换宏

上述陈述是真是假


我的书给出了错误的答案。但我想不出任何一种情况下,宏是可能的,但子程序是不可能的。你能告诉我这种情况是否可能发生吗?

提示:递归。@笔名递归是另一个方向的例子。这取决于汇编程序,而不是汇编语言本身。宏通常是元代码,它们可以输出源代码,而例程只是指令的逻辑分组。宏不一定最终生成指令。顺便说一句,如果答案是错误的,它是否意味着子程序总是可以替换宏?这只有在宏支持有限的汇编程序中才有意义。@笔名您当然可以递归调用宏。一个电话只是一个保存回信地址的跳转。没有任何东西可以阻止您在宏中调用代码块。但是没有太多意义。当您没有堆栈(或尚未初始化),或不想使用它,或当您使用堆栈上的东西,并在执行时将其删除,如删除可变数量的堆栈项(函数必须与宏不同)