搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
汇编语言的编程艺术
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787302263739
  • 作      者:
    (美)Randall Hyde著
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2011
收藏
编辑推荐
    《汇编语言的编程艺术(第2版)》内容
    编辑、编译和运行HLA程序
    声明和使用常量、标量变量、指针、数组、结构、联合和命名空间
    转换算术表达式(整型和浮点型)
    转换高级控制结构
    本书是汇编语言学习者翘首以盼的《汇编语言的编程艺术》的第2版。与第1版相比,本书新增了反映HLA最新变化的内容,并介绍了如何支持Linux、Mac OSX和FreeBSD。汇编语言是一门复杂的低级语言,但是无论读者是否具有高级语言编程经验,都可以借助本书掌握它。
展开
作者简介
    海德,Randall Hyde是Write Great Code。Volumes 1和Volumes 2的作者,并且与人合著了MASM 6.0 Bible。他为Dr.Dobb’s Journal、Byte和多种专业刊物撰稿。他在加州大学河滨分校讲授汇编语言已经超过了十年的时间。
展开
内容介绍
    汇编语言是一种低级编程语言,只比计算机本身的机器语言高一级。虽然汇编语言经常用于编写设备驱动程序、模拟器和视频游戏,但是许多程序员认为汇编语言的语法不太友好,很难学习和使用。
    1996年以来,Randall Hyde的《汇编语言的编程艺术》一书为非汇编程序员提供了全面、易读和循序渐进的32位x86汇编语言的介绍。Hyde使用的主要教学工具是高级语言汇编器(High Level Assembler,HLA),其中提供了许多高级语言(如C、X++和Java)的功能,以帮助读者快速掌握汇编语言的基本概念。HLA在允许汇编语言程序员编写真正低级代码的同时,也使他们能够利用高级语言编程的优势。
    通过阅读《汇编语言的编程艺术(第2版)》,读者可以学到计算机科学的底层理论基础,并将所学知识转化为真正可以运行的代码。
