图书前言

前  言

  

  计算机技术一直在发展,在党的二十大精神的指引下,为了让计算机组成原理和汇编语言与时俱进,让计算机的基础理论知识和底层编程知识反映最新的计算机技术,为全面建设社会主义现代化国家添砖加瓦,为实现中华民族伟大复兴贡献力量,我们结合多年的教学经验与软件开发经验,编写了本书。

  本书介绍了计算机的基础理论知识,并用汇编语言源程序或高级语言源程序验证相关理论;介绍了计算机的组成原理,并与IA-32的实现原理相结合;介绍了32/64位汇编指令与程序设计的方法,并用MASM32、VC++ 6.0、VS 2022等开发工具实现;通过反汇编、逆向工程、混合编程,为窥探编译原理和网络攻防奠定基础。

  这里需要特别强调的是,为了使读者能更快地掌握汇编语言的程序设计,本书所有汇编程序都调用C语言的scanf函数和printf函数进行输入、输出,这样,初学者几分钟就能实现汇编语言程序设计的输入和输出。通过在C语言源程序中嵌入汇编指令,读者也能快速验证汇编指令的功能。本书解决了以上调用在32/64位环境中遇到的所有技术问题,在使用上以32位为主。

  本书按知识上的逻辑关系,分成10个章节,简单介绍如下。

  第1章 数据表示与数值运算,介绍数值与字符的表示、校验码、数值运算及运算器的设计方法。

  第2章 汇编语言基本组成,介绍汇编程序结构、数据类型及调用scanf函数和printf函数进行输入、输出的方法。

  第3章 汇编语言的编译运行,介绍MASM32、VC++ 6.0、VS 2022等开发工具的安装、配置、运行方法,还介绍了C语言嵌入汇编指令和反汇编的方法。

  第4章 CPU指令系统及控制器,介绍CPU的组成与存储器访问、机器指令的设计与执行流程、控制器的设计、CPU指令系统(数据传送、算术逻辑运算、串操作、CPU控制)。

  第5章 FPU指令系统,介绍FPU的组成、实数传送、算术运算、浮点超越函数、FPU控制。

  第6章 选择结构程序设计,介绍.IF伪指令和Jcc指令实现分支选择,同时介绍了整数与浮点数的大小比较。

  第7章 循环结构程序设计,介绍.WHILE、.REPEAT、LOOP、JECXZ指令实现循环程序设计、汇编数组功能。

  第8章 模块化程序设计,介绍子程序(函数)不同调用方式的调用和返回、不同数据类型的参数传递、递归程序设计、C语言与汇编语言的混合编程及混合编程时数组的相互调用、综合案例设计。

  第9章 调试器使用简介,介绍32位程序调试器Ollydbg的使用与逆向工程方法、64位程序调试器x64dbg和32/64位程序调试器IDA的使用方法。

  第10章 I/O系统,介绍I/O接口的功能与I/O数据传输控制方式。

  编者建议,本书按14个主题和1个课程设计进行教与学,每个主题讲练完成后进行一次课堂测试与讲评,“理论+实验”合计最少要有32+16学时,最好达到64学时。

序    号 主题/课程设计 主 要 内 容 学    时 1 数据类型 各种数据类型的定义与输入、输出 1+1 2 整数+、?、*、/、% 用MOV与整数的加、减、乘、除、余指令实现整数表达式的计算 1+1 3 实数+、?、*、/ 用FLD、FSTP与实数的加、减、乘、除指令实现实数表达式的计算 1+1 4 超越函数 用汇编超越函数实现带三角函数、指数、对数等的复杂公式的计算 1+1 5 选择结构 用.IF和Jcc指令实现带整数、实数比较和逻辑运算的选择程序设计 3+1 6 循环结构 用.WHILE和.REPEAT循环及LOOP循环指令实现各种循环程序设计 3+1 7 C语言嵌入汇编 串操作指令结合C语言嵌入汇编,在C语言中实现各种字符串功能 2+1 8 子程序(函数) 子程序(函数)的定义与调用,实现模块化程序设计 2+1 9 递归程序设计 用汇编语言实现递归程序设计、C语言与汇编语言相互调用、函数重载 2+1 10 逆向工程 OD实现逆向工程,破解其他开发工具生成的.exe文件的登录密码 1+1 11 数值与字符表示 计算机整数、浮点数、中西字符与字形的表示等 3+1 12 CPU与存储访问 32位CPU体系结构、存储器组织、存储器对齐与非对齐访问等 3+1 13 CPU设计与I/O系统 机器指令的设计与执行流程、控制器的设计、I/O系统 3+1 14 校验码与数值运算 奇偶校验码,海明码,CRC码,整数与浮点数加、减、乘、除运算的实现 2+1 15 课程设计 C语言与汇编语言混合编程、函数不同调用方式的调用和返回 4+2   通过以上15个单元的教学,学生在48学时下就能基本掌握计算机组成原理的理论知识并具有比较强的汇编编程能力;若侧重汇编语言,11~14单元可以不讲,因此,本书也可作为汇编语言程序设计课程的教材。

  本书由田民格、秦彩杰、林观俊、田佳琪担任主编,其中秦彩杰编写第1章,田民格编写第2、4、6、7、8、10章,林观俊编写第5章,田佳琪编写第3、9章和附录A。

  在学习过程中,读者可以扫描各章节中的二维码获得相关资源,也可以联系编者获取相关资源,编者E-mail为TmgDelphi@163.com。

  对于考试系统(ksxt.exe),本课程网络版默认连接服务器为“36.134.53.109,53000”,数据库为MASM;单机版连接数据库文件MASM.MDB,网络版直接双击ksxt.exe。单机版用鼠标拖曳MASM.MDB到ksxt.exe打开,或双击资源中提供的“例?-??.bat”打开MASM.MDB。考试系统第一次运行后会自动创建D:\KSTemp文件夹,然后自动从服务器或数据库中下载编译软件(含VC++ 6.0和MASM32,约2.8?MB)并解压到D:\KSTemp,重新运行后环境才能生效。考试系统运行于Windows环境,只有安装WinRAR、好压、360、Bandizip、PeaZip 5种解压软件中的一种,考试系统才会调用并自动解压。考试维护系统(kswh.exe)用于题库和考试管理,同时也支持网络版和单机版。

  本书在编写过程中力求全面、深入,但由于编者水平有限,书中难免存在不足,欢迎广大读者朋友批评指正。

  感谢三明学院信息工程学院、福建省农业物联网应用重点实验室、物联网应用福建省高校工程研究中心为本书的顺利完成提供的各方面的大力支持。感谢2023年福建省技术创新重点攻关及产业化项目(校企联合类)—优质盘条智能制造关键技术研发及产业化(闽教科〔2023〕16号,2023XQ009)、三明市产学研协同创新重点科技项目(明科〔2022〕32号,2022-G-12)、福建省现代产业学院“三明学院-中兴通讯ICT学院”、物联网工程省级一流本科专业建设点(教高厅函〔2022〕14号)、2021年省级虚拟仿真实验教学一流课程—基于物联网的种猪繁育智慧养殖虚拟仿真实验教学项目(闽教高〔2021〕52号)、2019年省级虚拟仿真实验教学项目—智能农业3D虚拟仿真实验教学项目(闽教高〔2019〕13号)的支持。

  

  编 者  

  

  

  

 

  

·II·

  

·III·