第1章 汇编语言介绍1\r\n\r\n1.1 机器语言与汇编语言1\r\n1.1.1 机器语言1\r\n1.1.2 机器指令1\r\n1.1.3 汇编语言2\r\n1.1.4 汇编语言指令2\r\n1.1.5 机器语言与汇编语言2\r\n1.2 处理器与协处理器3\r\n1.3 何时要使用汇编语言4\r\n1.4 操作系统(Operating System)4\r\n1.5 你需要的软件4\r\n1.6 计算机的数制5\r\n1.6.1 位(Bit)和字节(Byte)5\r\n1.6.2 Binary Number5\r\n1.6.3 Hexadecimal Number6\r\n1.6.4 有符号数与无符号数7\r\n1.6.4.1 无符号数7\r\n1.6.4.2 有符号数7\r\n1.6.4.3 内存大小的计算8\r\n1.6.4.4 BCD码8\r\n1.7 字符存储格式8\r\n1.7.1 ASCII9\r\n1.7.2 EBCDIC9\r\n\r\n第2章 硬件与软件概念10\r\n\r\n2.1 与汇编语言关系密切的计算机硬件10\r\n2.2 CPU段寄存器10\r\n2.2.1 通用寄存器(General-Purpose Register)、段寄存顺(Segment Register)和其它寄存器11\r\n2.2.2 段寄存器11\r\n2.2.3 数据寄存器(又称通用寄存器)12\r\n2.2.4 特殊寄存器13\r\n2.2.5 标志寄存器(EFL)13\r\n2.3 系统软件与内存15\r\n2.4 段寻址16\r\n2.5 预处理符号17\r\n2.6 条件伪指令19\r\n2.6.1 条件编译伪指令19\r\n2.6.2 条件错误伪指令20\r\n\r\n第3章 汇编语言程序21\r\n\r\n3.1 编译流程21\r\n3.2 执行程序22\r\n3.3 程序结构22\r\n3.3.1 组织段22\r\n3.3.2 物理内存段(Physical Memory Segment)23\r\n3.3.3 逻辑段(Logical Segment)23\r\n3.4 使用简化段伪指令23\r\n3.5 定义内存模式25\r\n3.5.1 Small、Medium、Compact、Large和Huge模式26\r\n3.5.2 Tiny模式26\r\n3.5.3 Flat模式26\r\n3.6 设置Stack Distance27\r\n3.7 指定处理器(Processor)和协处理器(Coprocessor)27\r\n3.8 建立Stack27\r\n3.9 建立数据(Data)段27\r\n3.9.1 Near Data Segment28\r\n3.9.2 Far Data Segment28\r\n3.10 建立Code 段28\r\n3.10.1 Near Code Segment28\r\n3.10.2 Far Code Segment28\r\n3.11 使用.STARTUP和.EXIT去开始和结束CODE29\r\n3.12 MOV指令31\r\n3.12.1 操作数的形式限制31\r\n3.12.2 直接寻址32\r\n3.12.3 PTR运算符33\r\n3.12.4 Offset运算符34\r\n3.12.5 SEG运算符34\r\n3.12.6 XCHG指令34\r\n3.13 PUSH与POP指令35\r\n\r\n第4章 地址与指针36\r\n\r\n4.1 段的地址36\r\n4.1.1 初始化缺省的估寄存器36\r\n4.1.2 指定和编译程序相关的段值36\r\n4.1.3 指定处理器相关的段值37\r\n4.2 近程与远程地址38\r\n4.2.1 Near Code38\r\n4.2.2 Far Code38\r\n4.2.3 Near Data39\r\n4.2.4 Far Data39\r\n4.3 运算符(Operator )40\r\n4.4 操作数(Operand )41\r\n4.4.1 Register 操作数42\r\n4.4.2 Immediate操作数42\r\n4.4.3 OFFSET运算符42\r\n4.4.4 SEG运算符42\r\n4.4.5 Direct Memory操作数43\r\n4.4.6 Indirect Memory 操作数44\r\n4.4.6.1 16位和32位寄存器间接操作数44\r\n4.4.6.2 16位寄存器间接操作数46\r\n4.4.6.3 32位寄存器间接操作数47\r\n4.5 程序堆栈49\r\n4.5.1 储存在堆栈的操作数49\r\n4.5.2 储存标志值至堆栈50\r\n4.5.3 存储在堆栈的寄存器值(80186~486 Only)50\r\n4.6 使用指针与地址存取数据51\r\n4.6.1 使用TYPEDEF定义指针变量51\r\n4.6.2 使用ASSUME定义寄存器型式53\r\n4.6.3 基本指针和地址运算53\r\n4.6.3.1 初始化指针变量54\r\n4.6.3.2 载入地址至寄存器55\r\n4.6.3.3 独立模式技巧57\r\n\r\n第5章 说明书与使用数据类型59\r\n\r\n5.1 定义与使用简单数据类型59\r\n5.1.1 说明整型变量59\r\n5.1.2 配置整型变量的内存空间59\r\n5.1.3 数据初值61\r\n5.1.4 使用简单变量61\r\n5.2 定义和使用复杂数据类型61\r\n5.2.1 字符串和数组61\r\n5.2.2 结构与联合(structure and union )64\r\n5.2.3 记录(Record)73\r\n5.3 寻址未命名的项目77\r\n5.4 属性77\r\n5.5 运算符78\r\n5.6 LABEL伪指令79\r\n5.7 EQU伪指令80\r\n5.8 地址计数器:$ 和ORG伪指令81\r\n5.9 变量命名规则83\r\n5.10 指定数字规则83\r\n\r\n第6 章 基本字符输出、输入84\r\n\r\n6.1 中断84\r\n6.2 软硬件中断85\r\n6.3 INT指令85\r\n6.4 中断向量表(Interrupt Vector Table)85\r\n6.5 BIOS86\r\n6.6 DOS86\r\n6.7 DOS Function Call86\r\n6.7.1 01H:由键盘输入一字符且显示在屏幕上87\r\n6.7.2 02H:输出字符至屏幕87\r\n6.7.3 05H:打印机输出87\r\n6.7.4 06H:控制台直接输出、输入88\r\n6.7.5 07H:控制台直接输入且没有回送88\r\n6.7.6 08H:控制台直接输入且没有回送88\r\n6.7.7 09H:字符串输出89\r\n6.7.8 0AH:字符串输入89\r\n6.7.9 0BH:键盘缓冲区状态90\r\n6.7.10 0CH:清除键盘缓冲区,并等待输入90\r\n6.8 扩展码(Extended Code )90\r\n6.9 ASCII控制字符926.10 宏(Macro)92\r\n6.10.1 宏过程(Macro Procedure)93\r\n6.10.2 建立宏过程94\r\n6.10.3 传参数给宏94\r\n6.10.4 指定需要或缺省的参数95\r\n6.11 显示方式(BIOS INT 10 H)100\r\n6.11.1 显示方式101\r\n6.11.2 显示页101\r\n6.11.3 文本方式的字符显示106\r\n6.11.4 文本方式的字符对映方式106\r\n6.11.5 文本方式的字符属性107\r\n6.12 INCLUDE指令111\r\n\r\n第7 章 算术运算指令114\r\n\r\n7.1 加法运算指令114\r\n7.1.1 ADD、ADC和INC指令11\r\n7.1.2 ADD和ADC对标志的影响115\r\n7.1.3 INC对标志的影响117\r\n7.2 减法运算指令117\r\n7.2.1 SUB、SBB和DEC指令117\r\n7.2.2 NEG指令121\r\n7.3 乘法运算指令122\r\n7.4 除法运算指令124\r\n7.5 CBW、CWD、CDQ和CWDE指令125\r\n7.6 十进制数字128\r\n7.6.1 非压缩式BCD数字129\r\n7.6.2 压缩式BCD数字132\r\n7.7 逻辑指令133\r\n7.7.1 AND指令134\r\n7.7.2 OR指令134\r\n7.7.3 XOR指令135\r\n7.7.4 NOT指令135\r\n7.7.5 TEST指令136\r\n7.8 移位和循环移位指令137\r\n7.8.1 SHL指令137\r\n7.8.2 SHR指令138\r\n7.8.3 SAL、SAR指令138\r\n7.8.4 ROL指令139\r\n7.8.5 ROR指令139\r\n7.8.6 RCL指令140\r\n7.8.7 RCR指令140\r\n\r\n第8章 子程序141\r\n\r\n8.1 子程序介绍141\r\n8.2 定义子程序142\r\n8.2.1 PROC与ENDP伪指令142\r\n8.2.2 RET指令142\r\n8.2.3 CALL指令142\r\n8.3 Include伪指令145\r\n8.4 建立宏程序库146\r\n8.5 EXTERN和PUBLIC伪指令149\r\n8.5.1 EXTERN伪指令149\r\n8.5.2 PUBLIC伪指令150\r\n8.5.3 参数传递153\r\n8.6 LIBRARY153\r\n8.6.1 独立子程序的描述及程序列表154\r\n8.6.2 区段说明163\r\n8.7 建立程序库167\r\n\r\n第9章 程序流程173\r\n\r\n9.1 转移173\r\n9.2 在代码段中的标记173\r\n9.3 标志寄存器174\r\n9.3.1 状态标志175\r\n9.3.2 修改状态标志指令:STC、CLC和CMC176\r\n9.3.3 控制标志176\r\n9.3.4 修改控制标志指令:STD、CLD、DTI和CLI176\r\n9.4 条件转移指令177\r\n9.4.1 CMP指令178\r\n9.4.2 以位指定为根据的转移181\r\n9.4.3 以零为根据的转移181\r\n9.4.4 转移扩展(jump-extending)182\r\n9.5 无条件转移指令:JMP183\r\n9.6 循环(LOOP)184\r\n9.7 IF伪指令191\r\n9.8 循环伪指令192\r\n9.8.1 .WHILE循环192\r\n9.8.2 .REPEAT循环193\r\n9.8.3 .BREAK和.CONTINUE伪指令194\r\n9.9 编写循环条件195\r\n9.9.1 运算式运算符195\r\n9.9.2 有符号与无符号操作数196\r\n9.9.3 条件运算式的计算方式197\r\n9.10 字符串处理197\r\n9.10.1 字符串指令全观197\r\n9.10.2 使用字符串指令199\r\n\r\n第10章 磁盘操作与文件处理204\r\n\r\n10.1 数据磁盘对映204\r\n10.1.1 逻辑扇区205\r\n10.1.2 磁盘格式206\r\n10.2 磁盘逻辑结构207\r\n10.2.1 根目录区207\r\n10.2.2 文件区211\r\n10.2.3 文件分配表(FAT)211\r\n10.3 驱动器的管理213\r\n10.3.1 0DH:磁盘重置214\r\n10.3.2 0EH:驱动器选择214\r\n10.3.3 19H:取得当前所使用的驱动器代码214\r\n10.3.4 1BH:取得预设的驱动器214\r\n10.3.5 1CH:取得指定驱动器信息215\r\n10.3.6 36H:取得磁盘剩余空间215\r\n10.4 DOS目录管理216\r\n10.4.1 39H:建立子目录216\r\n10.4.2 3AH:删除子目录217\r\n10.4.3 3BH:改变当前的工作目录217\r\n10.4.4 41H:删除文件218\r\n10.4.5 43H:获取或设置文件属性218\r\n10.4.6 47H:获取当前的工作目录路径219\r\n10.4.7 4EH:寻找第一个符合条件的文件220\r\n10.4.8 4FH:寻找另一个符合条件221\r\n10.4.9 1AH:设置磁盘传送地址(DTA)221\r\n10.4.10 PSP:(代码段前置区;Program Segment Prefix)222\r\n10.5 文件225\r\n10.5.1 3CH:建立文件及传回文件代号226\r\n10.5.2 3DH:打开文件227\r\n10.5.3 3EH:关闭文件229\r\n10.5.4 3FH:读取数据229\r\n10.5.5 40H:写入数据230\r\n10.5.6 42H:移动文件读写指针231\r\n\r\n附录A 安装234\r\n附录B LST、REF、MAP文件240\r\n附录C 完整断251\r\n附录D 中断257\r\n附录E MASM 6.11保留字261
无封面