在清华计算机系,汇编语言程序设计通常作为本科生接触到的第一门计算机系统课程,被定位为该系列的入门课,起到“承上启下”的作用。
主要的授课内容包括:
(1)汇编语言与计算机系统结构、指令集初步、数制与整数表示、浮点数表示;
(2)80x86计算机组织与保护模式、X86指令系统与寻址方式、C与X86汇编、X86汇编编程;
(3)MIPS汇编。
课程强调汇编语言的软硬件分界与桥梁作用,使得学习者能把程序的执行与计算机的工作过程紧密联系起来,以便深入地感知、理解和体会计算机的逻辑功能以及各种软件系统的原理,逐步形成软件系统功能构筑在其上,硬件系统功能运行于其下的计算机系统思维能力。
与以往的讲法不同,本课程突出了“承上启下”这一理念,在内容编排上进一步突出了与相关课程的衔接,尤其是与C语言编程、编译原理、组成原理的衔接。比如说,(1)强化与高级语言的联系,从典型的C语言代码段入手,通过编译成汇编代码来详细解释程序员角度的X86结构运行模型。掌握这两种语言的对应可以将程序的执行与计算机的工作过程紧密联系起来,直接体现汇编语言本身固有的特点,即它是最易于将“程序”和“机器”统一起来的一个结合点。(2)进一步的通过对不同汇编代码的解释来给出微体系结构方面的差异。比如,同一段C代码通过不同的编译器/编译器开关所生成的代码是不一样的,为什么不一样?这就可以通过处理器微体系结构的差异来简单解释。这种做法可以为后续课程,如编译原理、计算机组成原理等提供一些先导知识,并有利于学生从整个系统构成的角度来理解各个课程的作用与位置。(3)加入MIPS汇编(包括部分体系结构的内容),为后续的以MIPS为核心的计算机组成原理、编译原理、操作系统等专业课程奠定MIPS汇编语言的基础
1