我正在做一个在 LINUX 中开发 SIC/XE 汇编器的作业。
当我编写代码时,我遇到了一些错误,但我不知道为什么会这样。你能解释一下为什么会出现这个问题吗?
下面显示的代码显示带有令牌的“test.asm”文件。
178 printf("token1: %s \t",token1);
179 printf("token2: %s \t",token2);
180 printf("token3: %s \t",token3);
181 printf("token4: %s \t",token4);
182 printf("ss\nss");
据此,尤其是“ss\nss”语句,我希望打印出如下所示的结果。
sstoken1: LDT token2: LENGTH token3: (null) token4: (null) ss
sstoken1: WLOOP token2: TD token3: OUTPUT token4: (null) ss
ss
但是,当我将这个程序运行到最后时,我遇到了分段错误并遇到了奇怪的情况。
sstoken1: OUTPUT token2: BYTE token3: X'05' token4: (null) ss
sstoken1: END token2: FIRST token3: (null) token4: (null) ss
Segmentation fault.
“Segmentation fault”语句之前没有“ss”。我不知道为什么。请你给我解释一下好吗?