diff --git "a/100415_\346\261\207\347\274\226\350\257\255\350\250\200\347\250\213\345\272\217\350\256\276\350\256\241/README.md" "b/100415_\346\261\207\347\274\226\350\257\255\350\250\200\347\250\213\345\272\217\350\256\276\350\256\241/README.md" index e768191e..f6985e51 100644 --- "a/100415_\346\261\207\347\274\226\350\257\255\350\250\200\347\250\213\345\272\217\350\256\276\350\256\241/README.md" +++ "b/100415_\346\261\207\347\274\226\350\257\255\350\250\200\347\250\213\345\272\217\350\256\276\350\256\241/README.md" @@ -12,7 +12,7 @@ #### 2. 教材 -暂无。大多使用课件。 +暂无。大多使用课件。He 推荐王爽的汇编语言(ISBN: 9787302539414)。 #### 3. 作业 @@ -44,8 +44,76 @@ (**注:2020 年小学期因疫情原因取消了考试**) -### 10041501 +### 90821 Pei -### 10041502 +### 91752 He -### 10041503 +#### 更新学期:23242 + +#### 课程说明 + +* **知识点**:硬件基础(考、少)、汇编指令(考、多)、32 位汇编(不考)、产业界动态(不考); +* **授课时间**:上午 8:30-11:20,在教室上理论课,按座位表就坐,每天考勤(考勤方法是看一行有没有缺人,老师的记忆力不错)。周一到周五,上两周。下午用自己的电脑写作业,教室可去可不去(其他班应该是要去的),老师在教室答疑。 +* **作业**:有时候是练习文档,当天提交;有时候是编程作业,可以晚一些交。提交到课程 QQ 群; +* **课件**:比较有干货的课件已上传,其他的ppt比较水,如关于业界动态等等,不在考试范围(他也不发); +* **考试**:**开卷考试,可以携带纸质资料**,两个小时。考前会发一份总复习文档,最后一节课以文档为线索复习,文档中的不少题都是最终考试的原题或蓝本。平时上课的时候也会暗示或明示期末考题某些空的答案; + * **题型**:选择或填空(20 道),程序源代码与截图的对比,程序挖空(共 3 道大题),同时要提交课程反馈表; +* **总体评价**:虽然讲的一般;**但**课程水,事情少(和另外两个班相比);虽然作业描述不清(和渣哥没法比,看看作业文档就知道了),难度陡增,可能需要 AI 辅助完成;用王爽的书自学,效率更高;**但**考前的复习课会划重点,一定要好好听(他只讲知识点,不一定会给出答案,也不会发答案到群里);期末不难,有些人可以在一小时左右完成,大部分人一个半小时左右足矣。 + +总体来说,事情少,适合自学,考试很友好。 + +#### 资料说明 + +资料文件夹参见[同济云盘](https://yunpan.tongji.edu.cn/link/AAA94AFA595AE94EB6963EA0D3E854D860),**提取码 1239**。 + +* **练习**主要是一些知识性的内容; +* **实验**作业需要上机编写 + * 实验 1 是用 C 语言进行编程,不需要汇编的知识; + * 实验 2 使用 `masmPLUS` 编程,用 `DEBUG32` 把程序运行的结果截图下来; + * 实验 3 采用在 C 程序中嵌入汇编的方式完成(`_asm`),输出部分使用 `printf`,核心操作使用内嵌汇编; + * 实验 4 用 C 语言编写程序,将其反汇编成 `.asm` 文件,删除不必要的配置代码,保留核心代码段,并把 32 位的操作修改为 16 位的,提交 `Debug` 下的运行结果。 + +**每年的作业很可能不同**(~~都是老师一拍脑袋想的~~)。 + +* **ppt** 足以涵盖考试范围,结合**总复习文档**效果更佳; + +* 需要配置的**环境文件**,为了教学研究目的,也已经一并上传到同济云盘,**提取码 1239**。 + + * [DOSBOX](https://yunpan.tongji.edu.cn/link/AAA0EB62F3056043F4805A4D1EFE96E5DD) + * [masmPLUS](https://yunpan.tongji.edu.cn/link/AAFC25BFCB2F9C4C6BB75ABCAFE43066CA) + * [DEBUG32](https://yunpan.tongji.edu.cn/link/AA5E7580EA15694137990F3005ABCF28CF) + + **注:** + + 王爽的书采用的是 `DEBUG`,而不是 `DEBUG32`,我们用 `DEBUG32`,二者差别不大,但为了和学校要求一致,这里提供 `DEBUG32`。 + +#### 环境配置 + +* `DOSBOX` +* `masmPLUS` +* `DEBUG32` + +其中, + +* `DOSBOX` 是运行汇编代码的环境,类似于一个虚拟机,由汇编文件生成的 `.exe` 文件只能在这里面运行,使用方法很简单; + + **注:** + + 每次使用之前需要 `mount` 并切换到 `mount` 的目录,似乎只需要强调这一点,见一个例子; + + ```cmd + mount c: c:/assembly/project # 前面是 DOS 的目录,后面是操作系统(Win11..)的目录,相当于构建了一个映射 + c: # 切换工作目录为 C:(默认是 Z:),这样 DOS 就可以访问到 c:/assembly/project 下的文件 + ``` + + 注意,要把 `DEBUG32`,`.asm` 文件放入到操作系统的目录,`DOS` 才能访问到对应文件。 + +* `masmPLUS` 是一个汇编编译器,类似于VS之于C语言,可以编译、链接 `.asm` 文件,注意如果不愿意按照它给的模板为基础进行编译,想新建一个空白文件的话,一定要在首行加上 `;#Mode=DOS`,否则编译报错,这应该是编译器的约定; + +* `DEBUG32` 是查看程序运行过程中,内存与寄存器变化的程序,使用 `DEBUG32 foo.exe` 来运行 `DEBUG32`。 + +`DOSBOX` 和 `masmPLUS` 双击安装即可,`DEBUG32` 要拖到对应文件夹。 + +**最后祝大家学习顺利!** + +### 91933 Zhang