码迷,mamicode.com
首页 > 其他好文 > 详细

S3C2440的七种模式之——未定义模式

时间:2017-12-24 14:44:13      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:指令   图片   src   style   测试   情况   自己   异常   size   

技术分享图片

技术分享图片

现在做第一个实验,模拟未定义模式。

未定义模式,是cpu遇到自己不能识别的指令时候做出的异常处理。

技术分享图片

arm指令的机器码一定是按照某种规范要求的,不然你随意写一条指令,cpu不是都可以执行吗?在cpu没有定义该条指令含义的情况下,我们执行了这样未定义的指令,就会进入未定义异常。

现在我们要模拟一个未定义异常,所以我们只要写出一个cpu无法识别的指令即可。

在这之前,要明白一个道理,在内存中执行的机器码,只有0,1两个值,不同的指令被分解为不同的0,1信号的机器码。

所以,我们在运行内存中存放一个32bit的值,这个值又恰恰是上图所不能表示的指令,那么这样,就可以测试未定义异常了。我们采用.word 关键字,.word expression就是在当前位置放一个word型的值,这个值就是expression 。

技术分享图片

.word 接收4字节的数据,放在当前地址。

现在我们仔细观察上面的那个图,找到一个未定义的机器码,把这个值放在.word的地方,当cpu运行到.word 地址时,发现这个地址的0,1数据即机器码它不能识别,就发生未定义异常。

所以我们可以使用 .word 0xf3000000来表示一条未定义指令,但大家用的比较多的是.word 0xbadec0de(很形象,表示坏代码)。

 

S3C2440的七种模式之——未定义模式

标签:指令   图片   src   style   测试   情况   自己   异常   size   

原文地址:http://www.cnblogs.com/yangguang-it/p/8097828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!