第一篇:第8章 语言与高级语言的连接(教案)
13.3汇编语言和高级语言程序的连接
由于使用高级语言编写及调试程序比汇编语言的开发效率高,可移植性好,所以,高级语言比汇编语言使用更广泛。但是在要求实时性高、占用空间少或要求直接控制硬件的场合,仍然要用到汇编语言,实现对硬件直接控制和更快的控制速度。但汇编语言编程复杂、表达能力也差,因此比较好的解决办法是C语言与汇编语言混合编程。
目前主要的C语言程序开发环境有:Turbo C/C++、Borland C/C++,Visual C++等,都支持与汇编语言的混合编程。C语言与汇编语言的混合编程方法一般有两种方法可以实现,即在C语言中嵌入汇编语言,也称嵌入式编程和用 C语言调用汇编语言模块,即多模块混合编程。
1.汇编语言的嵌入式编程
1.内嵌汇编语句格式
在Turbo C中,C程序中嵌入的汇编语句前必须以关键字ASM开头,其格式为:
ASM <操作码> <操作数> <;或回车换行> /*注释*/ 其中ASM为关键字,操作码可以是处理器指令也可以是伪指令,操作数是操作码可以接受的数据,可以是指令允许的立即数,寄存器名,也可以是C程序中的常量、变量和标号。C程序中嵌入汇编代码后可以有分号也可无分号,如果汇编代码后无分号则必须以换行符结束(嵌入的汇编语句是C语言中唯一可以换行结束的语句),如果汇编代码后有分号,则一行中可以有多条嵌入的汇编语句,但一条汇编指令不能跨越两行。
特别要注意的是,嵌入的汇编语句的注释方式须采用C语言的注释方式,即必须用/*……*/来标记注释。而不能像纯汇编那样用(;)作为一条注释的开始。如:
ASM MOV AX,DX;
/*单个语句*/ ASM PUSH AX;ASM POP AX;ASM MOV BX, AX;/*多个语句写在一行 */ 如果在C语言程序中要嵌入多个ASM语句,可以将它们放在花括号内。如: ASM {
MOV AX,DX
PUSH AX
}/*注释*/
在C程序中,函数内部的汇编语句都是一条可执行的语句,它被编进程序的代码段,在函数外部的汇编语句是一个外部说明,在编译时放在程序的数据段中。这些外部数据可以被其他程序引用。C语言允许嵌入的指令集是有限的,它跟C语言的编译环境有关。在Turbo C2.0中允许嵌入的汇编指令主要包括8086指令集,例如一般传送和运算指令、串操作指令、跳转指令、数据分配和定义指令等。
嵌入汇编比调用汇编子程序更方便、灵活、功能也更强。但嵌入汇编不是一个完整的汇编程序,所以许多错误不能马上检查出来。2.转移指令的执行
内嵌汇编指令可以使用转移指令和LOOP循环指令,但是它们只能在函数体内有效,不允许进行段间转移。由于ASM语句中不能给出标号,因而转移指令只能使用C语言程序中GOTO语句使用的标号。例如:
int fun1(){ … label: … asm … } jmp label 3.直接嵌入汇编代码的C语言程序示例
例 编写一个三个整数的求和的C函数,用在C语言中嵌入汇编语言方法实现。
int Sum(int X, int Y, int Z)
{ ASM PUSH AX;/*保护现场,否则可能影响前面的程序执行*/ ASM MOV AX, X;ASM ADD AX, Y;ASM ADD AX, Z;ASM MOV X , AX;ASM POP
AX;
/*恢复现场*/ return(X);
}
例.用嵌入汇编的方法编写实现求两个整数中的最小值的C语言函数。
int min(int v1,int v2){ ASM MOV AX,v1 ASM CMP AX,v2 ASM JLE over;ASM MOV AX,v2 over: return(_AX);/*_AX为AX寄存器*/ } 内嵌汇编指令的C程序只能采用TCC命令行的编译连接方法。用TCC命令行实现的编译连接的方法是:
TCC-B-L: LIB 文件名 库文件名
其中-L选择项指定了连接所需的库文件路径,文件名指有内嵌汇编指令的C程序名,库文件指程序重要用到的库函数所在的库文件(Turbo C标准库可省略)。
内嵌汇编指令的C程序进行编译时,必须要有-B选择项,否则编译时,一旦遇到汇编代码,便立即给出警告信息,并以-B选项重新进行编译,若在C程序中加上#program inline预处理语句,则可省略-B选择项。
2.在C程序中直接调用汇编子程序
在C语言中直接嵌入汇编语句的方法限制较多,不能充分发挥汇编语言的功能。一种更好的方法是把需要用汇编实现的工作设计成汇编子程序,然后由C语言调用。
在设计能被C调用的汇编子程序时,可以使用完整的段定义或者简化的段定义结构。2.1编写汇编子程序注意的问题
(1)变量和函数的使用
(2)参数传递(3)寄存器使用规则(4).存储模式规则
(1)变量和函数的使用
C程序中可以调用汇编子程序及定义的变量,汇编子程序也可以调用C语言书写的函数和定义的变量。但是,C语言编译系统在编译C语言源程序时,要在其中的变量名、过程名、函数名等标识符前面加下划线“_”。例如,在C语言程序中变量name,在编译以后变量变为_name。依次在汇编语言中调用C语言的函数和变量时,应在函数名和变量名前面加上下划线“_”。并在汇编语言程序的开始部分,应对调用的函数和变量用EXTERN加以说明。
其格式为:
EXTERN_函数名:函数类型 EXTERN_函数名:变量类型
其中,函数类型指明该函数是一个近程或远程函数(NEAR或FAR),变量类型为变量的数据类型。
其对应关系:
C语言
汇编语言
数据长度(字节)Char
DB(BYTE)
int short
DW(WORD)long
DD(DWORD)
float double
DQ(QWORD)例如调用C程序中名为myfunc()的函数和变量mem等,则在C语言程序中说明为:
int myfunc(vido);int mem;char ch;long result 在调用它的汇编子程序中说明为: exteern _ myfunc:char extrn_mem:word,ch:byte,result:dword 若C程序调用汇编语言中的子程序或变量,则在汇编语言中用public进行说明,且函数名和变量名前用下划线。如::
public _myfunc01 public_num 而在C语言中则应将其说明为extern,即: extern myfunc01();extern num;要注意此处不能带有下划线,同时要注意C语言对大小写敏感的问题。(2)参数传递
C语言调用汇编子程序时,参数是通过堆栈传递给汇编子程序的,要注意C语言程序参数入栈的的顺序是从右到左,在执行汇编子程序前还要将返回地址压入堆栈。由于堆栈是向下生长的,故每入栈一次。栈指针都相应减少;而在出栈时相反。
例如,在C程序中说明一个用汇编书写的函数,若在小内存模式下编译,则表示为:
void abc(char*p1,int p2);在大内存模式下编译,则要说明为远程的,如下所示:
void far abc(char*p1,int p2);在大内存模式下,要将相应的段地址和便移地址入栈。3.寄存器使用规则
在C语言中调用的汇编语言模块中,通常汇编程序可以任意使用计算机内部的通用寄存器,如AX、BX、CX、DX、ES等。这些通用寄存器的值在调用后可以发生改变,标志寄存器的值也可以发生改变。但有些寄存器如:DS、CS、SS、BP、SP等,如果在调用的汇编语言程序中有用到,则必须先进行保护(入栈),退出前加以恢复(出栈)。变址寄存器SI和DI如在调用汇编语言程序中使用到也要加以保护。
4.存储模式规则 在TURBO C中提供了6种不同的存储模式,分别对应6种不同的汇编语言存储模式。即对不同的C语言存储模式(极小、小、紧凑、中、大和巨)要选用相应的汇编语言存储模式,如C程序为小模式,汇编程序也用小模式,C程序为大模式,汇编也用大模式等。
设定汇编语言的存储模式可采用.MODEL伪指令,设定TUBRO C的存储模式可利用TCC命令行的选项-m。
下面是一个C语言程序调用汇编语言子程序的例子,假定C语言主程序存放在文件c_main.c和masm_sub.asm中,其内容分别如下:
c_main.c文件: extern int divs(int,int);/*声明divs为外部函数*/ main(){
printf(“%d\n”,divs(16,3));/*调用外部函数*/ }
masm_sub.asm文件
.MODEL SMALL
;采用小模式.CODE
PUBLIC divs
;指明该过程可被外部调用 divs proc PUSH BP
;保护bp MOV BP,SP MOV AX,[BP+4]
;参数 MOV CX,[BP+6]
;另一个参数 SHR AX,CL
POP BP
;恢复bp RET divs ENDP END 其中伪指令model small 对应C的小模式编译;code 标志一个代码段的开始,这是MASM 5.0的简化段格式;puplic divs 说明divs是公用的,可以由外部其它单独编译模块调用。
将C源程序以文件名c_main.c存盘,汇编语言源程序以文件名masm_sub.asm 存盘;再分别用各自的编译系统,编译成目标程序c_main.obj和masm_sub.obj;最后用link连接程序,将两个目标程序连 接成可执行程序c_main.exe。
其实,汇编语言与C语言混合编程时,除了可以在C语言中调用汇编语言子程序,也可以在汇编语言代码中调用C语言函数,但在调用时要注意函数参数的传递方法。详情请参见有关文献资料。
3.使用C和汇编语言混合编程的编译及连接
对于用C语言和汇编语言分别独立编写的符合以上要求的程序,要想使它们最终形成一个系统,需要对他们进行编译和连接,以便生成一个可执行文件。
在混合编程时要注意,C程序和汇编语言子程序所采用的内存模式,当都是小/微/紧凑模式时,在C程序的说明部分是需要说明为EXTERN即可,否则必须说明为FAR型,下面是在Turbo C环境下同为小内存模式的混合编程的例子。
例 : 从6个数中找出其中的最大数并显示。要求查找最大数的功能由汇编语言子程序max-num实现。
(1)编写源程序
汇编子程序使用简化的段格式编写。C程序调用该子程序时,共传递7个参数,第一个为数据的个数,其余为数据部分。
源程序如下:
#include
.model small
;program name :asm_max.asm
.code
public _max_num _max_num proc near
push bp
mov bp,sp
mov cx,[bp+4]
;取数据个数
jcxz exit
mov ax,[bp+6]
;取第一个数据 comp: add bp,2
;修改地址指针
cmp ax,[bp+6]
;两数比较
jge gtest
mov ax,[bp+6]
;大数放在AX中 gtest: loop comp exit:
pop bp
ret _max_num endp
end
(2)编译和连接
①在DOS环境下,用TASM或MASM将汇编语言子程序(asm_max_asm)编译生成目标文件.obj(asm_max.obj)。例如:tasm asm_max.②在TC主界面下,单击主菜单中的project项,选中子项project name,输入一个后缀为为.prj的工程文件(例如max.prj)该文件包含需要编译连接的C语言源程序和它调用的汇编语言子程序的目标文件名,对于本例,其内容为:
c_max.c asm_max.obj ③关闭大小写敏感开关,即把Options选项的Linker的Case-sensitive Link置成OFF。
④按F9键对工程文件进行编译连接,生成一个.exe文件,本例为max.exe.⑤在DOS环境下输入MAX运行该可执行程序。
对于不是小/微/紧凑内存模式下的混合编程,C程序必须把被调用的汇编子程序说明为远程函数,若有函数参数为指针类型时,也要说明成FAR型,即它包含段地址和便移地址两部分。
例:求若干个16位带符号数之和,其和为32位数。
要求求和程序用汇编语言编写,而定义数据和及显示用C语言编写。
参考程序如下:
extern long asum(int*,int);int buf[5]=10000,-20000,30000,6000,0);main(){ long x;x=asum(buf,5);printf(“x=%dn”,x)}
子程序—汇编源程序 fram struc regbp dw ? retaddr dw ? pointer dw ? count dw ? farm ends.model small.code public _asm;声明为公用子程序
_asm proc push bp mov bp,sp push si push di cld mov si,[bp].pointer mov cx,[bp].count xor bx,bx mov di,bx c1:lodsw cwd add bx,ax adc di,dx loop c1 mov dx,di;返回结果的高16位 mov ax,bx ;返回结果的低16位 pop di pop si pop bp ret _asum endp end 在C函数中声明asum是外部函数,并定义了若干个数组元素,然后调用汇编子程序asum求和,最后把结果显示在屏幕上。
在汇编程序中首先声明asum子程序是公用的,然后使用由堆栈传递的数组开始地址及元素个数,从数组中取出元素求和,返回的32位结果在DX:AX中。;求数组和
4. 汇编语言程序调用C函数
如同C语言程序调用汇编语言子程序一样,在汇编语言中调用C函数时也要按有关约定编程。
(1)在汇编语言中,对所使用的C函数和变量名在其名字前均应加下划线。例如,调用一个C函数func(),则在汇编程序中应写作call_func.(2)对调用的C函数用EXTERN伪指令加以说明。若函数为NEAR型,EXTERN语句可以放在代码段中,为FAR型,则要放在所有的段之外。
(3)对汇编语句中使用的C函数变量用“EXTERN变量名:size”说明,其中,SIZE视数据类型而定。例如int 型为2。
(4)参数传递有两种,一种是在C程序中定义变量,在汇编程序中把它说明成EXTERN型,另一种是采用堆栈传递,这时要注意压入堆栈的顺序。
MASM6.0汇编语言程序上机
汇编语言程序上机过程分为编辑、汇编、连接和调试4个步骤。
(1)编辑源程序
编辑源程序是利用文本编辑工具生成一个由汇编语言语句构成的文本文件,文件扩展名为.ASM,扩展名不能省略。
(2)汇编源程序
汇编语言源程序不能直接执行,必须转换为机器语言程序,这个过程叫汇编。最常用的汇编工具为MASM软件,它有很多版本,这里主要介绍MASM6.X。MASM6.X包含了许多文件,最常用的文件有:
ML.EXE
LINK.EXE CV.EXE 汇编程序 连接程序
调试程序Code View 1.汇编程序ML.EXE(Masm and Link)
ML可以自动调用LINK,实现对程序的汇编和连接。设源文件名为MYFILE.ASM,汇编的基本命令格式为:
ML/c MYFILE.ASM 其中,源文件的扩展名为.ASM。若程序无语法错误,则汇编后将生成MYFILE.OBJ文件。此外若不带参数/c,直接使用命令;
ML MYFILE.ASM 则ML将自动调用连接程序LINK进行连接,生成MYFILE.OBJ与MYFILE.EXE,这样就不需要单独使用LINK命令。
ML包含很多命令参数,使用命令/?可以列出ML允许的所有参数及其说明。ML命令格式如下:
ML[/〈选项〉]〈源文件列表〉[/LINK〈连接选项〉] 其中,方括号中的内容为可选项。ML后的参数是大小写敏感的。“/〈选项〉”是可选的一个或多个参数,每个参数均以“/”开头,参数之间以空格分开。〈源文件列表〉中多个文件以空格分开,要求给出完整的文件名。
ML允许的选项很多,常用的选项如下: /AT /c
生成.COM文件 只汇编,不连接
指定生成的可执行文件名 /Fe〈可执行文件名〉
/F1〈列表文件名〉 同名
/Fm〈映像文件名〉 文件同名
/Fo〈目标文件名〉 /I〈包含路径名〉
产生列表文件(.LST),缺省与源文件
产生映像文件(.MAP),缺省与源
指定生成的目标文件名 指定include文件的路径名
ML除了产生目标文件外,还可以根据需要生成一些其它文件,如列表文件(.LST)和映像文件(.MAP)。例如,下列命令
ML/F1/Fm myfile.asm 除了能生成myfile.obj与myfile.exe外,还能生成列表文件myfile.lst与映像文件myfile.map。2.列表文件
列表文件是一个文本文件,其内容包括两部分。第一部分中从左到右依次列出数据或指令在段内的偏移地址,机器代码和源程序。若程序中有语法错误,则列出错误信息。第二部分列出了程序中定义的所有标识符的信息,比如段的名称、大小与长度,变量与标号的名称、类型与偏移地址等。3.映像文件
映像文件是一个文本文件,主要列出每个段的内存分配,给出了每个段的起点、终点、长度、段名、类别以及程序执行的起始地址等。
4.8.3目标程序的运行和调试
经过汇编、连接后产生的.EXE可执行文件可在DOS状态下直接输入文件名运行该程序。
如果出现错误,可用动态调试程序DEBUG进行调试,找出错误后,再重复上述过程,直到程序正确为止。调试的方法包括单步执行、设置断点、连续执行、修改内存单元以及寄存器的值。本章小结
不论是汇编语言还是高级语言,程序设计的过程大致是相同的。一般都要经过问题分析、算法确定、框图表达、源程序编写等步骤。编写汇编语言程序要严格遵循汇编语言程序的基本语法格式。伪指令是辅助汇编的命令,合理使用汇编语言的伪指令可以使程序简化,可读性强、执行速度快;简化的段定义伪指令使用指定的存储模式编程,给程序设计带来极大的方便;使用MASM6.X中的过程调用伪指令调用过程,极大地方便了过程或参数间的传递。宏可以把重复出现的一段程序定义为一条宏指令,这样,在源程序中就可以用一条宏指令代替所定义的程序段,在汇编时遇到宏指令,汇编程序就将其替换成相应的代码块。C语言与汇编语言混合编程较好地解决了微机对硬件直接控制和提供更快的控制速度问题。熟练掌握汇编语言的编程技术,掌握顺序、分支、循环和子程序的编程方法、掌握DOS系统功能调用和汇编语言与C语言的混合编程方法,才可以编写高质量的程序。
习题
求若干个16位带符号数之和,其和为32位数。
(要求求和程序用汇编语言编写,而定义数据及显示用C语言编写)。
主程序—C Extern
long
asum(int*,int);
{
} Int buf[5]={10000,-20000,30000,6000,0};Main()
long x;x=asum(buf,5);printf(“x=%dn”,x)子程序—汇编程序 PRAM REGBP STRUC DW ? ? ? ? RETADDR DW POINTER COUNT PRAM
DW DW ENDS.MODEL SMALL.CODE
;申明为公用子程序 PUBLIC _asum _asum PROC PUSH BP
C1:
_asum MOV BP,SP PUSH SI PUSH DI CLD MOV SI, [BP].POINTER MOV CX,[BP].COUNT XOR BX,BX MOV DI,BX LODSW
;求数组和
CWD ADD BX,AX ADC DI,DX LOOP C1 MOV DX,DI ;返回结果的高16位MOV AX,BX ;返回结果的低16位POP DI POP SI POP BP RET ENDP
END 在C函数中申明asum是外部函数,并定义了若干个 数组元素,然后调用汇编子程序求和,最后半结果显示在屏幕上。
通过该例应学会C的数组指针与汇编语言程序中数组首地址的对应关系。
习题
P258
8.1 , 8.4,8.5
第二篇:高级语言
高级语言百科名片
由于汇编语言依赖于硬件体系,且助记符量太难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。简介
计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的c,c++,C#,pascal,python,lisp,prolog,FoxPro,VC,易语言(其中C/C++属于中低级语言)等等,这些语言的语法、命令格式都不相同。
低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。
高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。
高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。类型
程序设计语言的类型:
1.命令式语言。这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C#等,各种脚本语言也被看作是此种类型。2.函数式语言。这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如Lisp、Haskell、ML、Scheme、F#等。
3.逻辑式语言。这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是Prolog。
4.面向对象语言。现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。主要的纯面向对象语言是Smalltalk。虽然各种语言属于不同的类型,但它们各自都不同程度地对其他类型的运算模式有所支持。好处 程序设计语言从机器语言到高级语言的抽象,带来的主要好处是:
1.高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;
2.高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;
3.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;
4.由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。
第三篇:语言与文化教案
《入乡问俗——语言和文化》教案
教学目标: 知识与能力:正确理解语言与民族文化的关系 过程与方法:通过语言现象来了解民族文化和心理 情感态度与价值观:通过引导学生正确理解语言与民族文化的关系,激发学生对祖国文化和语言的热爱
教学重点:通过语言现象来了解民族文化和心理并正确理解传承民族优秀传统文化
教学难点:通过语言现象来了解民族文化和心理并正确理解传承民族优秀传统文化
教法学法 点拨引导、自主讨论 学习时数 一课时
教学要点
一、导入:(课件展示中西方龙的图片)讨论在中西方龙分别象征了什么。“龙”是中国人的一种图腾崇拜。中国人心中的龙常常是神,或者是神人的坐骑,中国龙与帝王有密切的关系,有真龙天子、龙旗龙袍、龙庭龙辇等等说法。跟“龙”相关的词语还有“龙凤呈祥、龙腾虎跃、生龙活虎”等。)西方的“龙”是一种怪兽。早在4000年前,西方神话故事中就出现了被称“Dragon”的怪兽,在大部分希腊神话中,龙都是扮演着屡屡被神和英雄击败或被愚弄的对象。大约在公元2世纪,欧洲龙的形象出现了比较大的变化,它有毒,能喷火,长着蝙蝠状的大翅,腆着大肚子,怪模怪样而且贪财、狡诈、残暴。常以人或动物为食,喜欢呆在储藏金银和宝藏的地方,在《圣经》故事中,魔鬼撒旦化成一条大红龙,尾巴扫过了1/3的天上星辰,它有七个头,每个头上都戴着王冠,贪婪地吞吃着新生的婴儿。于是,西方龙就从“守财奴”堕落成了最邪恶的魔鬼,被描述成罪恶、狡诈和残忍的代表。
人们对同一事物投以的情感有如此大的差异,归根结底是由于中西方的文化不同。
二、什么是文化?
广义地说,文化指的是人类在社会历史发展过程中所创造的物质和精神财富的总和。它包括物质文化、制度文化和心理文化三个方面。物质文化是指人类创造的种种物质文明,包括交通工具、服饰、日常用品等,是一种可见的显性文化;制度文化和心理文化分别指生活制度、家庭制度、社会制度以及思维方式、宗教信仰、审美情趣,它们属于不可见的隐性文化,包括文学、哲学、政治等方面内容。
狭义的文化是指人们普遍的社会习惯,如衣食住行、风俗习惯、生活方式、行为规范等。中国酒文化:
积累诗词中有关“酒”的诗句
三、讨论合作探究语言能否体现民族文化和民族心理呢?
1、从文字看民族生活和历史
(1)不同的民族心理和民族文化对语言有着深刻的影响,而语言则体现了民族文化和民族心理。通过语言文字来直接了解早期的民族文化更是研究文化的重要途径。从“安”、“家”、“姓”这几个字中可以得到哪些文化信息?
(“安”上面一个宝盖头,下面一个“女”。宝盖头代表房屋,那么“安”字的意思就是家里有个女人。“家”是屋子底下有一头猪,猪是古时人们财富的象征,可见猪的地位之高了,但似乎光有头猪,这个“家”并不完整,也并不和谐,往“家”里再领个女人回来,如此才算是真正地“安” “家”了,这正反映了母系社会的一种文化,母系社会实行走婚制,家里只知其母不知其父,女子占据着统治地位。“姓”是“女”字旁一个“生”,所以“姓”字的本义呢就是女子所生的子女。现今流传下来最早的那些姓氏几乎都带有“女”字旁,如炎帝部落是“姜”姓,黄帝部落是“姬”姓,从中也可以看出女性在母系社会的高地位。(2)汉字新解,从以下汉字中任选一个,写一段个性化的解读。(利用汉字的独特结构、内涵,抒写现实人生的新思想、新理念)骗 挫 说 值 舒 愧
2、从词汇看社会生活与社会意识
教材里给我们归纳了三种用“吃”描写人物的方法,分别是通过食物的外部形状、属性、吃东西的动作神态描写人物,同时分析了跟“吃”有关的词语为什么可以描写人物。其实,跟“吃”有关的工具,也经常出现在汉语中,形成各种词语或固定的用法,用来比喻人间万象,比如(课件):
碗:人们从“碗”的制作材料着眼,创造了“铁饭碗”“金饭碗”“泥饭碗”等词语。“泥饭碗”表示工作无保障,随时有失业的危险;“铁饭碗”则相反,表示工作有保障;而“金饭碗”表示称心如意的工作。
刀:词语有“快刀斩乱麻”“白刀子进,红刀子出”“刀架脖子上”“刀子嘴” 锅:“大锅饭”“砸锅卖铁”“背黑锅”“打破沙锅问到底”“吃着碗里的,看着锅里的” 有关“吃”的字词,在汉语中大量地被用来表述复杂的人生。结合我们的历史背景与民族心理,你能推测是什么原因吗?
语言体现了民族文化和民族心理。中国在历史上是长期的农业文明,看天吃饭。天灾与战乱较为频繁,时时有饥荒,严重影响人的生存,中国人将食的追求作为人生至乐来追求,吃饭成为第一要求。正因为如此,长期以来,中国就形成了自己独特的饮食文化。饮食文化是中华文化的一个重要组成部分,很多关于“吃”的说法就无不与汉民族的民族心理密切相关。(地大物博,可以吃的东西特别多,据统计,我国仅食用的蔬菜品种就达600多种,而西方人尚不及我们的六分之一。特别敢吃,天上飞的、地上爬的、水里游的都敢把它作为我们的腹中物。中国人对“吃”还特别讲究,食物要做到色、香、味俱全,而且各地有各地的吃法,有很多“吃”的派别,比如浙系菜、川菜、湘菜等等。)
3、从语言看历史变革、文化背景(1)文革期间流行生活对话:
甲:为人民服务,我要买盒烟。乙:要斗私批修,什么烟? 甲:革命无罪,一号烟。乙:造反有理,两毛钱一盒。甲:一不怕苦,这是钱。乙:二不怕死,找你三毛。
(文革期间习用毛主席语录。就像如今计算机和网络技术的突飞猛进,极大改变了人们的生活方式,与之相关的词如“手机,寻呼机,E—mail(电子信箱),上网,网络,因特网,网虫”等名词频繁地出现在人们口头及报章杂志上。)(2)通讯工具的变化:
马匹、驿站、飞鸽传书、烽火台、信号弹、电报、传真、大哥大、呼机、手机、QQ、MSN、微信
(3)姓名的选择与社会变迁息息相关
第一代(上世纪初): 李守仁、李守义、李守信 第二代(上世纪二三十年代):李有金、李有银、李有财 第三代(上世纪四五十年代):李翻身、李解放、李建国 第四代(上世纪六七十年代):李运动、李文革、李红卫 第五代(上世纪八九十年代):李约翰、李安娜、李丽莎
4、从语言看地方民俗
上海人看望病人不带苹果(谐病故)。一般有情人不分吃梨子。(分离)搬家不能送别人钟作礼物。(送终)河北人在婚礼上不摆无花果。(无结果)不能给恋人送伞。(分手散伙)
请说说在你的家乡传承下来的一些优良的民俗风情
5、从语言看民族文化心理。(1)《诗经》以四言为主,以二言为一节拍,充满了骈偶对称的句子;散文中也重视语句成双成对的运用。
(2)对联,是中华民族独有的一种传统文化形式,是民族文化心理的一种独特而生动的体现。对联文化充分展示了汉语的对称美和韵律美,而且具有比其它文体更加突出的装饰功能、实用价值和趣巧特征,故特别为广大华人读者所喜闻乐见。
四、不同的民族文化,使得我们对同一事物的表达方式不同,但各个民族的人们内心深处都有着对世界和平的渴望和美好祝福。“吉祥如意”在不同民族的表达语:
五、观看中国国家形象宣传片,从中找中国元素或文化符号
六、小结:语言与文化互相影响,互相作用;理解语言必须了解文化,理解文化必须了解语言。我们祖国的语言,是祖国五千年文明的象征,是祖国存在的标志,是祖国未来的希望;祖国的语言里,耸立着珠峰,绵延着昆仑,流淌着黄河,镌刻着长城;祖国的语言里,凝聚着我们不屈的民族精神;让我们热爱我们的文化和母语吧!
七、作业布置: 探究:
1、中西方对数字的喜恶,说说其背后的文化。
2、“唐宋八大家”之首姓韩名愈,字退之。或请以班级中某一同学的姓名为例,请问这样的姓名中体现了什么样的文化心理?
第四篇:语言教案
《汇编语言》教案
课程类别:专业基础课 课程性质:必修
开课专业及年级:计算机科学与技术专业,大二 课程教学总学时数:56 学时分配:课堂讲授40学时,实验16学时
教材名称:IBM-PC汇编语言程序设计(第2版),沈美明 温冬婵 编著,清华大学出版社
考核方式:笔试80%,实验10%,平时10%
第1周第1 次课
第一章 基础知识(2个学时)教学目的及要求:
1.建立二进制信息的概念;2.掌握各种数制间的变换方法;3.掌握补码的概念、原理和运算规律;
4、掌握几种基本的逻辑运算 教学内容提要:
1.0 汇编语言与高级语言的区别及其应用场合 1.1数制
1.2数制之间的转换
1.3 算术运算和逻辑运算 1.4数和字符的表示 教学重点与难点:(1)理解不同进位记数制可以表达同一个数,如同一个人可以有很多名字一样。理解计算机系统使用的数据都是二进制形式,但是人类所习惯的数据表达方式是十进制形式。
(2)关于数制之间的转换重点掌握十进制数与二进制数间的转换,二进制与八进制、十六进制间的相互转换,主要要求对整数的转换熟练,小数转换掌握方法即可。
(3)理解二进制数真值与二进制编码之间的概念区别,掌握真值与原码、补码间的相互转换。
(4)理解原码符号与补码符号间质的区别
(5)掌握变反加1方法,并深刻理解它的各种运用场合 讨论问题:
(1)二进制数的真值与编码间的区别是什么?
(2)为什么在计算机系统中需要使用编码而不能直接使用真值?(3)原码与补码的符号间有什么样的区别?
(4)变反加1有哪些应用场合?怎样解释它的应用原理? 教学手段:讲授为主,讨论为辅,采用多媒体辅助教学
----------第1周第2 次课
第二章 80x86计算机组织(2个学时)教学目的及要求:
1.了解计算机系统的基本结构;2.了解计算机系统的基本工作原理; 3.理解在8086/8088系统中,逻辑地址与物理地址间的相互联系和转换机制;4.准确理解8086/8088 CPU中各寄存器的基本功能;5.准确理解标志寄存器中各标志位的含义以及实用价值;6.理解内存的编址方式,数据在内存中的存放形式,理解内存中段的组织形式以及各个段的含义;7掌握实模式下存储器寻址方法,了解保护模式存储器寻址方法;8.理解外部设备的管理方法。教学内容提要:
2.1 80x86处理器计算机系统
2.2基于微处理器的计算机系统构成 2.2.1 硬件 2.2.2 软件 2.3中央处理机
2.3.1 中央处理机CPU的组成 2.3.2 80x86寄存器组 2.4存储器
2.4.1 存储单元的地址和内容 2.4.2 实模式存储器寻址 2.4.3 保护式存储器寻址 2.5外部设备
教学重点与难点:
(1)理解逻辑地址与物理地址间的关联以及转换机制(2)建立内存的分段管理概念,理解四种段类型的含义
(3)理解标志寄存器中每个标志位的确切含义、实用价值,特别注意CF、OF这两个理解困难的标志位
(4)理解标志位是否有意义与人对数据的具体解释有关,这是一个容易引起困惑的问题 讨论问题:
(1)为什么在CPU内部不能直接使用物理地址?
(2)8086系统存储器为什么要分段,如何分段?物理地址如何形成? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第2周第1 次课
第3章 80x86的指令系统和寻址方式(8学时)(第一部分)教学目的及要求:
1.了解8086/8088机器指令的构成;2.准确理解8086/8088 CPU每种寻址方式的确切含义;3.了解程序占用空间和执行时间的概念。教学内容提要:
3.1 80x86的寻址方式
3.1.1 与数据有关的寻址方式 3.1.2 与转移地址有关的寻址方式
3.2 程序占有的空间和执行时间 教学重点与难点:(1)理解各种寻址方式的含义、用途,特别是存储器寻址中的几种方式。(2)注意理解立即数寻址与存储器直接寻址的区别;寄存器寻址与寄存器间接寻址的区别;
(3)段内寻址与短间寻址的区别; 讨论问题:
(1)寻址方式的本质是什么?为什么会出现多种寻址方式?
(2)立即数寻址与存储器寻址有什么重要的区别?二者有没有相似的地方?
(3)数据寻址和跳转指令的寻址的区别? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第2周第2 次课
第3章 80x86的指令系统和寻址方式(8学时)第二部分 教学目的及要求:
1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2掌握调试工具DEBUG的基本使用方法 教学内容提要:
3.3 80x86的指令系统
3.3.1 数据传送指令
3.3.2 算术指令(第一部分)教学重点与难点:
(1)理解指令的各种分类方法,部分指令的含义、用途、基本时序过程、对标志位的解释,注意几种地址装入指令的区别,避免混淆;(2)着重理解指令构成中的隐含操作数、隐含寻址方式,理解隐含寻址与非隐含寻址在控制上的区别;(3)理解堆栈的基本使用方法,区分栈底、栈顶、堆栈指针初始位置等容易混淆的概念;(4)算术指令对CF、OF标志的影响情况;(5)理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。
讨论问题:
(1)隐含寻址与显示操作数的寻址有何区别?
(2)LEA和LDS指令各自的功能是什么?二者之间有何质的区别?
(3)栈顶、栈底分别由何种器件指示?SP、SS中的内容与栈顶、栈底有什么样的区别、联系?
(4)在机器上调试一个小的程序片段,让同学们按步骤分析、解释当前使用的DEBUG命令、所显示的内容等。教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第3周第1 次课
第3章 80x86的指令系统和寻址方式(8学时)第三部分 教学目的及要求:
1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2.根据课件中对指令执行的描述体会逻辑指令和字符串处理指令的执行过程。教学内容提要:
3.3.2 算术指令(第二部分)3.3.3 逻辑指令
3.3.4 串处理指令(第一部分)教学重点与难点:
(1)着重理解指令构成中的隐含操作数、隐含寻址方式,理解隐含寻址与非隐含寻址在控制上的区别;(2)理解各种寻址方式的含义、用途,特别是存储器寻址中的几种方式,注意理解立即数寻址与存储器寻址的区别;(3)理解部分指令的含义、用途、对标志位的解释;(4)串处理指令的特殊性及一般用法;(5)理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。讨论问题:
(1)多字或多字节加法是如何完成的?先对低字节进行运算还是高字节?多字或多字节减法又是怎样完成的?(2)NEG指令的操作数可以解释为无符号数吗?CF标志是如何判断的?(3)CMP指令与TEST指令的功能分别是什么?在程序设计中,它们主要针对什么用途?(4)对于逻辑左移指令OF标志什么情况下才有意义?对于算术右移指令OF标志有什么样的特征?对于各种循环移位指令,OF标志什么情况下有意义? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第3周第2 次课
第3章 80x86的指令系统和寻址方式(8学时)第三部分 教学目的及要求:
1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2.串处理指令的特殊性及一般用法;3.控制转移指令的用途及使用方法4.理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。教学内容提要:
3.3.4 串处理指令(第二部分)
3.3.5 控制转移指令(有关子程序操作命令放到第6章介绍)3.3.6 处理机控制与杂项操作命令 教学重点与难点:
(1)串处理指令的使用方法;(2)串处理时的方向控制;(3)有符号和无符号的跳转指令的不同及测试条件的区别; 讨论问题:
(1)重复前缀和循环指令在使用时的区别?(2)有符号数与无符号数在比较时为什么会不同? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第4周第1 次课
第4章 汇编语言程序格式(4个学时)第一部分 教学目的及要求:
1.了解汇编程序功能;2.掌握各个伪指令的功能和使用方法;3.掌握伪指令与指令的重要区别;5.理解程序的段结构,掌握定义段的语法要素;6.掌握各个段寄存器的各种初始化方法。教学内容提要: 4.1 汇编程序功能 4.2 伪操作
4.2.1 处理器选择伪操作
4.2.2 段定义伪操作
4.2.3 程序开始和结束伪操作
4.2.4 数据定义及存储器分配伪操作 教学重点与难点:
(1)在理解伪指令功能的基础上,着重理解伪指令与指令的本质区别;(2)理解汇编语言中表达式与高级语言中表达式的本质区别;(3)在理解程序的段结构基础上,着重理解各个段寄存器的初始化方法;(4)理解两种源程序框架的原理,特别注意理解在每种框架中应用程序与操作系统交接CPU控制权的方法。讨论问题:
(1)指令与伪指令有何区别?(2)两种源程序框架对于CPU控制权的交接有何不同? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------
第4周第2 次课
第4章 汇编语言程序格式(4个学时)第二部分 教学目的及要求:
1.掌握各个伪指令的功能和使用方法;2.掌握伪指令与指令的重要区别;3.掌握汇编语言表达式与高级语言表达式的本质区别;4.掌握汇编语言程序格式;5.熟悉汇编语言程序的上机过程;6.掌握两种可执行文件的区别。教学内容提要: 4.2 伪操作
4.2.5 表达式赋值伪操作EQU 4.2.6 地址计数器与对准伪操作
4.2.7 基数控制伪操作 4.3 汇编语言程序格式
4.3.1 名字项
4.3.2 操作项
4.3.3 操作数项
4.3.4 注释项
4.4 汇编语言程序的上机过程
4.4.1 建立汇编语言的工作环境
4.4.2 建立ASM文件
4.4.3 产生OBJ文件
4.4.4 产生EXE文件 4.4.5 程序的执行 4.4.6 COM文件 教学重点与难点:
(1)理解汇编语言中表达式与高级语言中表达式的本质区别;(2)地址计数器的理解和使用;(3)理解变量、标号的三个基本空间特性:段、偏移量、类型。讨论问题:
(1)汇编语言中的表达式与高级语言中的表达式相比,有何重要区别?(2)EXE文件和COM文件有何区别?(3)段、偏移量、类型三个基本空间特性如何确定一个变量在内存空间的确切位置、占用字节数?这三个特性对标号的使用而言,有何必要性? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------
第5周第1 次课
第5章 循环与分支程序设计(共6学时)第一部分 教学目的及要求:
1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构 教学内容提要: 5.1 循环程序设计
5.1.1 循环程序的结构形式
5.1.2 循环程序设计方法(第一部分)教学重点与难点:
(1)在理解标志位含义的基础上,着重理解各条件转移指令对标志位的解释、条件判断原理;(2)理解循环指令的功能,以及与其它条件转移指令的主要区别;(3)结合实例,理解循环指令在程序设计中的通常用途;(4)结合实例,理解循环指令的使用限制,理解实现循环结构单纯依靠循环指令是不够的。讨论问题:
(1)循环指令与其它条件转移有什么主要区别?使用循环指令是否可以实现所有的循环结构?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第5周第2 次课
第5章 循环与分支程序设计(共6学时)第二部分 教学目的及要求:
1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构。教学内容提要: 5.1 循环程序设计
5.1.2 循环程序设计方法(第二部分)5.1.3 多重循环程序设计 教学重点与难点:
(1)理解循环指令的功能,以及与其它条件转移指令的主要区别;(2)结合实例,理解循环指令在程序设计中的通常用途;(3)结合实例,理解循环指令的使用限制,理解实现循环结构单纯依靠循环指令是不够的 讨论问题:
(1)多重循环程序设计需要注意的关键问题,引导学生将其与高级语言在进行多重循环程序设计的异同; 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第6周第1 次课
第5章 循环与分支程序设计(共6学时)第三部分 教学目的及要求:
1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构。教学内容提要: 5.2 分支程序设计
5.2.1分支程序的结构形式
5.2.2分支程序的设计方法
5.2.3跳跃表法 教学重点与难点:
(1)理解无条件转移指令存在的价值;(2)在理解各标志位含义的基础上,着重理解各条件转移指令对标志位的解释、条件判断原理;(3)结合实例,理解转移指令在分支程序设计中的通常用途;(4)结合实例,理解条件转移指令的使用限制,理解并逐步建立由框图到程序的设计思路,并由此建立使用条件转移指令所需的良好习惯;(5)理解使用分支表实现多分支结构的优越性。讨论问题:
(1)条件转移指令最大转移范围是多少?无条件转移指令存在的意义在哪里?
(2)JNC指令与JA指令的区别是什么?
(3)JZ指令与JCXZ指令有何重要区别?
(4)由流程框图设计分支结构程序时,使用条件转移指令应当注意什么问题?(5)带符号数条件转移指令使用哪些标志位进行条件判断?条件判断主要基于一个什么原理?
(6)使用分支表实现多分支结构与通常的条件转移指令直接实现多分支有何区别?其优越性如何? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------
第6周第2 次课
第六章 子程序结构(共6学时)第一部分 教学目的及要求:
1.理解子程序在汇编语言中的定义语法;2. 理解子程序的类型概念;3. 理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5. 理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。教学内容提要:
6.1子程序的设计方法
6.1.1 过程定义伪操作
6.1.2 子程序的调用和返回
6.1.3 保存与恢复寄存器 6.1.4 子程序的参数传递 教学重点与难点:
(1)理解子程序调用、返回的基本原理;(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。讨论问题:
(1)子程序调用、返回使用了什么样的底层机制?会不会由于堆栈的操作不当而引起子程序返回错误?应当如何避免子程序返回错误?(2)段内调用、返回与段间调用、返回区别在什么地方?它们分别适合用于什么样的应用场合?(3)寄存器参数传递的优点是什么?缺点是什么?在使用堆栈传递参数时,子程序返回应当注意什么问题?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学 第7周第1 次课
第六章 子程序结构(共6学时)第二部分 教学目的及要求:
1.理解子程序在汇编语言中的定义语法;2. 理解子程序的类型概念;3. 理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5. 理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。教学内容提要:
6.1子程序的设计方法
6.1.4 子程序的参数传递
6.1.5 增强功能的过程定义伪操作 6.2 子程序的嵌套 教学重点与难点:
(1)理解子程序调用、返回的基本原理;(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。讨论问题:
(1)子程序调用、返回使用了什么样的底层机制?会不会由于堆栈的操作不当而引起子程序返回错误?应当如何避免子程序返回错误?(2)段内调用、返回与段间调用、返回区别在什么地方?它们分别适合用于什么样的应用场合?(3)寄存器参数传递的优点是什么?缺点是什么?在使用堆栈传递参数时,子程序返回应当注意什么问题? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学 第7周第2 次课
第六章 子程序结构(共6学时)第三部分 教学目的及要求:
1.理解子程序在汇编语言中的定义语法;2. 理解子程序的类型概念;3. 理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5. 理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。教学内容提要: 6.3子程序举例 教学重点与难点:
(1)理解子程序调用、返回的基本原理;(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。讨论问题:
(1)子程序调用、返回使用了什么样的底层机制?会不会由于堆栈的操作不当而引起子程序返回错误?应当如何避免子程序返回错误?(2)段内调用、返回与段间调用、返回区别在什么地方?它们分别适合用于什么样的应用场合?(3)寄存器参数传递的优点是什么?缺点是什么?在使用堆栈传递参数时,子程序返回应当注意什么问题? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学 第8周第1 次课
第7章 高级汇编语言技术(共2学时)教学目的及要求:
1.掌握汇编语言中“宏”的概念,能够在程序设计中正确使用宏指令;2.理解宏和子程序的本质区别;3.掌握条件汇编和重复汇编的概念,并且能够在程序设计中正确使用;4.了解汇编工具对源程序的汇编过程; 教学内容提要: 7.1 宏汇编 7.2 重复汇编 7.3条件汇编
教学重点与难点:
(1)着重理解宏指令与子程序的区别,以及每个过程分别由什么样的角色来完成;(2)着重理解条件汇编、重复汇编与条件转移指令、循环指令的本质区别;(3)能够在实际应用中合理运用宏指令、条件汇编、重复汇编; 讨论问题:
(1)宏指令与子程序的区别有哪些?宏调用的本质是什么?与子程序调用有什么区别?宏指令与子程序相比较,它们各自的优越性是什么?什么样的软件模块适合使用子程序实现?什么样的软件模块适合使用宏指令实现?(2)条件汇编与重复汇编是在什么时候完成的?条件转移指令与循环指令是在什么时候完成的?条件、重复汇编语句的功能与条件转移、循环指令有什么本质区别? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第8周第2 次课
第8章 输入输出程序设计(共4学时)第一部分 教学目的及要求:
1.掌握CPU如何和外部设备接口交换信息的方法,了解CPU控制外部设备常运转的基本原理.2. 掌握端口访问指令的功能、使用方法、寻址方式,能够理解简单的接口控制程序。3.掌握中断的基本概念。中断向量表的概念,中断过程,中断程序的编写 教学内容提要:
8.1 I/O设备的数据传送方式
8.1.1 CPU与外设
8.1.2 直接存储器存取(DMA)方式 8.2 程序直接控制I/O方式
8.2.1 I/O端口
8.2.2 I/O指令
8.2.3 I/O程序举例 8.3 中断传送方式
8.3.1 8086的中断分类 教学重点与难点:
(1)着重理解程序控制方式与中断控制方式的本质区别,以及中断控制方式的相对优越性;(2)能够在实际应用中针对接口编写基本的控制程序。讨论问题:
(1)三种数据传送方式的优缺点;(2)CPU如何控制外部设备? 教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第9周第1 次课
第8章 输入输出程序设计(共4学时)第二部分 教学目的及要求:
1.掌握中断的基本概念;2.掌握中断向量表的概念;3.掌握中断过程,中断优先级和中断程序的编写。教学内容提要: 8.3 中断传送方式
8.3.2中断向量表
8.3.3 中断过程
8.3.4 中断优先级和中断嵌套 8.3.5 中断处理程序 教学重点与难点:
(1)中断向量表的作用;(2)如何编写自己的中断处理程序;(3)着重理解程序控制方式与中断控制方式的本质区别,以及中断控制方式的相对优越性 讨论问题:
(1)中断向量在中断向量表中的存储形式如何?(2)编写中断向量同编写子程序的异同?(3)编写中断程序需要注意的问题有那些?(4)中断过程包括哪几个主要的步骤?哪些步骤是硬件自动完成的?哪些步骤是程序完成的?程序控制方式与中断控制方式的主要区别是什么?相对而言,中断控制方式有什么优越性?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
----------第9周第2 次课
第9章 BIOS和DOS中断(共4学时)第一部分 教学目的及要求:
1.掌握必要的DOS调用和BIOS调用,并且能够在程序设计中正确使用。教学内容提要: 9.1 键盘I/O
9.1.1 字符码与扫描码
9.1.1 BIOS键盘中断
9.1.1 DOS键盘功能调用 9.2 显示器I/O
9.2.1 字符属性
9.1.1 BIOS显示中断
9.1.1 DOS显示功能调用 教学重点与难点:
(1)着重理解DOS中断调用的概念,理解调用号、入口参数、出口参数的概念及对于调用的重要性,理解中断调用与中断的区别;(2)着重理解常用DOS中断调用的功能以及使用方法;(3)能够在实际应用中适当的使用DOS中断调用,简化程序的编制过程。讨论问题:
(1)DOS中断调用的中断入口地址计算与硬件中断过程中的中断入口地址计算是否相同?在程序设计中使用DOS中断调用与硬件中断过程的主要区别是什么?被硬件中断调用的中断服务程序是否可以在程序中直接调用?(2)在程序设计中使用DOS中断调用有什么好处? 教学手段
讲授为主,讨论为辅,采用多媒体辅助教学
----------第10周第1 次课
第9章 BIOS和DOS中断(共4学时)第二部分 教学目的及要求:
1.掌握必要的DOS调用和BIOS调用,并且能够在程序设计中正确使用 教学内容提要: 9.3 打印机I/O 9.3.1 DOS打印功能
9.3.2打印机的控制字符
9.3.3 BIOS打印功能 9.4 串行通信口I/O 9.4.1 串行通信口接口 9.4.2 串行口功能调用 教学重点与难点:
(1)着重理解常用BIOS中断调用的功能以及使用方法;(2)能够在实际应用中适当的使用BIOS中断调用,简化程序的编制过程。讨论问题:
(1)BIOS中断调用与DOS中断调用有什么共同之处?有什么区别?二者有什么重要的联系?BIOS中断调用是否可以看作设备驱动程序?(2)在程序设计中使用BIOS中断调用有什么好处? 教学手段
讲授为主,讨论为辅,采用多媒体辅助教学
第五篇:语言教案
领域名称:语言——儿歌《水果宝宝去旅行》 适应年段:3.5---4岁 执教人:陈慧
设计意图:
小班幼儿有一定的认知能力,能认识一些简单的水果,喜欢参与游戏活动,特别是“开火车”游戏,对儿歌的韵律、节奏非常感兴趣,这是一首短小的儿歌,节奏鲜明,朗朗上口,具有童趣和快乐的风格。儿歌中的水果苹果、菠萝、桔子等又是幼儿生活中常见熟悉的水果,特别适合小班幼儿的年龄特点。因此,我选择这首儿歌作为本次活动的内容。针对小班幼儿的学习特点,在整个活动中我突出强调游戏性和趣味性。我为孩子创造一个想说、敢说、愿意说并能得到积极应答的环境。我抓住幼儿的这些特点,设计了此活动,让幼儿在游戏中学习儿歌、体验乐趣。活动目标:
1.体验学习儿歌进行游戏的快乐。
2.理解儿歌内容,学习短句“水果上火车,喀嚓喀嚓去旅行”。3.能较连贯、有表情地的朗诵儿歌。活动准备:《火车开啦》伴奏带、西瓜爷爷 活动重点和难点:重点:学习理解儿歌内容
难点:仿编儿歌
一、以游戏进入情境,熟悉儿歌内容。
1.先听声音。听!这是什么声音?谁开过来了?
2.西瓜爷爷还请了其他水果宝宝一同去旅行,我们来看看他请了谁?(出示苹果)
3.这里又是哪个水果宝宝呢?谁会用魔语来说一说。4.谁来猜猜接下来会是谁上火车呢?
二、完整欣赏儿歌
1.老师边伴奏边念儿歌《水果宝宝去旅行》。2.师幼齐念儿歌两遍。第二遍幼儿声音稍响一点念。
三、仿编儿歌。
师:很多眼睛很亮的小朋友已经发现了,还有一节车厢空着呢。你们还想请哪些水果宝宝上火车?请你用魔语来请水果宝宝上火车吧。
四、游戏《开火车》
老师做西瓜爷爷,幼儿做水果宝宝去旅行,老师带幼儿围场地一周带着水果宝宝去旅行。