- ISBN:9787302640462
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:409
- 出版时间:2023-09-01
- 条形码:9787302640462 ; 978-7-302-64046-2
本书特色
《计算机组成原理与汇编语言》根据学生掌握知识的基本特点,依据循序渐进、深入浅出、突出重点、理论联系实际的原则编排,使学生能够在较短的时间内理解计算机组成原理与汇编语言的基本概念,掌握相关设计方法。
内容简介
《计算机组成原理与汇编语言》是应用型教材,有配套的教学视频、绿色的考试系统、按项目驱动教学理念组建的题库、智能的编程语法错误和逻辑错误提示插件等。《计算机组成原理与汇编语言》采用理论知识与编程实践或验证相结合的方式编写,让学生理解理论知识、掌握编程方法,通过考试系统和智能插件提高教与学的效率与质量。 《计算机组成原理与汇编语言》是编者30年教学与软件开发经验的总结,所有理论知识都可以通过编程得到验证或应用于编程实践,所有编程实践中发现的问题都可以用理论知识进行解析,所有案例都经过编者的精心设计和选编。通过学习本书,读者不仅能真正理解理论知识,更能提高编程实践能力和综合应用能力,真正掌握计算机组成原理和汇编语言程序设计的方法,同时能通过二者的结合窥探编译原理。另外,《计算机组成原理与汇编语言》通过课程设计,培养学生的创新能力和团队协作精神;将爱国元素融入理论知识,并注重增强学生的法律意识和道德素养。《计算机组成原理与汇编语言》按项目组建了14个单元的题库和1个单元的课程设计,每个单元都有对应的教学视频;与考试系统配套的课外练习能方便读者自学;课堂测试功能为随堂考试或期末考试提供了方便。考试系统支持8种题型,教师可以按要求随机抽题组卷或统考,可以实现“黑盒+白盒”自动测试评分或手工评分,提供了预警和生成成绩成长曲线功能。 《计算机组成原理与汇编语言》可以作为应用型本科和高职高专教学用书,也可以作为读者自学用书。
目录
1.1 计数制 1
1.1.1 十进制(decimal) 1
1.1.2 二进制(binary) 2
1.1.3 八进制(octal) 2
1.1.4 十六进制(hexadecimal) 3
1.2 进制数间的转换 3
1.2.1 十进制转二进制 3
1.2.2 十进制转八进制和十六进制 4
1.2.3 十进制转二进制加法口算 5
1.2.4 十进制转二进制减法口算 6
1.2.5 十进制转二进制其他口算 6
1.3 计算机的性能指标 6
1.3.1 字长 7
1.3.2 存储容量 7
1.3.3 主频 7
1.3.4 运算速度 7
1.3.5 可靠性 7
1.3.6 系统可维护性 8
1.4 数值的表示 8
1.4.1 无符号整数的表示 8
1.4.2 有符号整数的表示(补码等) 10
1.4.3 移码 12
1.4.4 BCD码 13
1.4.5 浮点数 13
1.4.6* 浮点数按整数比较大小 17
1.5 字符的表示 19
1.5.1 ASCII码 19
1.5.2 机内码 19
1.5.3 Unicode 23
1.5.4 UTF-8 25
1.5.5 点阵字形码 26
1.5.6 矢量字形码 30
1.6 校验码 30
1.6.1 码距 30
1.6.2 奇偶校验码 31
1.6.3 海明校验码 32
1.6.4 循环冗余校验码 34
1.7 数值运算 38
1.7.1 定点整数加法运算 38
1.7.2 定点整数减法运算 39
1.7.3 溢出与检测方法 39
1.7.4 定点整数加减法的逻辑实现 41
1.7.5 定点整数乘法运算 43
1.7.6 定点整数除法运算 45
1.7.7 浮点数加减运算 51
1.7.8 浮点数乘除运算 56
习题1 58
第2章 汇编语言基本组成 60
2.1 程序结构 60
2.1.1 选择处理器伪指令 61
2.1.2 .MODEL伪指令 62
2.1.3 指明是否区分大小写 62
2.1.4 要引用的头文件和库文件 63
2.1.5 函数原型声明 63
2.1.6 变量的定义及使用 63
2.1.7 数据段和代码段的定义 65
2.1.8 单行注释与块注释 65
2.1.9 指令、标号、分行(\) 66
2.1.10 INVOKE伪指令调用函数 66
2.1.11 程序结束 66
2.1.12 汇编结束 67
2.2 数据类型 67
2.2.1 整数 67
2.2.2 整数常量表达式 69
2.2.3 浮点数 72
2.2.4 字符 74
2.2.5 字符串 77
2.2.6 结构体 78
习题2 80
第3章 汇编语言的编译运行 84
3.1 VC 6.0编译运行C程序 84
3.1.1 VC 6.0的安装 85
3.1.2 运行C程序 85
3.1.3 配置VC 6.0环境 87
3.1.4 在命令行中编译运行C程序 89
3.2 MASM32编译运行汇编程序 90
3.2.1 MASM32的安装 90
3.2.2 运行MASM32程序 92
3.2.3 配置MASM32环境 93
3.2.4 通过注册表配置环境 94
3.2.5 在命令行中编译运行汇编程序 95
3.3 VC 6.0编译运行汇编程序 98
3.4 VS 2022编译运行汇编程序 100
3.4.1 VS的安装 100
3.4.2 VS编译运行C程序 101
3.4.3 VS编译运行x86汇编程序 103
3.4.4 VS汇编程序调用C库文件 105
3.4.5 VS编译运行x64汇编程序 106
3.4.6 安装高亮插件 108
3.5 C/C 嵌入汇编指令 111
3.5.1 用汇编指令访问C程序整型变量 111
3.5.2 用汇编指令读C程序整型数组元素 112
3.5.3 汇编指令写入C字符数组 112
3.6 C反汇编生成汇编源程序 114
3.6.1 设置C程序生成汇编源程序 114
3.6.2 修改C反汇编源程序 114
习题3 117
第4章 CPU指令系统及控制器 120
4.1 系统结构 121
4.2 微处理器 122
4.2.1 微处理器的基本结构 122
4.2.2 80386微处理器引脚 124
4.3 CPU寄存器 126
4.3.1 16位寄存器组 126
4.3.2 32位寄存器组 127
4.3.3 64位寄存器组 127
4.3.4 标志寄存器EFlags 128
4.4 80X86处理器工作模式 131
4.5 存储器访问 131
4.5.1 主存的分类 132
4.5.2 存储器的组织 132
4.5.3 CPU与存储器的连接 134
4.5.4 数据存储 135
4.5.5 数据对齐访问 136
4.5.6 数据非对齐访问 137
4.5.7 数据访问案例分析 137
4.6 机器指令及控制器设计 141
4.6.1 机器指令格式 143
4.6.2 机器指令编码 144
4.6.3 复杂指令集计算机 146
4.6.4 精简指令集计算机 146
4.6.5 控制器设计方法 146
4.6.6 时序系统 147
4.6.7 寄存器的设置 148
4.6.8 CPU指令流程分析 148
4.6.9 控制器的设计 149
4.7 操作数寻址方式 158
4.7.1 寄存器寻址方式 158
4.7.2 立即寻址方式 159
4.7.3 直接寻址方式 159
4.7.4 寄存器间接寻址方式 159
4.7.5 寄存器相对寻址方式 160
4.7.6 基址变址寻址方式 161
4.8 数据传送类指令 163
4.8.1 通用数据传送MOV[SX|ZX] 163
4.8.2 数据交换XCHG 165
4.8.3 字节查表转换XLAT[B] 166
4.8.4* 字节反向存储BSWAP 168
4.8.5 入栈PUSH/PUSHA[D] 168
4.8.6 出栈POP/POPA[D] 168
4.8.7 取地址LEA/L[DEFGS]S 169
4.8.8 EFlags与AH传送[L|S]AHF 170
4.8.9 EFlags出入栈PUSHFD/POPFD 170
4.8.10 进位位CF操作CLC/STC/CMC 170
4.8.11 方向位DF操作CLD/STD 170
4.8.12* 中断允许位IF操作CLI/STI 171
4.9 整数算术运算指令 171
4.9.1 加法ADD/ADC/INC/XADD 171
4.9.2 减法SUB/SBB/DEC/NEG 173
4.9.3 乘法MUL/IMUL 174
4.9.4 除法DIV/IDIV 175
4.9.5 符号扩展CBW/CWD/CDQ 176
4.9.6 整数比较CMP/CMPXCHG[8B] 177
4.10* 调整指令(实现大数运算) 179
4.10.1 数字字符加法调整AAA 179
4.10.2 数字字符减法调整AAS 181
4.10.3 二进制数调整为BCD码AAM 182
4.10.4 BCD码调整为二进制数AAD 182
4.10.5 BCD码加法调整DAA 183
4.10.6 BCD码减法调整DAS 184
4.11 逻辑运算指令 185
4.11.1 逻辑与操作AND 185
4.11.2 逻辑或操作OR 186
4.11.3 逻辑非操作NOT 186
4.11.4 逻辑异或操作XOR 186
4.11.5 逻辑比较测试TEST 187
4.12 位操作指令 188
4.12.1 算术移位SAL/SAR 188
4.12.2 逻辑移位SHL/SHR 189
4.12.3* 双精度移位SHLD/SHRD 190
4.12.4* 不带进位循环移位ROL/ROR 192
4.12.5* 带进位循环移位RCL/RCR 193
4.12.6* 位扫描BSF/BSR 193
4.12.7* 第i位操作BT[CRS] 195
4.13 串操作指令 196
4.13.1 重复前缀REP[E|Z|NE|NZ] 197
4.13.2 存串操作STOS[B|W|D] 198
4.13.3 移串操作MOVS[B|W|D] 199
4.13.4 取串操作LODS[B|W|D] 201
4.13.5 串扫描操作SCAS[B|W|D] 203
4.13.6 串比较操作CMPS[B|W|D] 204
4.13.7 输入串操作INS[B|W|D] 207
4.13.8 输出串操作OUTS[B|W|D] 207
4.14* CPU控制指令 207
4.14.1 空操作指令NOP 207
4.14.2 等待指令WAIT 207
4.14.3 暂停指令HLT 208
4.14.4 封锁数据指令LOCK 208
4.14.5 获得CPU信息CPUID 208
4.14.6 读时间戳计数器RDTSC 209
习题4 210
第5章 FPU指令系统 221
5.1 FPU寄存器 221
5.1.1 浮点数据寄存器 221
5.1.2 浮点标记寄存器 222
5.1.3 浮点状态寄存器 222
5.1.4 浮点控制寄存器 224
5.2 FPU指令系统的约定 225
5.3 实数传送指令 226
5.3.1 实数加载FLD Src 227
5.3.2 整数加载FILD Src 227
5.3.3 BCD数加载FBLD Src 227
5.3.4 实数保存FST Dst 227
5.3.5 实数保存且出栈FSTP Dst 227
5.3.6 实数保存整数FIST Dst 227
5.3.7 保存整数且出栈FISTP Dst 227
5.3.8 保存BCD且出栈FBSTP Dst 229
5.3.9 实数交换FXCH[st(i)] 230
5.4 实数常量加载指令 230
5.4.1 实数0.0加载FLDZ 230
5.4.2 实数1.0加载FLD1 230
5.4.3 实数π加载FLDPI 230
5.4.4 实数log210加载FLDL2T 230
5.4.5 实数log2e加载FLDL2E 230
5.4.6 实数log102加载FLDLG2 231
5.4.7 实数loge2加载FLDLN2 231
5.5 实数比较指令 231
5.5.1 实数比较FCOM[P/PP] 231
5.5.2 实数与整数比较FICOM[P] 231
5.5.3 无序比较FUCOM[P/PP] 232
5.5.4 实数零检测FTST 232
5.5.5 存CPU比较F[U]COMI[P] 232
5.5.6 检测栈顶实数特征FXAM 233
5.6 实数加法指令 237
5.6.1 实数加FADD 238
5.6.2 实数加且出栈FADDP 238
5.6.3 实数加整数FIADD 238
5.7 实数减法指令 239
5.7.1 实数减FSUB 239
5.7.2 实数减且出栈FSUBP 239
5.7.3 实数减整数FISUB 239
5.7.4 反向减FSUBR 239
5.7.5 反向减且出栈FSUBRP 239
5.7.6 实数反向减整数FISUBR 239
5.8 实数乘法指令 240
5.8.1 实数乘FMUL 240
5.8.2 实数乘且出栈FMULP 241
5.8.3 实数乘以整数FIMUL 241
5.9 实数除法指令 241
5.9.1 实数除FDIV 242
5.9.2 实数除且出栈FDIVP 242
5.9.3 实数除以整数FIDIV 242
5.9.4 实数反向除FDIVR 242
5.9.5 反向除且出栈FDIVRP 242
5.9.6 实数反向除整数FIDIVR 242
5.10 浮点超越函数指令 243
5.10.1 正弦函数FSIN 243
5.10.2 余弦函数FCOS 244
5.10.3 正弦余弦函数FSINCOS 245
5.10.4 正切函数FPTAN 245
5.10.5 反正切函数FPATAN 246
5.10.6 实数平方根FSQRT 247
5.10.7 绝对值FABS 248
5.10.8 负数FCHS 249
5.10.9 取实数尾数和阶码FXTRACT 250
5.10.10 以2为底的对数FYL2X[P1] 251
5.10.11 就近舍入取整FRNDINT 252
5.10.12 取余FPREM/FPREM1 253
5.10.13 2的指数FSCALE/F2XM1 254
5.11* FPU控制指令 257
5.11.1 初始化FPU操作F[N]INIT 257
5.11.2 保存状态字F[N]STSW 257
5.11.3 保存控制字F[N]STCW 257
5.11.4 加载控制字FLDCW 257
5.11.5 保存环境F[N]STENV 257
5.11.6 加载环境FLDENV 259
5.11.7 存环境与数据F[N]SAVE 259
5.11.8 读环境与数据FRSTOR 261
5.11.9 增加FPU栈指针FINCSTP 261
5.11.10 减少FPU栈指针FDECSTP 262
5.11.11 st(i)清空FFREE st(i) 263
5.11.12 清除异常F[N]CLEX 264
5.11.13 FPU空操作FNOP 264
5.11.14 FPU与CPU同步[F]WAIT 264
习题5 264
第6章 选择结构程序设计 268
6.1 .IF伪指令实现双分支选择 268
6.2 .IF….ELSEIF实现多分支选择 274
6.3 JMP和Jcc转移指令 276
6.4* 测试条件转存指令SETcc 285
6.5 浮点数的大小比较 287
6.6 散转程序设计 289
习题6 295
第7章 循环结构程序设计 300
7.1 当循环伪指令.WHILE 300
7.2 重复伪指令.REPEAT 302
7.3 数组的使用 304
7.3.1 一维数组的使用 304
7.3.2 二维数组的使用 307
7.4 .BREAK和.CONTINUE伪指令 309
7.5 循环指令LOOP[N][EZ][WD] 310
7.5.1 循环指令LOOP 311
7.5.2 相等或为零循环LOOP[EZ] 313
7.5.3 不为零循环LOOPN[EZ] 314
7.6 ECX为零转移指令JECXZ 316
7.7 LOOP/JECXZ循环指令存在的问题 317
习题7 320
第8章 模块化程序设计 329
8.1 子程序的定义 329
8.1.1 子程序定义的基本语法 329
8.1.2 子程序定义的完整语法 331
8.1.3 变参VARARG的使用 331
8.1.4 USES的使用 332
8.1.5 局部变量的定义 334
8.2 子程序的调用与返回 335
8.2.1 子程序用CALL调用 335
8.2.2 子程序用INVOKE调用 338
8.2.3 函数原型PROTO声明 338
8.2.4 函数EXTRN声明 340
8.2.5 返回指令RET 340
8.2.6 堆栈保护与恢复 341
8.3 不同数据类型作为形参的传递方法 344
8.3.1 整数参数的传递 344
8.3.2 字符参数的传递 345
8.3.3 整型数组参数的传递 346
8.3.4 字符串参数的传递 348
8.3.5 双精度浮点数参数的传递 349
8.4 递归程序设计 351
8.4.1 用C语言的递归方法求累加和 351
8.4.2 用汇编语言的递归方法求累加和 352
8.4.3 递归案例 353
8.5 C程序调用汇编子程序 359
8.5.1 C程序调用汇编子程序的方式 359
8.5.2 将C程序中的整型参数传入汇编程序 360
8.5.3 将C程序中的整型数组参数传入汇编程序 363
8.5.4 将C程序中的字符数组参数传入汇编程序 364
8.5.5 用C程序调用汇编函数重载 364
8.6 汇编程序调用C/C 函数 365
8.7 汇编程序引用C程序中的数组 368
8.8 C程序引用汇编程序中的数组 369
8.9 C程序与汇编程序混合编程俄罗斯方块 371
习题8 377
第9章 调试器使用简介 381
9.1 32位程序调试器Ollydbg 381
9.2 如何用Ollydbg逆向工程 382
9.3 用Ollydbg修改并保存 384
9.4 64位程序调试器x64dbg 385
9.5 32/64位程序调试器IDA 386
习题9 387
第10章 I/O系统 388
10.1 I/O系统概述 388
10.1.1 I/O系统的组成 388
10.1.2 I/O设备编址 388
10.2 I/O接口 389
10.2.1 I/O接口的基本功能 389
10.2.2 I/O接口的分类 389
10.2.3 总线结构 390
10.2.4 常用系统总线 391
10.3 I/O数据传输控制方式 393
10.3.1 程序直接控制方式 393
10.3.2 中断方式 394
10.3.3 直接存储器访问方式 397
10.3.4 I/O通道方式 398
10.3.5 I/O处理机和外围处理机 400
习题10 400
参考文献 402
附录A 403
附录A.1 ASCII值为00H~1FH的控制字符 403
附录A.2 ASCII值为20H~7FH的西文字符 403
附录A.3 用C程序输出GB 2312汉字 404
附录A.4 用C程序输出GB 2312特殊符号 404
附录A.5 用C程序输出Unicode汉字 405
附录A.6 Unicode转UTF-8 406
附录A.7 将矢量字体解析为位图 406
·XIV·
·XIII·
作者简介
田民格,三明学院信息工程学院副教授,多年从事计算机专业教学,曾获三明学院卓越教学奖、三明学院教学成果一等奖;开发多个应用软件,其中考试系统可实现多种编程语言的在线测评,并有多门课程的相应题库。
-
当代中国政府与政治(新编21世纪公共管理系列教材)
¥33.6¥48.0 -
落洼物语
¥8.7¥28.0 -
中国当代文学名篇选读
¥19.1¥53.0 -
中医基础理论
¥50.7¥59.0 -
北大人文课(平装)
¥13.9¥45.0 -
外国教育史-第2版
¥24.4¥40.0 -
宪法-第二版
¥12.2¥29.0 -
当代中国政府与政治 第二版
¥57.8¥68.0 -
EPLAN电气设计
¥29.9¥39.8 -
闯进数学世界――探秘历史名题
¥21.3¥32.8 -
企业法务教程
¥34.8¥49.0 -
习近平新时代中国特色社会主义思想概论
¥18.2¥26.0 -
金融学
¥29.9¥49.0 -
计算机操作系统教程(第4版)(清华大学计算机系列教材)
¥31.9¥49.0 -
三国史
¥27.5¥50.0 -
飞机总体设计
¥46.8¥78.0 -
古代汉语(第四册)
¥16.1¥35.0 -
编辑审稿实务教程
¥35.1¥45.0 -
管理学:原理与方法(第7版)(博学.大学管理类)/周三多
¥30.9¥49.0 -
(平装)北大必修课:北大口才课
¥12.2¥45.0