4.7. 习题

  1. LoongArch支持哪些寻址方式?

  2. 在LA64架构下,执行下面指令后,寄存器r5的值是多少?

li.d 	$r4, 0x7fffffff
add.w 	$r5, $r4, $r4
  1. 针对下面的C语言循环语句,编写对应的汇编指令。

for(int i = 0;i < 100;i++)	a[i] += 2;
  1. 编写汇编指令,用于读取当前处理器是否支持硬件对齐访存。

  2. 使用指令crc.w.d.w编写一个更高效的CRC程序。

  3. 位操作指令仅在LA64架构上支持。若在LA32架构上实现同类功能,应如何处理?请举例说明。

  4. 如何保证多线程对同一共享区域内数据的正确读写?

  5. LoongArch中的跳转指令分为哪几类?分别是什么?

  6. LoongArch中的预取指令是什么?请写出预取指定内存地址中128位数据的汇编指令。

  7. 简述LoongArch中原子访存指令AMO和LL-SC在使用方式上的区别。