Arm 指令如何匹配不同的格式
資深大佬 : binbinyouliiii 24
今天看 ARM7 相关的文档的时候,看到 Arm 指令格式区分的表格,但是发现格式并不是完全各自独立的,同一个指令可能会匹配到多种格式。
比如: xxxx_0000_10xx_xxxx_xxxx_0000_1001_xxxx 这条指令会匹配到 Multiply Long 和 Halfword Data Transfer:register offset 这两种格式。
// 没问题 xxxx_100x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx Block Data Transfer xxxx_101x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx Branch xxxx_110x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx Coprocessor Data Transfer xxxx_1110_xxxx_xxxx_xxxx_xxxx_xxx0_xxxx Coprocessor Data Operation xxxx_1110_xxxx_xxxx_xxxx_xxxx_xxx1_xxxx Coprocessor Register Transfer xxxx_1111_xxxx_xxxx_xxxx_xxxx_xxx1_xxxx Software Interrupt // xxxx_0000_1xxx_xxxx_xxxx_xxxx_1001_xxxx Multiply Long xxxx_000x_x0xx_xxxx_xxxx_0000_1xx1_xxxx Halfword Data Transfer:register offset xxxx_0000_00xx_xxxx_xxxx_xxxx_1001_xxxx Multiply xxxx_000x_x1xx_xxxx_xxxx_xxxx_1xx1_xxxx Halfword Data Transfer:immediate offset xxxx_0001_0010_1111_1111_1111_0001_xxxx Branch and Exchange xxxx_0001_0x00_xxxx_xxxx_0000_1001_xxxx Single Data Swap xxxx_00xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx Data Processing / PSR Transfer xxxx_011x_xxxx_xxxx_xxxx_xxxx_xxx1_xxxx Undefined xxxx_01xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx Single Data Transfer
大佬有話說 (0)