立即数

一、概念:
通常把在 立即寻址方式 指令中给出的数称为立即数

二、判断步骤:
  1. 把数据转换成二进制,从低到高写成 4 个一组,最高位不够一组的补 0;
  2. 数 1 的个数,如果大于 8 个,肯定不是立即数,如果小于 8 个看步骤 3;
  3. 如果数据当中有连续大于等于 24 个 0,循环左移偶数位,使高位全部是 0;
  4. 找最高位 1,去掉前面的最大的偶数个 0 ;
  5. 找到最低位的 1,去掉后面最大偶数个 0;
  6. 数剩下的位数,如果小于等于 8 位,那么这个数就是立即数,否则不是立即数。

三、举例
1、判断 0X20000018 是不是立即数:
第一步 :把数据转换成二进制
0010 0000 0000 0000 0000 0000 0001 1000
|__________________________|
共24个0
第二步:数 1 共 3 个 1 走第三步
第三步:最大连续 24 个 0,循环左移4位
0000 0000 0000 0000 0000 0001 1000 0010
第四步:找最高位 1,去掉前面的最大的偶数个 0
01 1000 0010
第五步:找到最低位的 1,去掉后面最大偶数个 0
01 1000 0010
第六步:数剩下的位数:共 10 位,不是立即数

你可能感兴趣的:(ARM,ARM,汇编语言,立即数)