下图来自于汇编器帮助文档整个目录:

下图来自于instruction一章:

下图来自于directive一章:

网络上的说法
------解决方案--------------------
这个pseudo-instruction,我的理解是内联指令,是编译器定义的指令,或者说是多条指令的一个组合。譬如,处理器只支持加法add_opera,那么add_opera是instruction,或者称为指令助记符;为了方便实现乘法,编译器实现了mul_opera,mul_opera本身是由多条加法实现的,这个mul_opera是pseudo-instruction。至于directive,就是用于指示代码段,或者数据对齐等影响编译器行为的东东。
------解决方案--------------------
directive那些是一些定义数据的编译器指令,可以认为跟预处理差不多,比如说你在某处放个全局变量什么的,gbla那些指令就起到这个作用。你查看一下生成的二进制码的反汇编,你会发现你定义的这些变量就是插在你想要或者编译器(广义的,包括链接器)自己决定的地方,但是他们并不是指令,就是一个单纯的数据。
所有生成机器码的地方,都是cpu能够识别的指令,cpu去执行不会造成“未定义指令”异常,而gbla产生的数据,任何格式都有可能。