【写在开课前】
这学期,接了一门新课——汇编语言程序设计。
这是门好课。学好了,能干的工作,那是高大上;职业中不指望自己的工具袋中备一把名叫“汇编”的榔头的同学,借着汇编语言,也可以练计算机专业学习的内功。
新培养方案中恢复了这门课,我就想将捣鼓捣鼓这门课程。搞了好多年“计算”的事,早对自己离“计算机”有点远而不满。备课中,再回计算机的底层,重新体会“螺丝壳里做道场”的精致。
教学模式继续翻转课堂,随着授课进度,同步建设资源。这样做,自己的时间会紧张,但有过了《数据结构》课程翻转的考验,还是有把握下来的。只不过,这门课的高度,不可以拨到与数据结构等齐,顺便探讨在翻转课堂背景下,降低学生学习负担的办法。如何让我的学生能学得有效,学得嗨皮,这是我要做的事。
【开课后】
上路了,路就清楚了。这门课中,不再以积累代码量为其中的目标,因此,也就不要求我的学生都开博客了。利用博客提供一些资源,这还是要的。
好吧,这门课将与之前的不一样,这一个“课程主页”是我的所有学生共享的“学习园地”。
【课程内容】
第1部分 绪论 视频及课件链接
第1章 基础知识
0100 导学
0101 为什么要学汇编语言
0102 由机器语言到汇编语言
0103 计算机的组成
0104 内存的读写与地址空间
0105 汇编语言实践环境搭建
参考:1. 搭建x86汇编语言学习环境 2.Android手机玩8086汇编
第2部分 访问寄存器和内存 视频及课件链接
0200 导学
第2章 寄存器
0201 寄存器及数据存储
0202 mov和add指令
0203 确定物理地址的方法
0204 内存的分段表示法
0205 Debug的使用
实验1 实验环境搭建与Debug使用
答疑记录:机器码与汇编指令的对应关系;用e命令为啥改不了内存的值?;
0206 CS、IP与代码段
0207 jmp指令
第3章寄存器(内存访问)
0301 内存中字的存储
0302 用DS和[address]实现字的传送
0303 DS与数据段
0304 栈及栈操作的实现
0305 关于“段”的总结
第3部分 汇编语言程序 视频及课件链接
0400 导学
第4章第一个程序
0401 用汇编语言写的源程序 例程
0402 由源程序到程序运行
0403 用Debug跟踪程序的执行
第5章(BX)和loop指令
0501 […]和(…)
0502 Loop指令 例程
0503 Loop指令使用再例 例程
0504 段前缀的使用 例程
实验2-汇编语言程序框架
第6章 包含多个段的程序
0601 在代码段中使用数据 例程
0602 在代码段中使用栈 例程
0603 将数据、代码、栈放入不同段 例程
第4部分 内存寻址方式 视频及课件链接
0700 阶段导学
第7章更灵活的定位内存地址的方法
0701 处理字符问题 例程
0702 [bx+idata]方式寻址 例程
0703 SI和DI寄存器 例程
0704 [bx+si]和[bx+di]方式寻址
0705 [bx+si+idata]和[bx+di+idata]方式寻址
0706 不同的寻址方式的灵活应用
0707 不同寻址方式演示
学生总结-2015
实验3-寻址方式
答疑记录:no stack segment警告为何还在? 毁掉自己的汇编程序
第8章数据处理的两个基本问题
0801 用于内存寻址的寄存器
0802 在哪里?有多长?
0803 寻址方式的综合应用 例程
0804 用div指令实现除法
0805 用dup设置内存空间
学生总结-2015
实践题目:求平均成绩(用汇编玩结构体) 冒泡排序
第5部分 流程转移与子程序 视频及课件链接
0900 导学
第9章转移指令的原理
0901 “转移”综述
0902 操作符offset 例程
0903 jmp指令 例程
0904 其他转移指令 例程
学生总结-2015
实验4-利用跳转指令构造循环
第10章CALL和RET指令
1001 call指令和ret指令 例程
1002 call 和 ret 的配合使用 例程
1003 mul 指令
1004 汇编语言的模块化程序设计 例程
1005 寄存器冲突的问题 例程
【知识拓展】 【参考例程】
第11章标志寄存器
1101 标志寄存器
1102 带进(借)位的加减法 例程
1103 cmp和条件转移指令
1104 条件转移指令应用 例程
1105 DF标志和串传送指令 例程
第6部分 中断及其应用 视频及课件链接
第12章内中断
第13章int指令
第14章端口
第15章外中断
第16章直接定址表
第17章使用BIOS进行键盘输入
第7部分 高级汇编语言技术 视频及课件链接