《MASM汇编语言应用6.11》

第1章汇编语言介绍1

1.1机器语言与汇编语言1

1.1.1 机器语言1

1.1.2 机器指令1

1.1.3 汇编语言2

1.1.4 汇编语言指令2

1.1.5 机器语言与汇编语言2

1.2 处理器与协处理器3

1.3 何时要使用汇编语言4

1.4 操作系统(Operating Syseem)4

1.5 你需要的软件4

1.6计算机的数制5

1.6.1 位(Bit)和字节(Byte)5

1.6.2 Binary Number5

1.6.3 Hexadcimal Number6

1.6.4有符号数与无符号数7

1.6.4.1 无符号数7

1.6.4.2 有符号数7

1.6.4.3 内存大小的计算8

1.6.4.4 BCD 码8

1.7字符存储格式8

1.7.1 ASCII9

1.7.2 EBCDIC9

第2章硬件与软件概念10

2.1 与汇编语言有关系密切的计算机硬件10

2.2CPU 寄存器10

2.2.1 通用寄存器(General-Purpose Regisetr)、段寄存器(Segment Register)和其它寄存器11

2.2.2 段寄存器11

2.2.3 数据寄存器(又称通用寄存器)12

2.2.4 特殊寄存器13

2.2.5 标志寄存器(EFL)13

2.3 系统软件与内存15

2.4 段寻址16

2.5 预处理符号17

2.6条件伪指令19

2.6.1 条件编译伪指令19

2.6.2 条件错误伪指令20

第3章汇编语言程序21

3.1 编译流程21

3.2 执行程序22

3.3程序结构22

3.3.1 组织段22

3.3.2 物理内存段(Physical Memory Segment)23

3.3.3 逻辑段(Logical Segment)23

3.4 使用简化段伪指令23

3.5定义内存模式25

3.5.1 Small、Medium、Compact、Large和Huge模式26

3.5.2 Tiny 模式26

3.5.3 Flat 模式26

3.6 设置 Stack Distance27

3.7 指定处理器(Processor)和协处理器(Cioricessor)27

3.8 建立Stack27

3.9建立数据(Datd)段27

3.9.1 Near Dats Segment28

3.9.2 Far Data Segment28

3.10建立Code 段28

3.10.1 Near Code Segment28

3.10.2 Far Code Sgement28

3.11 使用.STARTUR 和.EXIT 去开始和结束CODE29

3.12MOV 指令31

3.12.1 操作数的形式限制31

3.12.2 直接寻址32

3.12.3 PTR 运算符33

3.12.4 Offset 运算符34

3.12.5 SEG 运算符34

3.12.6 XCHG 指令34

3.13 PUSH 与POP 指令35

第4章地址与指针36

4.1段的地址36

4.1.1 初始化缺省的段寄存器36

4.1.2 指定和编译程序相关的段值36

4.1.3 指定处理相关的段值37

4.2远程与远程地址38

4.2.1 Near Code38

4.2.2 Far Code38

4.2.3 Near Data39

4.2.4 Far Data39

4.3 运算符(Operator)40

4.4操作数(Operand)41

4.4.1 Regiseter 操作数42

4.4.2 Immediate 操作数42

4.4.3 OFFSET 运算符42

4.4.4 SEG 运算符42

4.4.5 Direct Memory 操作数43

4.4.6Indirect Memory 操作数44

4.4.6.1.1 16位和32位寄存器间接操作数44

4.4.6.2 16位寄存器间接操作数46

4.4.6.3 32位寄存器间接操作数47

4.5程序堆栈49

4.5.1 储存在堆栈的操作数49

4.5.2 储存标志值至堆栈50

4.5.3 存储在堆栈的寄存器值(80186~486 Only)50

4.6使用指针与地址存取数据51

4.6.1 使用TYPEDEF 定义指针变量51

4.6.2 使用ASSUME 定义寄存器型式53

4.6.3基本指针和地址运算53

4.6.3.1 初始化指针变量54

4.6.3.2 载入地址至寄存器55