展开
精彩书摘

  9.9编写编译时“程序”
  HLA编译时语言提供了一种强有力的机制,可以用来编写“程序”,这种“程序”是HLA编译汇编语言程序的时候执行。虽然可以使用l{IA编译时语言来编写一些通用程序,但HLA编译时语言真正的目的在于编写那些短小的、编写其他程序的程序。特别地,HLA编译时语言的主要目的是使大型的复杂的汇编语言序列的创建过程变成自动化的。下面的小节提供了这种编译时程序的一些简单示例。
  9.9.1在编译时构造数据表
  早些时候,本书曾建议编写程序来为汇编语言程序生成大型复杂的查找表(请参见8.4.3节中关于表的讨论)。第8章提供了一些HLA示例,但指出编写单独的程序是不必要的。的确是这样;仅仅使用HLA的编译时语言机制就可以产生大多数所需的查找表。实际上,填写表项是HLA编译时语言的一种主要用途。在本节中,我们将看一看如何在编译过程中使用HLA的编译时语言来构造数据表。
  在8.4.3节中,曾有一个HLA程序示例,该程序对一个文本文件进行操作,而这个文件包含了一张关于正弦函数的查找表。表中包含360项以及它们的索引,这些索引以度数为单位指定了所有的角。表中每个int32项都包含值sin(anglel)*1000,其中angle等于索引的值。8.4.3节曾建议运行这个程序,然后将程序输出的文本包含在实际使用表的程序当中。使用编译时语言,就可以省去许多工作。程序清单9.8中的HLA程序包含一个简短的编译时代码段,用于直接构造这个正弦函数表。
  ……

展开
目录
第1章 进入汇编语言的世界
1.1 HLA程序的结构
1.2 运行第一个HLA程序
1.3 基本的HLA数据声明
1.4 布尔值
1.5 字符值
1.6 Intel 80x86 CPU系列简介
1.7 存储子系统
1.8 基本的机器指令
1.9 基本的HLA控制结构
1.9.1 HLA语句中的布尔表达式
1.9.2 HLA中的if..then..elseif..else..endif语句
1.9.3 布尔表达式中的逻辑与、逻辑或以及逻辑非
1.9.4 while..endwhile语句
1.9.5 for..endfor语句
1.9.6 repeat..until语句
1.9.7 break和breakif语句
1.9.8 forever..endfor语句
1.9.9 try..exception..endtry语句
1.10 HLA标准库入门
1.10.1 stdio模块中的预定义常量
1.10.2 标准输入和标准输出
1.10.3 stdout.newln例程
1.10.4 stdout.putix例程
1.10.5 stdout.putixsize例程
1.10.6 stdout.put例程
1.10.7 stdin.getc例程
1.10.8 stdin.getix例程
1.10.9 stdin.readln和stdin.flushinput例程
1.10.10 stdin.get例程
1.11 关于try..endtry的其他细节
1.11.1 try..endtry嵌套语句
1.11.2 try..endtry语句中不受保护的子句
1.11.3 try..endtry语句中的anyexception子句
1.11.4 寄存器与try..endtry语句
1.12 高级汇编语言与低级汇编语言的比较
1.13 更多信息

第2章 数据表示
2.1 数字系统
2.1.1 回顾十进制系统
2.1.2 二进制数字系统
2.1.3 二进制格式
2.2 十六进制数字系统
2.3 数据结构
2.3.1 位
2.3.2 半字节
2.3.3 字节
2.3.4 字
2.3.5 双字
2.3.6 四字和长字
2.4 二进制数和十六进制数的算术运算
2.5 关于数字及其表示
2.6 位逻辑运算
2.7 二进制数和位串的逻辑运算
2.8 有符号数和无符号数
2.9 符号扩展、零扩展、压缩和饱和
2.10 移位和循环移位
2.11 位域和压缩数据
2.12 浮点运算简介
2.12.1 IEEE浮点格式
2.12.2 HLA为浮点数值提供的支持
2.13 BCD数据表示
2.14 字符
2.14.1 ASCII字符编码
2.14.2 HLA对ASCII字符提供的支持
2.15 Unicode字符集
2.16 更多信息

第3章 存储器的访问与结构
3.1 80x86的寻址方式
3.1.1 80x86寄存器寻址方式
3.1.2 80x86的32位存储器寻址方式
3.2 运行时存储器的结构
3.2.1 代码段
3.2.2 静态段
3.2.3 只读数据段
3.2.4 存储段
3.2.5 @nostorage属性
3.2.6 var段
3.2.7 程序中声明段的结构
3.3 HLA如何为变量分配内存
3.4 HLA对数据对齐的支持
3.5 地址表达式
3.6 类型强制转换
3.7 寄存器类型强制转换
3.8 栈段与push和pop指令
3.8.1 基本的push指令
3.8.2 基本的pop指令
3.8.3 用push和pop指令保护寄存器
3.9 栈的LIFO数据结构
3.9.1 其他的push和pop指令
3.9.2 不使用出栈而从栈内移除数据
3.10 访问已入栈而未出栈的数据
3.11 动态内存分配和堆段
3.12 inc和dec指令
3.13 获取存储器对象的地址
3.14 更多信息

第4章 常量、变量与数据类型
4.1 一些额外的指令:intmul、bound、into
4.2 HLA常量和数值声明
4.2.1 常量类型
4.2.2 字符串和字符字面常量
4.2.3 const段中的字符串常量与文本常量
4.2.4 常量表达式
4.2.5 HLA程序中的多个const段以及它们的顺序
4.2.6 HLA的val段
4.2.7 在程序中的任意位置修改val对象
4.3 HLA的type段
4.4 enum和HLA枚举数据类型
……
第5章 过程和单元
第6章 算术运算
第7章 低级控制结构
第8章 高级算术运算
第9章 宏与HLA编译时语言
第10章 位操作
第11章 字符串指令
第12章 类与对象
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证