新書推薦:
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:NT$
454.0
《
无端欢喜
》
售價:NT$
347.0
《
股票大作手操盘术
》
售價:NT$
245.0
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:NT$
398.0
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:NT$
203.0
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:NT$
611.0
《
养育女孩 : 官方升级版
》
售價:NT$
230.0
《
跨界:蒂利希思想研究
》
售價:NT$
500.0
|
編輯推薦: |
本书特色简单易用的开发环境。本书构建了一个简单易用的开发环境,无须安装和配置,直接复制就可使用,方便初学者快速上手。重点明确的教学内容。本书不是详尽展开所有处理器指令、汇编伪指令,而是选择处理器通用的基本指令和反映汇编语言特色的常用伪指令;没有引出复杂的程序框架,而是侧重编程思想和技术。突出实践的教学过程。本书以约70个例题程序和约60个习题程序贯穿教学内容。循序渐进的教学原则。为了便于学生理解和掌握,也便于教师实施教学,本书在编写过程中尽量做到描述详尽、图表准确,对重点和难点使用浅显生动的语言,深入浅出地进行详尽讲解。相较前两版,第3版主要增写了NASM汇编程序,补充了Visual Studio开发环境、多媒体和64位指令编程,更新了WinDbg调试程序版本等。
|
內容簡介: |
本书以Intel 80x86处理器和个人计算机为硬件平台,基于Windows操作系统软件平台,借助MASM和NASM汇编程序讲解32位汇编语言程序设计。本书内容包括基本的汇编语言基础、常用处理器指令和汇编语言伪指令以及基本程序结构,还包括扩展的Windows和DOS编程、与C++语言的混合编程、输入/输出指令及编程,并涉及浮点、多媒体及64位指令等。
本书可以作为普通高校“汇编语言程序设计”等课程的教材或参考书,适合计算机、电子、通信和自控等专业的本科学生,以及电类专业的高职学生和成教学生阅读,同时也适合作为计算机应用开发人员和希望深入学习汇编语言的读者的参考书。
|
關於作者: |
郑州大学计算机与人工智能学院计算机科学与技术专业教师,副教授、硕士导师。主讲“汇编语言程序设计““微机原理及接口技术”等计算机硬件类课程。主要研究领域是计算机体系结构、计算机应用技术。
主讲的“汇编语言”课程被评为“第二批国家级一流本科课程(线上线下混合式)”。主编的“汇编语言程序设计”教材获评河南省首届教材建设奖一等奖。
|
目錄:
|
目录
前言
教学建议
第1章 汇编语言基础
1.1Intel 80x86系列处理器
1.1.116位80x86处理器
1.1.2IA32处理器
1.1.3Intel 64处理器
1.2个人计算机系统
1.2.1硬件组成
1.2.2寄存器
1.2.3存储器组织
1.2.4程序设计语言
1.2.5软件系统
1.3汇编语言程序格式
1.3.1指令代码格式
1.3.2语句格式
1.3.3源程序框架
1.3.4开发过程
第1章习题
第2章 数据表示和寻址
2.1数据表示
2.1.1数制
2.1.2数值的编码
2.1.3字符的编码
2.2常量表达
2.3变量应用
2.3.1变量定义
2.3.2变量属性
2.4数据寻址方式
2.4.1立即数寻址方式
2.4.2寄存器寻址方式
2.4.3存储器寻址方式
2.4.4各种数据寻址方式的组合
第2章习题
第3章 通用数据处理指令
3.1数据传送类指令
3.1.1通用数据传送指令
3.1.2堆栈操作指令
3.1.3其他传送指令
3.2算术运算类指令
3.2.1状态标志
3.2.2加法指令
3.2.3减法指令
3.2.4乘法和除法指令
3.2.5其他运算指令
3.3位操作类指令
3.3.1逻辑运算指令
3.3.2移位指令
第3章习题
第4章 程序结构
4.1顺序程序结构
4.2分支程序结构
4.2.1无条件转移指令
4.2.2条件转移指令
4.2.3单分支程序结构
4.2.4双分支程序结构
4.2.5多分支程序结构
4.3循环程序结构
4.3.1循环指令
4.3.2计数控制循环
4.3.3条件控制循环
4.3.4多重循环
第4章习题
第5章 模块化程序设计
5.1子程序结构
5.1.1子程序指令
5.1.2子程序设计
5.2参数传递
5.2.1寄存器传递参数
5.2.2共享变量传递参数
5.2.3堆栈传递参数
5.3多模块程序结构
5.3.1源文件包含
5.3.2模块连接
5.3.3子程序库
5.4宏结构
5.4.1宏汇编
5.4.2重复汇编
5.4.3条件汇编
第5章习题
第6章 Windows编程
6.1操作系统函数调用
6.1.1动态连接库
6.1.2MASM的过程声明和调用
6.1.3程序退出函数
6.2控制台应用程序
6.2.1控制台输出
6.2.2控制台输入
6.2.3单字符输入
6.3图形窗口应用程序
6.3.1消息窗口
6.3.2结构变量
6.3.3MASM的高级语言特性
6.3.4简单窗口程序
第6章习题
第7章 与Visual C++混合编程
7.1嵌入汇编
7.2模块连接
7.2.1约定规则
7.2.2堆栈帧
7.3调用高级语言函数
7.3.1嵌入汇编中调用高级语言函数
7.3.2汇编语言中调用C库函数
7.4使用Visual C++开发环境
7.4.1汇编语言程序的开发过程
7.4.2汇编语言程序的调试过程
7.5使用Visual Studio开发环境
7.5.1开发汇编语言程序
7.5.2调试汇编语言程序
第7章习题
第8章 DOS环境程序设计
8.1DOS编程
8.1.1实地址存储模型
8.1.2DOS应用程序框架
8.1.3DOS功能调用
8.2串操作类指令
8.2.1串传送指令
8.2.2串检测指令
8.3输入/输出程序设计
8.3.1输入/输出指令
8.3.2定时器初始化编程
8.3.3扬声器控制编程
8.4中断控制编程
8.4.1中断控制系统
8.4.2内部中断服务程序
8.4.3驻留中断服务程序
第8章习题
第9章 浮点、多媒体及64位指令
9.1浮点指令
9.1.1实数编码
9.1.2浮点寄存器
9.1.3浮点指令及其编程
9.2多媒体指令
9.2.1MMX技术
9.2.2SSE技术
9.2.3SSE2技术
9.2.4SSE3技术
9.2.5多媒体指令编程
9.364位指令
9.3.164位方式的运行环境
9.3.264位方式的指令
9.3.364位指令编程
第9章习题
附录A调试程序WinDbg
附录B输入/输出子程序库
附录C32位通用指令列表
附录DMASM伪指令和操作符列表
附录E列表文件符号说明
附录F常见汇编错误信息
附录GNASM汇编程序
附录H64位ARM汇编语言
参考文献
|
內容試閱:
|
前言
随着计算机技术的发展,国内高校师生希望能够在Windows操作系统平台学习32位汇编语言,但如何面向初学者实施教学却面临诸多难点。于是,我们结合近年来的32位汇编语言教学实践编写了本书。
本书具有以下特色。
1 简单易用的开发环境
Windows平台的32位汇编语言编程可以使用MASM32开发包或微软Visual Studio集成开发环境,但它们有些复杂和庞大,不适合初学者(在第6章和第7章予以简介)。为此,本书构建了一个简单易用的开发环境(详见第1章),无须安装和配置,直接复制即可使用。它支持32位、64位Windows控制台和16位DOS环境,提供MASM和NASM汇编程序、连接程序,以及本书配套的输入/输出子程序库和方便操作的批处理文件等。
2 重点明确的教学内容
汇编语言的教学目的是从软件角度理解计算机硬件工作原理,为相关课程提供基础知识,同时让读者全面认识程序设计语言,体会低层编程特点,以便更好地应用高级语言。为此,本书不是详尽展开所有处理器指令、全部汇编伪指令,而是选择处理器通用的基本指令和反映汇编语言特色的常用伪指令;没有引出复杂的程序格式,而是侧重编程思想和技术。这样一方面能够降低教学难度、易于学生掌握,另一方面使得教学内容更加实用、便于学生实际应用。
3 突出实践的教学过程
本书以约70个示例程序和约60个习题程序贯穿教学内容。第1章在介绍必要的寄存器和存储器知识后,就引出汇编语言开发环境,介绍汇编语言的语句格式、源程序框架和开发方法,并利用简单易用的输入/输出子程序编写具有显示结果的程序。第2章结合数据编码、常量定义和变量应用,自然地引出常用伪指令。第3章分类学习处理器基本指令,逐渐编写符合特定要求的程序片段。第4~9章以程序结构为主线,围绕数码转换子程序,结合Windows编程、混合编程、DOS和I/O编程、浮点和多媒体指令,从简单到复杂逐步编写具有实用价值的应用程序。
4 循序渐进的教学原则
为了便于学生理解和掌握,且便于教师实施教学,本书以“循序渐进、难点分散、前后对照”为原则,努力做到“语言浅显、描述详尽、图表准确”。本书内容编排精彩纷呈,例如,将处理器指令和汇编伪指令分散于各个教学内容之中,引出列表文件暂时避开调试程序,用简单的子程序库化解系统调用的烦琐;程序具有交互性和趣味性,适当对比高级语言,并展示底层工作原理;每章都包含丰富的习题,满足课外练习、上机实践和试题组织的需要。
相对于前两版教材,第3版主要结合互联网时代的教学特点,增加了对NASM汇编程序的支持并修改与之相关的内容,添加了调用C语言标准函数实现键盘输入和显示输出的若干示例,补充了Visual Studio开发环境、多媒体指令编程和64位指令编程,更新了调试程序WinDbg版本,修订了前两版中的错误。具体来说,修订内容如下。
1)在第1章、第2章、第5章、第8章、第9章以旁白插叙的方式增加使用NASM汇编程序的内容;增写附录G,从对比MASM角度介绍NASM汇编程序的使用与特点,并简要介绍Linux平台的汇编语言编程方法。
2)添加例12以及例38、例49的C语言程序,说明如何调用C语言标准函数实现键盘输入和显示输出。这样,书中很多例题程序中的人机交互部分都可以改用C语言函数实现。
3)增写75节,介绍Visual Studio Community 2019和2022(免费版)开发环境。
4)增写925节和933节,分别补充多媒体指令编程和64位指令编程。
5)为同时适用于NASM汇编语法,程序代码做了如下修改。
? 变量定义byte、word、dword和qword改用db、dw、dd和dq。
? 等号“=”伪指令改为等价“equ”伪指令。
?不使用操作符sizeof、lengthof获得字符个数或数组元素个数,改用通过当前地址“$”计算,等价于符号常量count表示。
?代码段中,原使用变量名(±常量)访问变量值,现均添加地址操作符“\\[ \\]”(中括号)。
6)为配合华为“智能基座”项目,增写附录H简介64位ARM汇编语言。
对使用过前两版教材的师生来说,应注意配合教材的软件包有更新。主要是不再集成CodeView和WinDbg调试程序,增添了NASM汇编程序(及配合使用的IO32NINC、NMAKE32BAT)、64位汇编语言开发软件,略微改动了IO32INC、MAKE32BAT等文件。另外,例题程序也按照修订内容进行了相应更新。
本书由郑州大学计算机与人工智能学院钱晓捷主编,穆玲玲主要增补了有关NASM汇编程序部分,张行进老师主要增补了混合编程部分,全书仍由钱晓捷统稿,并得到张青、张大伟等同事的帮助。
编者
2023年7月
|
|