《Turbo Assembler汇编大全程序设计技巧 上》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:文韬编
  • 出 版 社:中国科学院希望高级电脑技术公司
  • 出版年份:1990
  • ISBN:
  • 页数:206 页
图书介绍:

第一章 初启 1

1.1 软盘上的文件 1

1.2 安装Turbo Assembler 1

第二章 Turbo Assembler程序设计 3

2.1 编写第一个Turbo Assembler用户程序 3

2.1.1 汇编第一个用户程序 4

2.1.2 链接第一个用户程序 5

2.1.3 运行第一个用户程序 5

2.1.4 发生了什么? 5

2.2 修改第一个Turbo Assembler程序 6

2.2.1 将输出送往打印机 8

2.3 编写第二个Turbo Assembler用户程序 9

2.3.1 运行REVERSE.ASM 10

2.4 计算机体系结构 10

2.4.1 汇编语言的特点 12

2.5 8088和8086处理器 13

2.5.1 8086处理器的功能 13

2.5.2 内存 14

2.5.3 输入输出 15

2.5.4 寄存器 16

2.5.4.1 标志寄存器 17

2.5.4.2 通用寄存器 18

2.5.4.2.1 AX寄存器 18

2.5.4.2.2 BX寄存器 19

2.5.4.2.3 CX寄存器 19

2.5.4.2.4 DX寄存器 20

2.5.4.2.5 SI寄存器 21

2.5.4.2.6 DI寄存器 21

2.5.4.2.7 BP寄存器 22

2.5.4.2.8 SP寄存器 23

2.5.4.3 指令指针 24

2.5.4.4 段寄存器 25

2.5.4.4.1 CS寄存器 27

2.5.4.4.2 DS寄存器 28

2.5.4.4.3 ES寄存器 28

2.5.4.4.4 SS寄存器 28

2.5.5 8086指令集 28

2.6 IBMPC和XT 32

2.6.1 输入输出设备 32

2.6.2 IBM PC序列机的系统软件 32

2.6.2.1 DOS 33

2.6.2.1.1 捕获键脉冲 34

2.6.2.1.2 在屏幕上显示字符 34

2.6.2.1.3 终止程序的运行 35

2.6.2.2 BIOS 36

2.6.2.2.1 选择显示器模式 36

2.6.3 有时必须深入到硬件层 36

2.6.4 其它资源 37

第三章 命令行参考 38

3.1 在DOS中启动Turbo Assembler 38

3.2 命令行选择项 40

/a 40

/b 40

/c 40

/d 41

/e 41

/h或/? 41

/i 42

/j 42

/kh 43

/ks 43

/l 43

/la 43

/ml 44

/mu 44

/mx 44

/n 45

/p 45

/r 45

/s 46

/t 46

/v 46

/w 46

/x 47

/z 47

/zd 48

/zi 48

间接命令文件 48

配置文件 49

第四章 汇编程序的基本元素 50

4.1 汇编程序的元素和结构 50

4.2 保留字 51

4.3 行格式 51

4.3.1 标号 53

4.3.2 指令助记符和伪指令 56

4.3.2.1 END伪指令 57

4.3.3 操作数 58

4.3.3.1 寄存器操作数 58

4.3.3.2 常量操作数 59

4.3.3.3 表达式 61

4.3.3.4 标号操作数 62

4.3.3.5 内存寻址方式 63

4.3.4 注释 70

4.4 段伪指令 72

4.4.1 简化的段伪指令 72

4.4.1.1 .STACK、.CODE和.DATA 72

4.4.1.2 DOSSEG 75

4.4.1.3 .MODEL 76

4.4.1.4 其它简化的段伪指令 77

4.4.2 标准的段伪指令 77

4.4.3 简化的段伪指令与标准的段伪指令的比较 82

4.5 数据分配 82

4.5.1 位、字节和基数(Bits、Bytes和Bases) 82

4.5.1.1 十进制、二进制、八进制和十六进制数 84

4.5.1.2 隐含基数选择 88

4.5.2 数据初始化 89

4.5.2.1 初始化数组 90

4.5.2.2 初始化字符串 91

4.5.2.3 用表达式和标号进行初始化 92

4.5.3 非初始化的数据 93

4.5.4 命名内存区 94

4.6 移动数据 96

4.6.1 选择数据长度 97

4.6.2 符号符与无符号数 99

4.6.3 数据长度间的转换 100

4.6.4 访问段寄存器 101

4.6.5 将数据移入/移出堆栈 103

