第一章 绪论 1
机器指令 1
汇编程序指令 1
宏指令 2
伪操作 2
EDLIN 程序 2
处理器的结构 2
编址 2
寄存器 3
栈 3
第二章 MACRO汇编程序 4
命令格式 4
隐含的文件名扩展 4
怎样启动汇编程序 5
如何用选择1启动汇编程序 5
如何用选择2启动汇编程序 6
如何用选择3启动汇编程序 7
MACRO汇编程序的结束 8
参数(/Parms) 8
设备标识符 9
第三章 交叉引用程序(CREF) 10
建立交叉引用文件 10
怎样启动CREF 10
如何用选择1启动CREF 10
如何用选择2启动CREF 11
如何用选择3启动CREF 12
CREF的结束 12
CRF的格式 12
带有开始记录类型的记录 12
带有结束记录类型的记录 12
第四章 汇编语言的格式 13
符号/数据表示法 13
数据项 13
常数(立即值) 14
第一次扫描与第二次扫描 14
标号 16
变量 16
寄存器代码的约定 17
标志寄存器 17
操作数 18
属性操作符 19
带有返面值的操作符 20
记录专用操作符 23
表达式 23
第五章 伪操作 25
数据伪操作 25
ASSUME 25
COMMENT 26
DB定义字节 26
DD定义双字 27
DQ定义四倍长字 28
DT定义十个字节 29
DW定义字 30
END 31
EQU 31
=(等号) 32
FVEN 32
EXTRN 32
GROUP 33
INCLUDE 35
LABEL 35
NAME 36
ORG 37
PROC 37
PUBLIC 38
RADIX 39
RECORD 39
SEGMENT 41
STRUC 43
条件伪操作 44
IF expression 45
IFE expression 45
IF1 45
IF2 45
IFDEF symbol 45
IFNDEF symbol 45
IFB〈argument〉 45
IFNB〈argument> 45
IFIDN〈argument—1〉,〈argument—2〉 45
IFDIF〈argument—1〉,〈argument—2〉 45
ENDIF 45
ELSE 45
宏伪操作 46
宏和重复块伪操作 46
MACRO 50
PURGE 51
LOCAL 51
REPT 52
IRP 52
IRPC 52
ENDM 53
EXITM 53
&(连接号,特殊的MACRO操作符) 53
;;(两个分号,特殊的MACRO操作符) 54
!(惊叹号,特殊的MACRO操作符) 54
%(百分号,特殊的MACRO操作符) 54
列表伪操作 55
.CREF/.XCREF 55
.LALL/.SALL/.XALL 56
.LIST/.XLIST 56
%OUT 56
PAGE 57
SUBTIL 57
TITLE 58
假条件块 58
.LFCOND 58
.SFCOND 58
.TFCOND 58
编程控制 59
第六章 指令记忆码 61
符号与表示法 61
指令字段 63
操作代码字节 63
寻址方式字节 63
AAA加法ASCII调整 64
AAD除法ASCII调整 65
AAM乘法ASCII凋整 65
AAS减法ASCII调整 66
ADC进位加 66
存贮器或寄存器操作数与寄存器操作数相加 67
立即操作数与累力器相加 67
立即操作数与存贮器或寄存器操作相加 68
ADD加法 68
存贮器或寄存器操作数与寄存器操作数相加 68
立即操作数加到累加器 69
立即操作数加到存贮器或寄存器操作数 69
AND逻辑与 69
CALL调用过程 71
CBW字节转为字 73
CLC清进位标志 73
CLD清方向标志 74
CLI清中断标志 74
CMC补码进位标志 74
CMP比较两个操作数 75
CMPS/CMPSB/CMPSW比较字节串或字串 76
CWD字转为双字 78
DAA十进制加法调整 78
DAS十进制减法调整 79
DEC减量为1的目的 79
寄存器操作数(字) 79
存贮器或寄存器操作数 80
DIV无符号除法 80
ESC换码 82
HLT暂停 82
IDIV带符号的整数除法 83
IMUL整数乘法 84
IN输入字节或字 85
INC增量为1的目的 86
INT中断 87
INTO溢出中断 88
IRET中断返回 89
JA/JBE高于/不低于或不等于时转 89
JAE/JNB高于或等于/不低于时转 90
JB/JNAE/JC低于/不高于也不等于/有迸位时转 91
JBE/JNA低于或等于/不高于时转 91
JCXZ CX为零时转 92
JE/JZ等于/零标志位为1时转 92
JG/JNLE大于/不小于也不等于时转 93
JGE/JNL大于或等于/不小于时转 94
JL/JNGE小于/不大于也不等于时转 95
JLE/JNG小于或等于/不大于时转 95
JMp无条件转 96
段内或组内的直接无条件转移 96
段内直接短标号的无条件转移 97
段间的直接无条件转移 97
段间的间接无条件转移 97
段内或组内的间接无条件转移 97
JNC无进位时转 98
JNE/JNZ不等于/零标志为0时转 98
JNO无溢出时转 99
JNP/JPO无奇偶校验/奇偶校验为奇时转 99
JNS无符号/为正时转 100
JO溢出时转 100
JP/JPE有奇偶校验/奇偶校验为偶时转 100
JS符号标志位为1时转 101
LAHF把标志位装入装AH 101
LDS装入数据段寄存器 102
LEA装入有效地址 102
LES装入附加段寄存器 103
LOCK封锁总线 104
LODS/LODSB/LODSW装入字节串或字串 104
LOOP计数寄存器不为0时循环 106
LOOPE/LOOPZE等于/零标志位为1时循环 107
LOOPNE/LOOPNZ不等于/零标志位为0时循环 108
MOV传送 109
累加器的内容传送到寄存器 109
存贮器的内容传送给累加器 109
存贮器或寄存器操作数的内容传送给段寄存器 110
段寄存器的内容传送给存贮器或寄存器 110
MOVS/MOVSB/MOVSW传送字节串或字串 112
MUL无符号乘法 113
NEG求反/形成二进制补码 114
NOP空操作 115
NOT逻辑“非” 115
OR逻辑“或” 116
存贮器或寄存器操作数与寄存器操作数的逻辑“或” 116
立即操作数与累加器操作数的逻辑“或” 117
立即操作数与存贮器或寄存器的逻辑“或” 117
OUT输出字节或字 117
固定端口 118
可变端口 118
POP从堆栈弹出字并送给目的寄存器操作数 118
段寄存器 119
存贮器或寄存器操作数 119
POPF标志位弹出堆栈 119
PUSH把字压入堆栈 120
寄存器操作数(字) 120
段寄存器 120
存贮器或寄存器操作数 121
PUSHF把标志寄存器压入堆栈 121
RCL通过进位标志位循环左移 121
RCR通过进位标志位循环右移 123
REP/REPZ/REPE/REPNE/REPNZ重复串操作 124
RET过程返回 125
段内返回 126
段内返回并把立即值加到栈指针 126
段间返回并把立即值加到栈指针 126
ROL循环左移 127
ROR循环右移 128
SAHF AH装入标志寄存器 129
SAL/SHL算术左移/逻辑左移 130
SAR算术右移 131
SBB带借位减法 132
SCAS/SCASB/SCASW扫描字节串或字串 134
SHR逻辑右移 135
STC置进位标志 137
STD置方向标志 137
STI置中断标志 137
STOS/STOSB/STOSW存贮字节串或字串 138
SUB减法 139
TEST测试 140
WAIT等待 142
XCHG交换 142
XLAT转换 143
XOR异一或 144
附录A.错误信息 146
汇编程序的错误信息 146
Small汇编程序(ASM) 146
MACRO汇编程序(MASM) 146
I/O处理程序的错误信息 151
运行期间的错误信息 153
附录B.指令表 153
附录C.伪操作表 168
数据伪操作 168
条件伪操作 169
宏伪操作 170
例表伪操作 171
附录D.会话实例 172
要求 172
复制汇编程序的主软盘 172
建立用于汇编程序会话的源文件 173
汇编源程序 173
查看由汇编程序建立的文件 174
建立交叉引用表 174
其它模块的处理 175
连接目标文件产生可执行的应用程序 176
运行最后得到的应用程序 177
关于调试的几点注意事项 177
汇编程序与连接程序的清单 179
词汇 191