add part of the report

main
stivenkingsberg 11 months ago
parent b919258ffc
commit 712dd334d4

@ -2,16 +2,16 @@
## 贡献详述
### 组员1 张三
我们每个人分别完成了实验一、实验二的两个代码文件,同时实验三我们一人写了一半的函数。陈应豪负责上面一半,李璐豪负责下面一半
### 组员2 李四
### 组员1 陈应豪
### 组员3 王五
### 组员2 李璐豪
## 评定结果
| 组员姓名 | 贡献百分比 |
| :-----: | :-------: |
| 张三 | xx% |
| 李四 | xx% |
| 王五 | xx% |
| 陈应豪 | 50% |
| 李璐豪 | 50% |

@ -1,9 +1,32 @@
# PW6 实验报告
学号1 姓名1 学号2 姓名2 学号3 姓名3
PB21000117 陈应豪
## 问题回答
### task1
- `while`语句块的布局特点是将循环体、循环条件和循环结束语块分成三个bb块。
- cond_bb是条件。如果为真就跳转到true_bb否则跳转到false_bb
- true_bb是循环体。每次结束后跳到cond_bb
- false_bb是循环结束语块
- `Func`语块是一个单独的语句块。在调用函数的时候使用call的方法来调用函数然后把变量传入到函数中
### task2
请给出`SysYFIR.md`中提到的两种getelementptr用法的区别, 并解释原因:
- `%2 = getelementptr [10 x i32], [10 x i32]* %1, i32 0, i32 %0`
- `%2 = getelementptr i32, i32* %1, i32 %0`
区别:第一种先说明了数组的类型和数组指针,然后再根据偏移类型和偏移值算出地址;第二种方式是用普通的指针而非数组指针做基址加偏移。
原因是数据结构不同
### task3
使用scope处理函数能很好的约定变量的作用域不容易引起变量的越界
## 实验设计
## 实验难点及解决方案

Loading…
Cancel
Save