4.6.3.3 独立模式技巧57

第5章说明与使用数据类型59

5.1定义与使用简单数据类型59

5.1.1 说明整型变量59

5.1.2 配置整型变量的内存空间59

5.1.3 数据初值61

5.1.4 使用简单变量61

5.2定义和使用复杂数据类型61

5.2.1 字符串和数组61

5.2.2 结构与联合(structure and union)64

5.2.3 记录(Record)73

5.3 寻址未命名的项目77

5.4 属性77

5.5 运算符78

5.6 LABEL 伪指令79

5.7 EQU 伪指令80

5.8 地址计数器:$和ORG 伪指令81

5.9 变更命名规则83

5.10 指定数字规则83

第6章基本字符输出、输入84

6.1 中断84

6.2 软硬件中断85

6.3 INT 指令85

6.4 中断向量表(Interrupt Vector Table)85

6.5 BIOS86

6.6 DOS86

6.7DOS Function Call86

6.7.1 01H:由键盘输入-字符且显示屏幕上87

6.7.2 02H: 输出字符至屏幕87

6.7.3 05H:打印机输出87

6.7.4 06H:控制台直接输出、输入88

6.7.5 07H:控制台直接输入且没有回送88

6.7.6 08H:控制台直接输入且没有回送88

6.7.7 09H:字符串输出89

6.7.8 0AH:字符串输入89

6.7.9 0BH:键盘缓冲区状态90

6.7.10 0CH:清除键盘缓冲区,并等待输入90

6.8 扩展码(Extended Code)90

6.9 ASCII 控制字符92

6.10宏(Macro)92

6.10.1 宏过程(Macro Procedure)93

6.10.2 建立宏过程94

6.10.3 传参数给宏94

6.10.4 指定需要或缺省的参数95

6.11显示方式(BIOS INT 10H)100

6.11.1 显示方式101

6.11.2 显示页101

6.11.3 文本方式的字符显示106

6.11.4 文本方式的字符对映方式106

6.11.5 文本方式的字符属性107

6.12 INCLUDE 指令111

第7章算术运算指令114

7.1加法运算指令114

7.1.1 ADD、ADC和INC 指令114

7.1.2 ADD和ADC 对标志的影响115

7.1.3 INC 对标志的影响117

7.2减法运算指令117

7.2.1 SUB、SBB和DEC 指令117

7.2.2 NEG 指令121

7.3 乘法运算指令122

7.4 除法运算指令124

7.5 CBW、CWD、CDQ和CWDE 指令125

7.6十进制数字128

7.6.1 非压缩式BCD 数字129

7.6.2 压缩式BCD 数字132

7.7逻辑指令133

7.7.1 AND 指令134

7.7.2 OR 指令134

7.7.3 XOR 指令135

7.7.4 NOT 指令135

7.7.5 TEST 指令136

7.8移位和循环移位指令137

7.8.1 SHL 指令137

7.8.2 SHR 指令138

7.8.3 SAL、SAR 指令138

7.8.4 ROL 指令139

7.8.5 ROR 指令139

7.8.6 RCL 指令140

7.8.7 RCR 指令140

第8章子程序141

8.1 子程序介绍141

8.2定义子程序142

8.2.1 PROC 与ENDP 伪指令142

8.2.2 RET 指令142

8.2.3 CALL 指令142

8.3 Include 伪指令145

8.4 建立宏程序库146

8.5EXTERN 和PUBLIC 伪指令149

8.5.1 EXTERN 伪指令149

8.5.2 PUBLIC 伪指令150

8.5.3 参数传递153

8.6LIBRARY153

8.6.1 独立子程序的描述及程序列表154

8.6.2 区段说明163

8.7 建立程序库167

第9章程序流程173

9.1 转移173

9.2 在代码段中的标记173

9.3标志寄存器174

9.3.1 状态标志175

9.3.2 修改状态标志指令:STC、CLC和CMC176

9.3.3 控制标志176

9.3.4 修改控制标志指令:STD、CLD、STI和CLI176

9.4条件转移指令177