4.6.6 数据交换 103

4.6.7 I/O 104

4.7 运算 105

4.7.1 算术运算 105

4.7.1.1 加法和减法 105

4.7.1.1.1 32位操作数 106

4.7.1.1.2 递增与递减 107

4.7.1.2 乘法和除法 108

4.7.1.3 更换符号 111

4.7.2 逻辑运算 112

4.7.3 移位与循环 113

4.8 循环与转移 116

4.8.1 无条件转移 117

4.8.2 条件转移 119

4.8.3 循环 122

4.9 子程序 124

4.9.1 子程序的工作方式 125

4.9.2 参数传递 128

4.9.3 返回值 128

4.9.4 保存寄存器 129

4.10 汇编语言程序示例 129

第五章 中级Turbo Assembler程序设计 135

5.1 使用等价替代符 135

5.1.1 EQU伪指令 135

5.1.1.1 $预定义符 140

5.1.2 =伪指令 141

5.2 串指令 142

5.2.1 用于数据移动的串指令 142

5.2.1.1 LODS 142

5.2.1.2 STOS 144

5.2.1.3 MOVS 145

5.2.1.4 重复串指令 146

5.2.1.5 串指令增益 147

5.2.2 用于数据扫描的串指令 147

5.2.2.1 SCAS 147

5.2.2.2 CMPS 150

5.2.2.3 串指令中使用操作数 151

5.4 多模块程序 152

5.4.1 PUBLIC伪指令 154

5.4.2 EXTRN伪指令 155

5.4.3 GLOBAL伪指令 158

5.5 include文件 159

5.6 列表文件 160

5.6.1 源代码注释 160

5.6.2 列表文件中的符号表 164

5.6.2.1 符号表 164

5.6.2.2 段组表 164

5.6.3 交叉引用表 165

5.6.4 控制列表文件的内容与格式 167

5.6.4.1 行列表选择伪指令 168

5.6.4.1.1 %LIST和%NOLIST 168

5.6.4.1.2 %CONDS和%NOCONDS 169

5.6.4.1.3 %INCL和%NOINCL 169

5.6.4.1.4 %MACS和%NOMACS 169

5.6.4.1.5 %CTLS和%NOCTLS 170

5.6.4.2 列表格式控制伪指令 171

5.6.4.2.1 域宽伪指令 171

5.6.4.2.2 %PUSHLCTL和%POPLCTL 172

5.6.4.3 其它列表控制伪指令 171

5.7 汇编过程中信息的显示 172

5.8 条件汇编 173

5.8.1 条件汇编伪指令 174

5.8.1.1 IF和IFE 174

5.8.1.2 IFDEF和IFNDEF 175

5.8.1.3 其它条件汇编伪指令 176

5.8.1.4 ELSEIF伪指令 178

5.8.2 条件出错伪指令 179

5.8.2.1 .ERR1、.ERR2、ERR 179

5.8.2.2 .ERRE和.ERRNZ 179

5.8.2.3 .ERRDEF和ERRNDEF 180

5.8.2.4 其它条件出错伪指令 180

5.9 汇编程序设计中常见的错误 180

5.9.1 没有返回DOS 181

5.9.2 漏写了RET指令 181

5.9.3 产生错误的返回类型 182

5.9.4 操作数错位 184

5.9.5 没有堆栈或预保留的堆栈太小 184

5.9.6 调用覆盖了必需的寄存器内容的子程序 185

5.9.7 错误地使用了条件转移指令 187

5.9.8 使用串指令时引起的错误 188

5.9.8.1 没有考虑REP串超前 188

5.9.8.2 利用CX为0访问整个段 191

5.9.8.3 设置错了方向标志 191

5.9.8.4 使用错了重复串比较指令 193

5.9.8.5 忽视了串指令的隐含段 193

5.9.8.6 字节转换成字的错误操作 195

5.9.8.7 使用多个前缀 196

5.9.8.8 依赖于串指令操作数 197

5.9.9 忽视了特殊的副作用 198

5.9.9.1 乘法指令会抹去寄存器内容 198

5.9.9.2 忽视了串指令会修改许多寄存器 199

5.9.9.3 希望某指令修改标志位 199

5.9.9.4 没有及时使用标志 199

5.9.10 混淆了内存与立即操作数 200

5.9.11 引起对段的循环访问 202

5.9.12 中断处理程序中没有保留信息 203

5.9.13 没有考虑操作数和数据表的段组前缀 204