新闻资讯
看你所看,想你所想

彙编语言与计算机体系结构:使用C++和Java

彙编语言与计算机体系结构:使用C++和Java

彙编语言与计算机体系结构:使用C++和Java

彙编语言与计算机体系结构:使用C++和Java,2006年出版,作者是吕宏辉。

彙编语言和计算机体系结构都是难学的课程。传统的彙编语言是如此複杂和特别,以至于即使学习基本概念都可能是一项困难任务。计算机体系结构也有同样的问题,而且更严重。学习彙编语言,我们要研究一个複杂系统;而学习计算机体系结构,则要研究许多複杂系统。那幺怎样才能最有效地学习彙编语言和计算机体系结构呢?本书採用的方法是使用一个简单的计算机模型H1。H1非常容易学习,学生可以迅速用H1完成大量任务。另外,学生可以着重学习重要的系统概念,而不是无关紧要的细节。

基本介绍

  • 书名:彙编语言与计算机体系结构:使用C++和Java
  • 作者:吕宏辉
  • ISBN:9787302120032
  • 定价:79
  • 出版时间:2006.01.01
图书目录
第1章数制1
1.1简介1
1.2按位记数制1
1.3各数制的算术规则4
1.4数制转换6
1.5Horner法9
1.6有符号二进制数10
1.6.1符号—绝对值表示法10
1.6.22的补码錶示法11
1.6.31的补码錶示法13
1.6.4加n表示法14
1.7用2的补码加法计算减法14
1.82的补码和无符号数的範围15
1.9扩展2的补码和无符号数16
1.10溢出17
1.10.1有符号数溢出17
1.10.2无符号数溢出18
1.11分析2的补码数20
1.12加法器电路21
1.13门23
1.14用加法器执行减法24
1.15比较有符号数26
1.16比较无符号数27
1.17正数、负数和无符号数的一致对待27
1.18浮点数表示法28
1.18.1科学记数法28
1.18.232位IEEE754浮点数格式29
1.18.3下溢、溢出和特殊值30
1.18.4某些Java程式中的计算误差30
1.18.5长格式35
1.19小结35
1.20问题36
第2章机器语言40
2.1简介40
2.2计算机的组件40
2.3机器语言编程44
2.4在sim上运行机器语言程式48
2.5问题52
第3章H1彙编语言:第1部分54
3.1简介54
3.2彙编语言基础55
3.3注释彙编语言程式58
3.4使用标号58
3.5使用彙编器61
3.6低级语言与高级语言65
3.7彙编器工作原理66
3.8使用dup修饰符67
3.9运算元栏位中的算术表达式68
3.10指定当前位置70
3.11字元串71
3.12org伪指令74
3.13end伪指令75
3.14指令的顺序执行76
3.15问题78
第4章H1彙编语言:第2部分81
4.1简介81
4.2描述指令的简写形式81
4.3直接指令82
4.4堆叠指令83
4.5立即指令85
4.6I/O指令90
4.7转移指令96
4.8间接指令98
4.9相对指令102
4.10变址103
4.11连线指令105
4.12终止指令109
4.13高级语言中指令的自动生成109
4.14调试110
4.15使用存储映像式I/O115
4.16equ伪指令117
4.17Java程式的潜在问题:大小端118
4.18问题121
第5章电子学和数字逻辑电路基础125
5.1简介125
5.2电子学基础125
5.2.1导体和绝缘体125
5.2.2一个简单电路126
5.2.3有效电压127
5.2.4电源127
5.2.5如何避免触电128
5.2.6电晶体129
5.2.7电容、电感和阻抗131
5.3组合逻辑电路133
5.3.1门133
5.3.2布尔函式134
5.3.3最小电路135
5.3.4使用布尔代数使电路最小化136
5.3.5摩根定律的图示法137
5.3.6使用卡诺图使电路最小化138
5.3.7多路复用器141
5.3.8解码器和编码器142
5.3.9半加器和全加器143
5.3.10一位移位器144
5.3.11乘法器阵列145
5.3.12算术逻辑单元148
5.3.13三态缓冲器149
5.3.14ROM151
5.4时序逻辑电路153
5.4.1SR触发器153
5.4.2时钟控制D触发器155
5.4.3时钟控制JK触发器157
5.4.4边沿检测157
5.4.5T触发器159
5.4.6RAM159
5.4.7二进制计数器160
5.4.8暂存器161
5.4.9时钟和序列发生器163
5.5积体电路164
5.6问题165
第6章H1和V1的微级168
6.1简介168
6.2H1的微级168
6.2.1H1的组织概述168
6.2.2微指令170
6.2.3存储器数据汇流排171
6.2.4存储器地址汇流排172
6.2.5暂存器库172
6.2.6指定微操作175
6.2.7驱动暂存器库的控制输入端175
6.2.8整合H1各部分176
6.2.9分支多路复用器178
6.2.10定时问题180
6.2.11微指令格式181
6.2.12序列发生器驱动的控制输入端181
6.2.13基本指令集的微代码182
6.2.14硬体/微代码权衡187
6.3在sim上使用新的微代码189
6.3.1如何使用!伪指令189
6.3.2创建配置档案189
6.3.3创建二进制微代码191
6.3.4用新指令集彙编192
6.3.5在微级上跟蹤193
6.3.6加密微代码198
6.3.7编写并最佳化複杂的微代码198
6.4解释机器语言指令200
6.5硬接线控制201
6.6垂直微编程202
6.6.1使用V1202
6.6.2构成更短的微指令203
6.6.3彙编垂直微代码205
6.7问题210
第7章评估H1的指令集体系结构:第1部分214
7.1简介214
7.2哑编译器214
7.3全局变数218
7.4局部变数221
7.5变化的相对地址229
7.6参数和传值调用230
7.7返回值235
7.8需要相对指令的原因236
7.9确定动态局部变数和参数的地址238
7.10间接引用指针241
7.11问题243
第8章评估H1的指令集体系结构:第2部分249
8.1简介249
8.2引用调用249
8.2.1引用调用的实现249
8.2.2C++引用参数的概念视图256
8.2.3不间接引用C++引用参数的情况257
8.2.4传值调用与引用调用的比较258
8.2.5常数和表达式作为变元259
8.3函式重载和重命名263
8.4结构267
8.5Java中的指针271
8.6函式指针272
8.7数组274
8.7.1定义并访问数组274
8.7.2数组作为变元278
8.7.3Java中的数组282
8.8控制语句283
8.9有符号数和无符号数比较285
8.10多字加法285
8.11位级操作286
8.12递归287
8.13问题293
第9章高级彙编语言编程301
9.1简介301
9.2指向指针的指针301
9.3引用调用及其他地方存在的潜在错误307
9.4关係和布尔表达式310
9.5字元串313
9.6值结果调用315
9.7变长变元列表321
9.8问题326
第10章连线和载入329
10.1简介329
10.2浮动栏位330
10.3显示标题和机器代码正文的程式334
10.4小s项336
10.5禁止重定位337
10.6分别彙编338
10.7乘法子例程348
10.8使用库350
10.9分别彙编的优点357
10.10启动代码357
10.11C++模组的分别编译367
10.12问题371
第11章用C++或Java实现彙编器和连线器376
11.1简介376
11.2编写彙编器376
11.2.1一个简单彙编器的规範377
11.2.2操作码錶378
11.2.3符号表380
11.2.4使用二进制档案382
11.2.5读取输入文本档案并创建标题385
11.2.6彙编机器字387
11.2.7将机器正文写入输出档案388
11.2.8分析输入388
11.2.9Java程式的大小端问题388
11.2.10添加对public、extern和end伪指令的支持389
11.3编写连线器390
11.3.1一个简单连线器的规範390
11.3.2构建P、E、R和S表391
11.3.3重定位地址并解析外部引用393
11.3.4添加库支持395
11.4问题396
第12章最优指令集397
12.1简介397
12.2新增和改进的指令398
12.2.1mult、m、div和rem399
12.2.2addc和subc400
12.2.3scmp401
12.2.4ucmp402
12.2.5shll和shrl403
12.2.6shra404
12.2.7addy405
12.2.8or、xor、and和flip407
12.2.9cali409
12.2.10sect和dect409
12.2.11sodd410
12.2.12esba、reba、bpbp、pobp和pbp411
12.2.13cora416
12.2.14bcpy417
12.3鍊表——使用最优指令集
示例418
12.4关于最优指令集的进展报告424
12.4.1主存储器的数量不足424
12.4.2存储器存储字元串的效率不高424
12.4.3缺少加和减的立即指令425
12.4.4缺少变址暂存器425
12.4.5累加器型暂存器太少425
12.4.6swap指令破坏sp暂存器425
12.4.7缺少乘法和除法指令426
12.4.8sp暂存器作为栈顶指针和基址暂存器的双重用途426
12.4.9难以获得堆叠上变数的地址426
12.4.10缺少块複製指令426
12.4.11难以调用地址已知的函式426
12.4.12aloc和dloc指令的局限性426
12.4.13难以执行有符号数和无符号数比较426
12.4.14难以执行多字加法426
12.4.15不支持位级操作427
12.5问题427
第13章使用、评估并实现最优指令集和堆叠指令集430
13.1简介430
13.2H1上的乘法430
13.3二维数组437
13.4彙编语言中的面向对象编程441
13.4.1C++的结构、类和对象441
13.4.2继承452
13.4.3通过指针调用成员函式457
13.4.4虚函式和多态性464
13.5名调用472
13.6面向堆叠的体系结构479
13.6.1体系结构与组织479
13.6.2以栈顶代替ac暂存器480
13.6.34位操作码的可用性484
13.6.4特殊的堆叠操作485
13.6.5更简单的编译486
13.6.6返回值487
13.6.7使用堆叠指令集示例489
13.6.8比较最优指令集和堆叠指令集491
13.6.9关于JVM的几点观察492
13.7编写最优和堆叠指令集的微代码493
13.8微编程的挑战496
13.9问题497
第14章存储系统503
14.1简介503
14.2地址的传送503
14.3多程式系统505
14.4直接存储器存取505
14.5分时系统506
14.6重定位暂存器506
14.7虚拟存储器508
14.7.1简单分页系统509
14.7.2关联存储器512
14.7.3中断514
14.7.4请求式分页516
14.7.5请求式分页的页面替换策略518
14.7.6页面大小的考虑519
14.7.7超级用户/用户模式520
14.7.8存储器保护521
14.7.9分页的分段521
14.8高速缓冲存储器522
14.8.1快取的替换策略523
14.8.2写策略523
14.8.3存储器到快取的映射方案524
14.9可共享的程式526
14.10问题527
第15章某些现代体系结构530
15.1简介530
15.2CISC与RISC530
15.3SPARC:RISC体系结构532
15.3.1重叠的暂存器视窗532
15.3.2保存和恢复指令536
15.3.3载入和存储指令538
15.3.4转移、call和jmpl指令543
15.3.5指令流水线546
15.3.6连线指令552
15.3.7定址方式553
15.3.8一个简单的彙编语言程式555
15.3.9合成指令557
15.3.10编译器生成的代码559
15.3.11存储映像式I/O565
15.4Pentium:CISC体系结构566
15.4.1暂存器结构566
15.4.2彙编语言567
15.4.3编译器生成的代码568
15.4.4I/O指令570
15.5问题571
第16章Java虚拟机(JVM)576
16.1简介576
16.2JVM的结构577
16.3某些使用运算元堆叠的普通操作578
16.4方法的调用和返回579
16.5执行引擎的实现581
16.6明智之举:JVM使用堆叠体系结构582
16.7一个简单的例子582
16.8常数池584
16.9类档案格式585
16.10位元组码的空间效率589
16.11控制语句590
16.12反彙编类档案591
16.13对象和数组593
16.14JVM:抽象机器595
16.15问题595
附录A指令集汇总(s.txt、b.txt、o.txt、k.txt)598
附录B微指令级汇总(mic.txt)606
附录C标準指令集的微代码(s.has)609
附录DSPARC汇总(sparc.txt)614
附录Ejava虚拟机位元组码汇总(jvm.txt)620
附录FASCII汇总(ascii.txt)625
附录G数制汇总(number.txt)627
附录H了解C++对Java程式设计师的
帮助628

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com