finish question 2-1 3-1

main
origami-b 12 months ago
parent 1a59368ede
commit 98168c0dcc

@ -1,6 +1,6 @@
# PW6 实验报告
学号PB2100 姓名 吴书让
学号PB21000179 姓名 吴书让
学号PB21111627 姓名 罗胤玻
## 问题回答
@ -87,6 +87,27 @@ define dso_local i32 @main() #0 { ; 定义一个名为main的函数返回类
2. 函数调用语句对应的LLVM IR的代码中会将函数的返回值存储到一个临时变量中然后再对临时变量进行操作。
3. 调用者使用`call`指令调用被调用者,被调用者使用`ret`指令返回调用者。
------
### Task2
> 2-1 请给出`SysYFIR.md`中提到的两种getelementptr用法的区别, 并解释原因:
**2-1**
- `getelementptr`实际上是一条指针计算语句,不进行任何数据的访问或修改,作用是计算指针并修改计算后指针的类型。
- 第一个参数为要进行计算原始指针的类型;
- 第二个参数是原始指针,往往是一个结构体指针,或数组首地址指针。
- 第二个参数及以后的参数都称为index表示要进行计算的参数作用在第二个参数给出的初始指针如结构体的第几个元素数组的第几个元素。
- **第一种用法**获取数组元素所在地址一个偏移0得到%1指向数组的第一个用第二个偏移0得到首元素向后偏移量返回此地址
- **第二种用法**获取指针地址第一个偏移0计算得到%1所指的变量并返回该变量的地址
-----
### Task3
> 3-1. 在`scope`内单独处理`func`的好处有哪些。
**3-1** 在不同的scope中可以使用相同的变量名而不必担心命名冲突的问题同时也可以提高代码的可读性和可维护性。
## 实验设计

Loading…
Cancel
Save