我的程序编译连接都没问题,下载进去以后,看c和asm混合程序,asm语句全是nop。首先是main之下两个nop,然后每个语句后面编译过去也是nop。是什么情况会导致这种错误呢?程序很简单,a和b两个数,把其中大的赋值给c。程序run也不执行。然后就出现emif错误,不搭嘎啊?
上传程序不方便,又遇到过的大虾吗,来救救我啊。
编译或连接肯定有错,看列表文件。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
引用别人的一段回答:
1.关于NOP指令:
代码数据为0x90,如果在数据区出现了0x90,不能算数的。
反汇编C程序的代码区,当出现需要使用空指令的时候,往往是为了对齐,比方说CPU对4字节的倍数的地址访问比较快,那么在经常用JMP到达的地址,编译器为了优化,常常会将其放在4X的倍数处,那么前面空出来几个字节,就全是Nop了。
2.关于程序的编译执行:
Nop是空执行,即不做任何事,仅仅后移CPU的CS:EIP指针,如果一个程序专门NOP,那么它其实是什么都不做,完全没有意义。这样的程序,你用C语言是几乎编写不出来的,除非在C语言中嵌入汇编代码,但是这样,已经不是C语言编程了。