9.4.1 CMP 指令178

9.4.2 以位指定为根据的转移181

9.4.3 以零为根据的转移181

9.4.4 转移扩展(jump-extending)182

9.5 无条件转移指令:JMP183

9.6 循环(LOOP)184

9.7 IF伪指令191

9.8循环伪指令192

9.8.1 .WHILE 循环192

9.8.2 .REPEAT 循环193

9.8.3 . BREAK 和.CONTINUE 伪指令194

9.9编写循环条件195

9.9.1 运算式运算符195

9.9.2 有符号与无符号操作数196

9.9.3 条件运算式和计算方式197

9.10字符串处理197

9.10.1 字符串指令全观197

9.10.2 使用字符串指令199

第10章磁盘操作与文件处理204

10.1数据磁盘对映204

10.1.1 逻辑扇区205

10.1.2 磁盘格式206

10.2磁盘逻辑结构207

10.2.1 根目录区207

10.2.2 文件区211

10.2.3 文件分配表(FAT)211

10.3驱动器的管理213

10.3.1 0DH:磁盘重置214

10.3.2 0EH:驱动器选择214

10.3.3 19H:取得当前所使用的驱动器代码214

10.3.4 1BH:取得预设的驱动器信息214

10.3.5 1CH:取得指定驱动器信息215

10.3.6 36H:取得磁盘剩余空间215

10.4DOS 目录管理216

10.4.1 39H:建立子目录216

10.4.2 3AH:删除子目录217

10.4.3 3BH:改变当前的工作目录217

10.4.4 41H:删除文件218

10.4.5 43H:获取或设置文件属性218

10.4.6 47H:获取当前的工作目录路径219

10.4.7 4EH:寻找第一个符合条件的文件220

10.4.8 4FH:寻找另一个符合条件的文件221

10.4.9 1AH:设置磁盘传送地址(DTA)221

10.4.10 PSP:(代码段前置区:Program Segment Prefix)222

10.5文件225

10.5.1 3CH:建立文件及传回文件代号226

10.5.2 3DH:打开文件227

10.5.3 3EH:关闭文件229

10.5.4 3FH:读取数据229

10.5.5 40H:写入数据230

10.5.6 42H:移动文件读写指针231

附录A安装234

附录BLST、REF、MAP文件240

附录C完整段251

附录D中断257

附录EMASM6.11 保留字261

1998《MASM汇编语言应用6.11》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由蔡友家 1998 北京:机械工业出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

IBM PC汇编语言(1991 PDF版)
IBM PC汇编语言
1991 西安:陕西师范大学出版社
IBM PC宏汇编语言程序设计及应用(1992 PDF版)
IBM PC宏汇编语言程序设计及应用
1992
80386汇编语言编程( PDF版)
80386汇编语言编程
北京希望电脑公司
8088汇编语言( PDF版)
8088汇编语言
应用C语言( PDF版)
应用C语言
汇编语言设计( PDF版)
汇编语言设计
IBM PC宏汇编语言 MASM 的使用方法( PDF版)
IBM PC宏汇编语言 MASM 的使用方法
中科院希望电脑技术公司
汇编语言(1997 PDF版)
汇编语言
1997 北京:电子工业出版社
C语言应用(1992 PDF版)
C语言应用
1992 成都:电子科技大学出版社
Java语言及应用(1996 PDF版)
Java语言及应用
1996 北京:清华大学出版社
汇编语言基础及CASL汇编语言(1998 PDF版)
汇编语言基础及CASL汇编语言
1998 北京:北京大学出版社
MASM汇编语言应用6.11(1998 PDF版)
MASM汇编语言应用6.11
1998 北京:机械工业出版社
IBM PC宏汇编语言程序设计及应用(1992 PDF版)
IBM PC宏汇编语言程序设计及应用
1992 长沙:国防科技大学出版社
语言应用论集(1999 PDF版)
语言应用论集
1999 北京:北京广播学院出版社
C语言实用程序汇编(1997 PDF版)
C语言实用程序汇编
1997 北京:化学工业出版社